Skip to content

Commit a5c25b1

Browse files
authored
Merge branch 'main' into main
2 parents 6693675 + b41b917 commit a5c25b1

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

src/mcp/server/elicitation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ async def elicit_with_validation(
9898
related_request_id=related_request_id,
9999
)
100100

101-
if result.action == "accept" and result.content:
101+
if result.action == "accept" and result.content is not None:
102102
# Validate and parse the content using the schema
103103
validated_data = schema.model_validate(result.content)
104104
return AcceptedElicitation(data=validated_data)

src/mcp/server/fastmcp/server.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,7 @@ async def list_resource_templates(self) -> list[MCPResourceTemplate]:
320320
name=template.name,
321321
title=template.title,
322322
description=template.description,
323+
mimeType=template.mime_type,
323324
)
324325
for template in templates
325326
]

tests/server/fastmcp/test_server.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,27 @@ def get_data(name: str) -> str:
810810
result = await resource.read()
811811
assert result == "Data for test"
812812

813+
@pytest.mark.anyio
814+
async def test_resource_template_includes_mime_type(self):
815+
"""Test that list resource templates includes the correct mimeType."""
816+
mcp = FastMCP()
817+
818+
@mcp.resource("resource://{user}/csv", mime_type="text/csv")
819+
def get_csv(user: str) -> str:
820+
return f"csv for {user}"
821+
822+
templates = await mcp.list_resource_templates()
823+
assert len(templates) == 1
824+
template = templates[0]
825+
826+
assert hasattr(template, "mimeType")
827+
assert template.mimeType == "text/csv"
828+
829+
async with client_session(mcp._mcp_server) as client:
830+
result = await client.read_resource(AnyUrl("resource://bob/csv"))
831+
assert isinstance(result.contents[0], TextResourceContents)
832+
assert result.contents[0].text == "csv for bob"
833+
813834

814835
class TestContextInjection:
815836
"""Test context injection in tools, resources, and prompts."""

0 commit comments

Comments
 (0)