From af2a28b1b1bb1dbfd0b2a1db79ab47f66ee610ac Mon Sep 17 00:00:00 2001 From: Sarah Wooders Date: Thu, 2 Oct 2025 21:00:47 -0700 Subject: [PATCH] fix: add schema patching for mcp list tools (#5105) --- letta/services/mcp_manager.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/letta/services/mcp_manager.py b/letta/services/mcp_manager.py index 67b1bf5e..8790f909 100644 --- a/letta/services/mcp_manager.py +++ b/letta/services/mcp_manager.py @@ -18,6 +18,7 @@ from letta.functions.mcp_client.types import ( StdioServerConfig, StreamableHTTPServerConfig, ) +from letta.functions.schema_generator import normalize_mcp_schema from letta.functions.schema_validator import validate_complete_json_schema from letta.log import get_logger from letta.orm.errors import NoResultFound @@ -72,7 +73,9 @@ class MCPManager: tools = await mcp_client.list_tools() # Add health information to each tool for tool in tools: + # Try to normalize the schema and re-validate\ if tool.inputSchema: + tool.inputSchema = normalize_mcp_schema(tool.inputSchema) health_status, reasons = validate_complete_json_schema(tool.inputSchema) tool.health = MCPToolHealth(status=health_status.value, reasons=reasons) @@ -146,9 +149,6 @@ class MCPManager: logger.info(f"Original health reasons: {mcp_tool.health.reasons}") # Try to normalize the schema and re-validate - from letta.functions.schema_generator import normalize_mcp_schema - from letta.functions.schema_validator import validate_complete_json_schema - try: # Normalize the schema to fix common issues logger.debug(f"Normalizing schema for {mcp_tool_name}")