Dynamic MCP resources not discovered in claude code

Status Closed — not planned
Maintainer reply None cached
Activity 13 comments · opened Jul 22, 2025 · closed Jan 11, 2026

Description

Claude Code can list static MCP resources and MCP tools, but not dynamic MCP resources.

To be more specific:

from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")

# Add an addition tool
@mcp.tool() <<<<<<<<<<<<<< This works. Can be discovered in Claude Code.
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b


# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")  <<<<<<<<<<<<<<< This doesn't.
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

Same issue was surfaced in the Claude Deskop as well: https://github.com/modelcontextprotocol/python-sdk/issues/263

See this comment https://github.com/modelcontextprotocol/python-sdk/issues/263#issuecomment-2729617662 which seems to be the reason.

I was using https://www.npmjs.com/package/@anthropic-ai/claude-code v1.0.56.

This makes Claude Code less useful since dynamic MCP resources are very important to build production MCP servers.

View original on GitHub ↗

13 Comments

dacz · 1 year ago

I have the same problem, but from yesterday it escalated that I cannot even use dynamically registered tool.

Described in #4526

github-actions[bot] · 1 year ago

Found 1 possible duplicate issue:

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

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

RobbieMcKinstry · 1 year ago

I'm having the same issue. I have one tool enabled by default, and calling that tool enables a second tool. But despite the call to .enable(), Claude Code is unable to detect the change to the tools list. It seems like Claude Code is not picking up the listChanged notification (related docs here).

simongray · 12 months ago

I am also experiencing this bug in Claude Desktop with an MCP server developed in Python. The two static resources are available but the dynamic one isn't available in any way.

arneyjfs · 11 months ago

Hi @ollie-anthropic, Is there any update on this issue? Seems like there are many people with the same problem including myself. Thanks!

rockdaboot · 10 months ago

Same issue here. Having dynamic templates supported by Claude code would be very helpful.

github-actions[bot] · 8 months ago

This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

laurynas-biveinis · 8 months ago

Still actual

github-actions[bot] · 7 months ago

This issue has been automatically closed due to 60 days of inactivity. If you're still experiencing this issue, please open a new issue with updated information.

RobbieMcKinstry · 7 months ago

What the fuck?

simongray · 7 months ago

@RobbieMcKinstry I can't believe that Anthropic don't even support their own damn protocol in their most popular piece of software. The guy who made Claude Code somehow creates 250 PRs a week, but this is too big of a task...? Jfc...

rockdaboot · 7 months ago

As a work-around, you can define params for resources and explicitly tell the client to consider the params. Claude accepts it and uses resources as if they were resource templates.

github-actions[bot] · 7 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.