File tree Expand file tree Collapse file tree 4 files changed +27
-5
lines changed
Expand file tree Collapse file tree 4 files changed +27
-5
lines changed Original file line number Diff line number Diff line change @@ -25,22 +25,22 @@ repos:
2525 hooks :
2626 - id : ruff-format
2727 name : Ruff Format
28- entry : uv run ruff
28+ entry : uv run --frozen ruff
2929 args : [format]
3030 language : system
3131 types : [python]
3232 pass_filenames : false
3333 - id : ruff
3434 name : Ruff
35- entry : uv run ruff
35+ entry : uv run --frozen ruff
3636 args : ["check", "--fix", "--exit-non-zero-on-fix"]
3737 types : [python]
3838 language : system
3939 pass_filenames : false
4040 exclude : ^README\.md$
4141 - id : pyright
4242 name : pyright
43- entry : uv run pyright
43+ entry : uv run --frozen pyright
4444 language : system
4545 types : [python]
4646 pass_filenames : false
5252 pass_filenames : false
5353 - id : readme-snippets
5454 name : Check README snippets are up to date
55- entry : uv run scripts/update_readme_snippets.py --check
55+ entry : uv run --frozen python scripts/update_readme_snippets.py --check
5656 language : system
5757 files : ^(README\.md|examples/.*\.py|scripts/update_readme_snippets\.py)$
5858 pass_filenames : false
Original file line number Diff line number Diff 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 )
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