File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff 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 ]
Original file line number Diff line number Diff 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
814835class TestContextInjection:
815836 """Test context injection in tools, resources, and prompts."""
You can’t perform that action at this time.
0 commit comments