diff --git a/src/fastmcp/server/proxy.py b/src/fastmcp/server/proxy.py index 0d69801152..387450040e 100644 --- a/src/fastmcp/server/proxy.py +++ b/src/fastmcp/server/proxy.py @@ -287,9 +287,16 @@ async def run( ) -> ToolResult: """Executes the tool by making a call through the client.""" async with self._client: + context = get_context() + # try to get request context meta + meta = ( + dict(context.request_context.meta) + if hasattr(context, "request_context") + and hasattr(context.request_context, "meta") + else None + ) result = await self._client.call_tool_mcp( - name=self.name, - arguments=arguments, + name=self.name, arguments=arguments, meta=meta ) if result.isError: raise ToolError(cast(mcp.types.TextContent, result.content[0]).text) diff --git a/src/fastmcp/utilities/mcp_config.py b/src/fastmcp/utilities/mcp_config.py index 8f22c8b926..2f2c5b780a 100644 --- a/src/fastmcp/utilities/mcp_config.py +++ b/src/fastmcp/utilities/mcp_config.py @@ -43,8 +43,7 @@ def mcp_server_type_to_servers_and_transports( if isinstance(mcp_server, TransformingRemoteMCPServer | TransformingStdioMCPServer): server, transport = mcp_server._to_server_and_underlying_transport( - server_name=server_name, - client_name=client_name, + server_name=server_name, client_name=client_name ) else: transport = mcp_server.to_transport()