Skip to content

FastMCP.as_proxy loses tool title #2496

@CNSeniorious000

Description

@CNSeniorious000

Description

When using FastMCP.as_proxy(), the title parameter of tools is set to None instead of preserving the original value.

>>> await mcp.get_tools()
# {'name': FunctionTool(name='name', title='title', description=None, tags=set(), enabled=True)}
>>> await FastMCP.as_proxy(mcp).get_tools()
# {'name': ProxyTool(name='name', title=None, description=None, tags=set(), enabled=True)}

Example Code

# /// script
# requires-python = ">=3.14"
# dependencies = [
#   "fastmcp==2.13.1",
# ]
# ///
from anyio import run
from fastmcp import FastMCP

mcp = FastMCP()


@mcp.tool("name", title="title")
def _(): ...


@run
async def _():
    print(await mcp.get_tools())
    print(await FastMCP.as_proxy(mcp).get_tools())

Version Information

FastMCP version:                                       2.13.1
MCP version:                                           1.22.0
Python version:                                        3.14.0
Platform:                           Windows-11-10.0.26200-SP0
FastMCP root path: D:\dev\deep-search\.venv\Lib\site-packages

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working. Reports of errors, unexpected behavior, or broken functionality.serverRelated to FastMCP server implementation or server-side functionality.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions