From c72c4a7b2519a265838f15ea90a33d3ce8e90d74 Mon Sep 17 00:00:00 2001 From: Peter Alexander Date: Mon, 1 Sep 2025 17:15:59 +0100 Subject: [PATCH] Update simple-resource example to use non-deprecated read_resource return type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed the read_resource handler to return Iterable[ReadResourceContents] instead of a plain string, following the recommended pattern and avoiding deprecation warnings. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../servers/simple-resource/mcp_simple_resource/server.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/servers/simple-resource/mcp_simple_resource/server.py b/examples/servers/simple-resource/mcp_simple_resource/server.py index 002d7ad10..151a23eab 100644 --- a/examples/servers/simple-resource/mcp_simple_resource/server.py +++ b/examples/servers/simple-resource/mcp_simple_resource/server.py @@ -2,6 +2,7 @@ import click import mcp.types as types from mcp.server.lowlevel import Server +from mcp.server.lowlevel.helper_types import ReadResourceContents from pydantic import AnyUrl, FileUrl from starlette.requests import Request @@ -46,7 +47,7 @@ async def list_resources() -> list[types.Resource]: ] @app.read_resource() - async def read_resource(uri: AnyUrl) -> str | bytes: + async def read_resource(uri: AnyUrl): if uri.path is None: raise ValueError(f"Invalid resource path: {uri}") name = uri.path.replace(".txt", "").lstrip("/") @@ -54,7 +55,7 @@ async def read_resource(uri: AnyUrl) -> str | bytes: if name not in SAMPLE_RESOURCES: raise ValueError(f"Unknown resource: {uri}") - return SAMPLE_RESOURCES[name]["content"] + return [ReadResourceContents(content=SAMPLE_RESOURCES[name]["content"], mime_type="text/plain")] if transport == "sse": from mcp.server.sse import SseServerTransport