Skip to content

Commit a6e8950

Browse files
refactor: Clean up imports in FastMCP resource modules
Updated imports in base.py and types.py to add ResourceContents types to the existing mcp.types import rather than using a separate import statement. This follows the existing pattern and keeps imports cleaner. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 588221a commit a6e8950

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

src/mcp/server/fastmcp/resources/base.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
field_validator,
1414
)
1515

16-
import mcp.types as types
17-
from mcp.types import Icon
16+
from mcp.types import BlobResourceContents, Icon, TextResourceContents
1817

1918

2019
class Resource(BaseModel, abc.ABC):
@@ -44,6 +43,6 @@ def set_default_name(cls, name: str | None, info: ValidationInfo) -> str:
4443
raise ValueError("Either name or uri must be provided")
4544

4645
@abc.abstractmethod
47-
async def read(self) -> str | bytes | types.TextResourceContents | types.BlobResourceContents:
46+
async def read(self) -> str | bytes | TextResourceContents | BlobResourceContents:
4847
"""Read the resource content."""
4948
pass

src/mcp/server/fastmcp/resources/types.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@
1313
import pydantic_core
1414
from pydantic import AnyUrl, Field, ValidationInfo, validate_call
1515

16-
import mcp.types as types
1716
from mcp.server.fastmcp.resources.base import Resource
18-
from mcp.types import Icon
17+
from mcp.types import BlobResourceContents, Icon, ResourceContents, TextResourceContents
1918

2019

2120
class TextResource(Resource):
@@ -53,7 +52,7 @@ class FunctionResource(Resource):
5352

5453
fn: Callable[[], Any] = Field(exclude=True)
5554

56-
async def read(self) -> str | bytes | types.TextResourceContents | types.BlobResourceContents:
55+
async def read(self) -> str | bytes | TextResourceContents | BlobResourceContents:
5756
"""Read the resource by calling the wrapped function."""
5857
try:
5958
# Call the function first to see if it returns a coroutine
@@ -64,7 +63,7 @@ async def read(self) -> str | bytes | types.TextResourceContents | types.BlobRes
6463

6564
if isinstance(result, Resource):
6665
return await result.read()
67-
elif isinstance(result, (types.TextResourceContents, types.BlobResourceContents)):
66+
elif isinstance(result, (TextResourceContents, BlobResourceContents)):
6867
return result
6968
elif isinstance(result, bytes):
7069
return result

0 commit comments

Comments
 (0)