[Bug] MCP resource_link silently ignored, PDF blobs not processed, and no docs on supported content types

Resolved 💬 2 comments Opened Apr 26, 2026 by krushj Closed May 29, 2026

Bug Description

Claude Code and Claude.ai do not fetch or render resource_link items returned from MCP tool results. Additionally, embedded resource blobs (e.g. PDFs returned via resources/read) are not rendered or processed — Claude silently ignores them. There is also no documentation stating which MCP resource/content types are actually supported.

---

Issues

1. resource_link in tool results is silently ignored

When an MCP tool returns a resource_link content item, Claude Code does not attempt to fetch or display it. The tool call is treated as successful but the resource is completely dropped.

Example tool response:

{
  "content": [
    {
      "type": "resource_link",
      "uri": "https://example.com/report.pdf",
      "name": "Q1 Report",
      "mimeType": "application/pdf"
    }
  ]
}

Expected: Claude fetches and processes the linked resource.
Actual: Claude acknowledges the tool ran but produces no output from the resource.

This works in other MCP clients (e.g. ChatGPT), confirming it is a Claude-specific gap.

---

2. Embedded PDF blobs from tool response are not processed

When tool returns a base64-encoded PDF blob, Claude does not read or summarise the content. Other binary/document mime types (e.g. application/vnd.openxmlformats-officedocument) appear to have the same issue(image worked)

Example resources/read response:

{
  "contents": [
    {
      "uri": "eds://s3?bucket=my-bucket&key=path/to/file.pdf",
      "mimeType": "application/pdf",
      "blob": "<base64-encoded PDF bytes>"
    }
  ]
}

Expected: Claude reads and processes the PDF content.
Actual: Content is ignored; Claude has no knowledge of the file.

---

3. No documentation on supported MCP content/resource types

The Claude Code docs and MCP integration guide do not specify which content types are currently supported. Developers are left to discover limitations through trial and error.

Request: Please add a support matrix to the docs (or inline in the MCP integration guide) covering:

| Content type | resource_link | Inline blob (resources/read) |
|---|---|---|
| text/plain | ? | ? |
| text/html | ? | ? |
| text/markdown | ? | ? |
| application/pdf | ? | ? |
| image/png, image/jpeg | ? | ? |
| application/octet-stream | ? | ? |

---

Workaround (current)

For Claude clients, we detect user-agent: Claude-User server-side and return a plain HTTP download URL instead of a resource_link. This is a fragile hack that shouldn't be necessary.

---

Environment

  • Platform: macOS (darwin)
  • Claude Code version: 2.1.117
  • Transport: Streamable HTTP (MCP)

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗