Skip to content

fix: support context-only resources#2621

Open
pragnyanramtha wants to merge 2 commits into
modelcontextprotocol:mainfrom
pragnyanramtha:pragnyan/context-only-resource-1405
Open

fix: support context-only resources#2621
pragnyanramtha wants to merge 2 commits into
modelcontextprotocol:mainfrom
pragnyanramtha:pragnyan/context-only-resource-1405

Conversation

@pragnyanramtha
Copy link
Copy Markdown

Summary

  • fix @mcp.resource classification so a function whose only parameter is Context registers as a regular resource, not a parameterless template
  • store/inject context for FunctionResource reads
  • keep existing Resource.read() call shape for non-function resources

Fixes #1405.

Tests

  • uv run --frozen pytest tests/server/mcpserver/test_server.py -k 'resource'\n- uv run --frozen pytest tests/server/mcpserver/test_server.py::TestServerResources::test_context_only_resource_registered_as_regular_resource tests/server/mcpserver/test_server.py::TestContextInjection::test_resource_with_context\n- uv run --frozen ruff check src/mcp/server/mcpserver/resources/types.py src/mcp/server/mcpserver/server.py tests/server/mcpserver/test_server.py\n- uv run --frozen ruff format --check src/mcp/server/mcpserver/resources/types.py src/mcp/server/mcpserver/server.py tests/server/mcpserver/test_server.py\n- uv run --frozen pyright src/mcp/server/mcpserver/resources/types.py src/mcp/server/mcpserver/server.py tests/server/mcpserver/test_server.py\n- git diff --check

@BossChaos

This comment was marked as abuse.

@BossChaos

This comment was marked as abuse.

@pragnyanramtha pragnyanramtha marked this pull request as ready for review May 18, 2026 20:46
Copilot AI review requested due to automatic review settings May 18, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

It is not possible to define a Resource that takes only the Context parameter as an argument.

2 participants