diff --git a/src/fastmcp/prompts/prompt.py b/src/fastmcp/prompts/prompt.py index 5022d0711..98518a24b 100644 --- a/src/fastmcp/prompts/prompt.py +++ b/src/fastmcp/prompts/prompt.py @@ -99,10 +99,8 @@ class Prompt(FastMCPComponent, ABC): "name": self.name, "description": self.description, "arguments": arguments, + "title": self.title, } - # Add title field if provided - if self.title is not None: - kwargs["title"] = self.title return MCPPrompt(**kwargs | overrides) @staticmethod diff --git a/src/fastmcp/resources/resource.py b/src/fastmcp/resources/resource.py index 113960630..77941e73d 100644 --- a/src/fastmcp/resources/resource.py +++ b/src/fastmcp/resources/resource.py @@ -113,10 +113,8 @@ class Resource(FastMCPComponent, abc.ABC): "name": self.name, "description": self.description, "mimeType": self.mime_type, + "title": self.title, } - # Add title field if provided - if self.title is not None: - kwargs["title"] = self.title return MCPResource(**kwargs | overrides) def __repr__(self) -> str: diff --git a/src/fastmcp/resources/template.py b/src/fastmcp/resources/template.py index d8558e746..6680de9c9 100644 --- a/src/fastmcp/resources/template.py +++ b/src/fastmcp/resources/template.py @@ -146,10 +146,8 @@ class ResourceTemplate(FastMCPComponent): "name": self.name, "description": self.description, "mimeType": self.mime_type, + "title": self.title, } - # Add title field if provided - if self.title is not None: - kwargs["title"] = self.title return MCPResourceTemplate(**kwargs | overrides) @classmethod diff --git a/src/fastmcp/tools/tool.py b/src/fastmcp/tools/tool.py index c9787adc6..03cab7d3c 100644 --- a/src/fastmcp/tools/tool.py +++ b/src/fastmcp/tools/tool.py @@ -135,16 +135,21 @@ class Tool(FastMCPComponent): pass # No context available def to_mcp_tool(self, **overrides: Any) -> MCPTool: + if self.title: + title = self.title + elif self.annotations and self.annotations.title: + title = self.annotations.title + else: + title = None + kwargs = { "name": self.name, "description": self.description, "inputSchema": self.parameters, "outputSchema": self.output_schema, "annotations": self.annotations, + "title": title, } - # Add title field if provided - if self.title is not None: - kwargs["title"] = self.title return MCPTool(**kwargs | overrides) @staticmethod