[BUG] MCP server instructions from initialize response are not passed to the model

Status Closed — not planned
Maintainer reply None cached
Activity 11 comments · opened Feb 6, 2026 · closed Jun 5, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When an MCP server returns instructions in its initialize response (as defined by the MCP spec), these instructions are not included in the system prompt or otherwise made available to Claude at the start of a conversation. This means the model has no awareness of server-provided guidance unless it separately calls a tool like vim_info to retrieve similar information.

What Should Happen?

Expected behavior
The instructions field from the MCP initialize response should be injected into the model's context at the start of any chat where that MCP server is connected. This is the mechanism the MCP spec provides for servers to give the model context about how to use their tools effectively.

Actual behavior
The instructions are silently dropped. The model receives the tool definitions (names, descriptions, parameters) but not the server's high-level instructions. The model has no way to discover these instructions existed.

Error Messages/Logs

Steps to Reproduce

Configure an MCP server that returns an instructions field in its initialize response.
Connect Claude Desktop to that server.
Start a new chat.
Ask Claude: "Did you receive any instructions from the MCP protocol initialization?"
Claude will confirm it has no visibility into the initialize handshake and cannot see any instructions returned there.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

Version 1.1.2102 (c5675a)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

10 Comments

github-actions[bot] · 6 months ago

Found 1 possible duplicate issue:

  1. https://github.com/anthropics/claude-code/issues/3312

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

friesofdoom · 6 months ago

I dont know if this is the same issue, I dont see any errors. That issues was closed as fixed, this is still happening.

jpiabrantes · 6 months ago

It says on ChangeLog that this feature was added on 1.0.52. However, I just tried it on Claude Cowork and the model does not see the server instructions.

airandershjemmesider · 6 months ago

test

ThatDragonOverThere · 5 months ago

Related evidence: even when Claude does attempt to use an MCP filesystem tool after being prompted, the model sometimes still responds as if it doesn't have the capability — saying "I don't have direct access to your local Windows filesystem" in the same turn where the tool is available.

The initialize instructions being silently dropped (#23808) would explain this: if the model never receives the server's context about what tools are available and what paths are accessible, it falls back to its training priors which say "I can't read local files." The tool exists on the server side but the model has no awareness of it.

Concrete case: Claude Desktop, Windows 11, v2.1.76. MCP filesystem configured. User asks Claude to read a specific file path. Claude responds it can't access local filesystem. User says "You do too. Read via file system." Only then does Claude attempt to use the tool — and it works. The capability was there the whole time; the model just didn't know it.

If initialize instructions were properly passed to the model, it would know at session start what filesystem paths it has access to, and would use the tool proactively instead of disclaiming.

ThatDragonOverThere · 5 months ago

Still occurring on latest Claude Desktop (April 1, 2026). Three incidents in a single session today:

  1. User asks to read a planning doc — Desktop says 'Let me check the uploads directory' instead of using filesystem MCP
  2. User asks to check pipeline assets — Desktop says 'I don't have access to your filesystem' — then when told to use MCP, immediately says 'My bad' and reads the files fine
  3. Pattern repeats on every new task involving local files

The MCP filesystem server is connected and functional. The tools work when explicitly invoked. The model simply does not surface them in its tool selection unless the user manually reminds it.

Cross-referencing #2682 — same root cause, same non-response from Anthropic. Both issues open for months.

NonicaTeam · 3 months ago

any plans to implement this? This fix is key for us:
https://modelcontextprotocol.io/specification/draft/schema#initializeresult

github-actions[bot] · 2 months ago

Closing for now — inactive for too long. Please open a new issue if this is still relevant.

khalidodev · 2 months ago

I am having this same issue - it would be awesome if both Claude Code and Claude.ai would load the instructions field from remote MCP servers. This instruction should be refreshed every single time the agent is refreshing the tools list. It's part and parcel of tools almost.

Looks like all the server instructions issues have been marked closed as duplicate or as not planned. Please reconsider opening this issue and actioning it.

Does anyone else have a recommendation of how best then to pass server instructions? I don't want to pollute the tool's definition with what is more macro level org information.

In case anyone from Anthropic reads this, in my tests mcp server instructions made a huge difference to output quality when a user is using their own BYO AI.

For example, in my tests:

  • Sonnet 4.6 w/ server instructions (injected manually) beat itself without instructions - lower token use, much better user experience as it cut down on tool calls and waiting time.
  • DeepSeek V4 and Open AI 5.5 instant with server instructions beats Sonnet 4.6 without instructions for many basic tasks involving using MCP tools. (considering cost and user time spent waiting and output quality). I can verify that OpenAI loads MCP server instructions automagically, its Claude.ai which ignores them.

Now the astute reader might say - aha, it's your tools description which suck but no it's the meta-level stuff which is missing and I don't wanna repeat it across all the tools.

Opus is super smart, but actually even that struggled. In many use cases MCP server instructions helped it save a bunch of tokens (think of the dollars!) and helps Users get straight to the point instead of burning their API budgets down as Opus has to do a lot of work to understand the bigger picture.

I assume other orgs also have a BYO AI model for some users, e.g who is going to tell a director you can't have ALL THE AIs. With internal tooling, obviously it's easy to do all of this, so really it's the external consumers of internal remote MCP's I'm trying to cater to.

Note: I have a feeling inside anthropic you guys have tons of tools and all kinds of things happening, judging from the many talks. But because your setup is somewhere in the agentic future near the ASI event horizon, you're always passing all the information your agents/tools need through other ways (quantum tunnels perhaps). For us more regular users of your tools, ALL WE HAVE IS THE MCP SPECS.

Relevant open issues:

air2 · 1 month ago

Can this issue be reopened and planned? It would be really helpful if the instructions where not silently dropped but just used.

Showing cached comments. Read the full discussion on GitHub ↗