# SEP-3094: Granular citations format - **Status**: Draft - **Type**: Standards Track - **Created**: 2026-07-15 - **Author(s)**: Karthik Palaniappan (karthik.palaniappan@thomsonreuters.com) (@karth295) - **Sponsor**: None - **PR**: https://github.com/modelcontextprotocol/modelcontextprotocol/pull/3094 ## Abstract 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](https://modelcontextprotocol.io/specification/2025-06-18/server/resources#resource) and [schema.org citations](https://schema.org/citation). It explicitly tries to avoid creating bespoke formats that have not gone through rigorous review and real world usage. ## Motivation ### Building trust through verifiable responses Professionals such as lawyers, auditors, and academic researchers are legally and ethically bound to produce work grounded in hard evidence. As AI models have become more capable and MCP servers/tools have become more agentic, professional work has been moving towards steering and reviewing AI outputs. However, when professionals do not catch hallucinations, the consequences can be severe. The US court of appeals for the sixth circuit fined lawyers $30,000 for [misrepresentations](https://www.reuters.com/legal/litigation/us-appeals-court-fines-lawyers-30000-latest-ai-related-sanction-2026-03-16/). Damien Charlotin's [database](https://www.damiencharlotin.com/hallucinations/) underscores the depth of the problem with nearly 1200 hallucinated cases cited before July 2026. Citations have been an integral part of the end-user experience of using LLM-based systems even as early as [2022](https://arxiv.org/pdf/2203.11147). **However, how citations are exchanged and presented is bespoke to tools and clients.** This proposal does not discuss methods to reduce hallucinations; it instead proposes **formalizing commonly used patterns for servers and clients to present avenues for professionals to verify AI outputs for accuracy and completeness.** ### Varied MCP client support for exchanging citations Here is a quick summary of support for citations among a few popular MCP clients in July 2026. Even among clients that support citations, the expected format varies. | MCP host | Primary product(s) | Citation chips | Clickable links | Notes | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Anthropic Claude** | [Claude Desktop](https://code.claude.com/docs/en/desktop), [claude.ai](https://claude.ai) | No | No | Only plain markdown links are supported. MCP embedded resources are [not shown to the user](https://github.com/anthropics/claude-ai-mcp/issues/287). First party [web search](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) chips cannot be driven by MCP servers. | | **OpenAI ChatGPT** | [ChatGPT Connectors / Apps](https://developers.openai.com/api/docs/mcp), [Responses API remote MCP](https://developers.openai.com/api/docs/guides/tools-connectors-mcp) | Yes | Yes | Specifically [`search` and `fetch`](https://developers.openai.com/api/docs/mcp) tools that return a non-empty `url` field get [inline citation chips](https://developers.openai.com/api/docs/mcp) linking to that URL. | | **Microsoft Copilot** | [Microsoft 365 Copilot](https://learn.microsoft.com/en-us/microsoft-365/copilot/extensibility/overview) (declarative agents), [Copilot Studio](https://learn.microsoft.com/en-us/microsoft-copilot-studio/) | Yes | Yes | Firm-admin approved [Plugins](https://learn.microsoft.com/en-us/microsoft-365/copilot/extensibility/plugin-citations) can return [citations](https://learn.microsoft.com/en-us/microsoft-365/copilot/extensibility/plugin-citations) via a JSON format | Some MCP clients do not have any mechanisms for servers to push down citations to be rendered as citation chips. This makes MCP-based tools appear less trustworthy than first party tools, even though their responses may be more grounded in authoritative data. Note that [MCP apps](https://modelcontextprotocol.io/extensions/apps/overview) can be used to render citations. However, this is unnecessarily heavyweight for MCP servers to implement for documents that are already addressible via URI. ### Examples of bespoke citation formats returned by popular RAG and Agent APIs Server-returned citations also vary widely, even within the same server provider.
| Provider | Tool | Example response |
|---|---|---|
| Anthropic | web_search |
```json { "text": "Claude Shannon was born on April 30, 1916, in Petoskey, Michigan", "type": "text", "citations": [ { "type": "web_search_result_location", "url": "https://en.wikipedia.org/wiki/Claude_Shannon", "title": "Claude Shannon - Wikipedia", "encrypted_index": "Eo8BCioIAhgBIiQyYjQ0OWJmZi1lNm..", "cited_text": "Claude Elwood Shannon (April 30, 1916 – February 24, 2001)..." } ] } ``` |
| Anthropic | web_fetch |
```json { "text": "the main argument presented is that artificial intelligence will transform healthcare", "type": "text", "citations": [ { "type": "char_location", "document_index": 0, "document_title": "Article Title", "start_char_index": 1234, "end_char_index": 1456, "cited_text": "Artificial intelligence is poised to revolutionize healthcare delivery..." } ] } ``` |
| OpenAI | web_search (url_citation) |
```json { "type": "output_text", "text": "On March 6, 2025, several news outlets reported...", "annotations": [ { "type": "url_citation", "start_index": 2606, "end_index": 2758, "url": "https://example.com/article", "title": "Example Article" } ] } ``` |
| OpenAI | file_citation / container_file_citation |
```json { "type": "output_text", "text": "Per the uploaded report, revenue increased 12% year-over-year.", "annotations": [ { "type": "file_citation", "file_id": "file-abc123", "filename": "q3-earnings.pdf", "index": 0 } ] } ``` |
| Perplexity | Sonar | ```json { "choices": [ { "message": { "role": "assistant", "content": "Apple reported Q2 revenue of $95.4 billion [1], driven by Services growth [2]." } } ], "citations": [ "https://www.apple.com/newsroom/pdfs/fy2025-q2/FY25_Q2_Consolidated_Financial_Statements.pdf" ], "search_results": [ { "title": "[PDF] Consolidated Financial Statements - Apple", "url": "https://www.apple.com/newsroom/pdfs/fy2025-q2/FY25_Q2_Consolidated_Financial_Statements.pdf", "date": "2025-05-01", "snippet": "Net sales by reportable segment: Americas $40,315..." } ] } ``` |
| Perplexity | Agent API | ```json { "type": "output_text", "text": "Spain won Euro 2024, defeating England 2-1 in the final [1].", "annotations": [ { "type": "url_citation", "start_index": 0, "end_index": 52, "url": "https://en.wikipedia.org/wiki/UEFA_Euro_2024_final", "title": "UEFA Euro 2024 final" } ] } ``` |
| Amazon Bedrock | InvokeAgent |
```json { "completion": "The refund policy allows returns within 30 days of purchase.", "citations": [ { "generatedResponsePart": { "textResponsePart": { "text": "returns within 30 days of purchase", "span": { "start": 32, "end": 66 } } }, "retrievedReferences": [ { "content": { "type": "TEXT", "text": "Customers may return items within 30 days..." }, "location": { "s3Location": { "uri": "s3://my-bucket/policies/refund.pdf" } } } ] } ] } ``` |
| Amazon Bedrock | RetrieveAndGenerate / Knowledge Bases |
```json { "output": { "text": "The refund policy allows returns within 30 days of purchase." }, "citations": [ { "generatedResponsePart": { "textResponsePart": { "text": "returns within 30 days of purchase", "span": { "start": 32, "end": 66 } } }, "retrievedReferences": [ { "content": { "type": "TEXT", "text": "Customers may return items within 30 days..." }, "location": { "s3Location": { "uri": "s3://my-bucket/policies/refund.pdf" } }, "metadata": { "x-amz-bedrock-kb-chunk-id": "abc123" } } ] } ] } ``` |
| Azure | Responses API + Bing (url_citation) |
```json { "type": "output_text", "text": "If you're searching for uplifting news from November 2025...", "annotations": [ { "type": "url_citation", "start_index": 333, "end_index": 564, "url": "https://example.com/article", "title": "Example Article" } ] } ``` |
| Azure | On Your Data (Azure AI Search) | ```json { "role": "assistant", "content": "Contoso's Q3 revenue grew 12% year-over-year [doc1].", "context": { "citations": [ { "content": "Q3 revenue was $4.2B, up 12% YoY...", "title": "Q3 Earnings Summary", "filepath": "reports/q3-2025.pdf", "url": "https://contoso.sharepoint.com/...", "chunk_id": "chunk-42" } ] } } ``` |