diff --git a/pkg/gateway/capabilitites.go b/pkg/gateway/capabilitites.go index eceb02ee..237e2c75 100644 --- a/pkg/gateway/capabilitites.go +++ b/pkg/gateway/capabilitites.go @@ -159,7 +159,7 @@ func (g *Gateway) listCapabilities(ctx context.Context, serverNames []string, cl capabilities.Tools = append(capabilities.Tools, ToolRegistration{ ServerName: serverConfig.Name, Tool: &prefixedTool, - Handler: g.mcpServerToolHandler(serverConfig.Name, g.mcpServer, tool.Annotations), + Handler: g.mcpServerToolHandler(serverConfig.Name, g.mcpServer, tool.Annotations, tool.Name), }) } } diff --git a/pkg/gateway/handlers.go b/pkg/gateway/handlers.go index 6bd966a7..6e43757a 100644 --- a/pkg/gateway/handlers.go +++ b/pkg/gateway/handlers.go @@ -57,7 +57,7 @@ func (g *Gateway) mcpToolHandler(tool catalog.Tool) mcp.ToolHandler { } } -func (g *Gateway) mcpServerToolHandler(serverName string, server *mcp.Server, annotations *mcp.ToolAnnotations) mcp.ToolHandler { +func (g *Gateway) mcpServerToolHandler(serverName string, server *mcp.Server, annotations *mcp.ToolAnnotations, originalToolName string) mcp.ToolHandler { return func(ctx context.Context, req *mcp.CallToolRequest) (*mcp.CallToolResult, error) { // Look up server configuration serverConfig, _, ok := g.configuration.Find(serverName) @@ -128,7 +128,7 @@ func (g *Gateway) mcpServerToolHandler(serverName string, server *mcp.Server, an } params := &mcp.CallToolParams{ Meta: req.Params.Meta, - Name: req.Params.Name, + Name: originalToolName, Arguments: args, }