SEP-3094: Granular Citations Format by karth295 · Pull Request #3094 · modelcontextprotocol/modelcontextprotocol · GitHub
Skip to content

SEP-3094: Granular Citations Format - #3094

Open
karth295 wants to merge 5 commits into
modelcontextprotocol:mainfrom
karth295:citations
Open

SEP-3094: Granular Citations Format#3094
karth295 wants to merge 5 commits into
modelcontextprotocol:mainfrom
karth295:citations

Conversation

@karth295

@karth295 karth295 commented Jul 15, 2026

Copy link
Copy Markdown

SEP: Granular citations format

Many popular MCP clients (e.g. ChatGPT, Copilot) have bespoke formats for MCP servers to return rich citations.
Other popular MCP clients (e.g. Claude) only render citation chips from first-party features such as public web
search, making responses from MCP servers appear less trustworthy. Citations are an important mechanism for
professionals and academic researchers to verify the accuracy of LLM-generated responses.

This SEP proposes standardizing a mechanism for MCP servers and clients to exchange granular, verifiable
citations
to resources or portions of resources — sentences, HTML elements, image regions, table rows. It reuses
existing MCP and web standards for selectors and fragments, such as MCP resource URIs, a subset of the W3C Web Annotation Data Model, and schema.org citations. It explicitly tries to avoid creating bespoke formats that have not gone
through rigorous review and real world usage.

Next steps

  • Find a sponsor for the SEP
  • Build a working proof-of-concept in OpenWebUI
  • Address feedback and iterate through the process

@karth295
karth295 requested review from a team as code owners July 15, 2026 15:45
Proposes a standard for MCP servers and clients to exchange granular,
verifiable citations using Web Annotation selectors, citationRefs, and
schema.org metadata on citation targets.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the preamble code block with template bullet fields so render-seps
places SEP-3094 under Draft instead of Unknown.

Co-authored-by: Cursor <cursoragent@cursor.com>
@localden localden changed the title SEP: Granular citations format SEP-3094: Granular Citations Format Jul 29, 2026
@localden localden added SEP proposal SEP proposal without a sponsor. labels Jul 29, 2026
…rences to old initialize handshake to _meta

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@karth295

Copy link
Copy Markdown
Author

@pdelboca

pdelboca commented Sep 3, 2026

Copy link
Copy Markdown

Hello @karth295 ! Thanks for this work.

Just writing to build momentum as we are also interesting in citations and attribution embedded in the protocol itself. (sorry if this is not the place for it)

Some suggestions/comments:

  • The discusion around SHOULD, MIGHT, MAY is interesting. I think it is key that both client and server have a way to understand eachother's capabilities. Examples: As a client I want to enforce tools to give me citations or I'll warn the user (as a way for consumers to demand "thrustworthy" information). As a server I want to know if a client is going to render citations, else, I wont return the answer (because I want attribution, attribution is enforced by law, etc).
  • The motivation can be expanded beyond just lawyers, auditors and academincs. There is a bigger audience interested in this as well: Public Institutions, Government Statistic Bodies (their funding comes from the visibility and impact of their work), GLAM communities (Galleries, Libraries, Archives, Museums) that as well depend on visibility for funding, data producers and the Commons Community in general is also interested in attribution.
  • I like that only source URL is required for a citation.

@karth295

karth295 commented Sep 3, 2026

Copy link
Copy Markdown
Author

…schema.org metadata

Markdown links help with backwards compatibility and for an easy onboarding experience to citations for clients and servers

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

proposal SEP proposal without a sponsor. SEP

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants