Merge pull request #4 from Eric84626/feature/fix_mcp_401_error_startup_proxyserver

fix: removed initialize the tool name to MCP server name mapping(oaut…
This commit is contained in:
Eric84626
2025-12-20 14:14:52 +08:00
committed by GitHub
2 changed files with 22 additions and 0 deletions
@@ -1913,6 +1913,9 @@ class MCPServerManager:
Note: This now handles prefixed tool names
"""
for server in self.get_registry().values():
if server.auth_type == MCPAuth.oauth2:
# Skip OAuth2 servers for now as they may require user-specific tokens
continue
tools = await self._get_tools_from_server(server)
for tool in tools:
# The tool.name here is already prefixed from _get_tools_from_server
@@ -536,7 +536,26 @@ class TestMCPServerManager:
assert (
server.registration_url == "https://discovered.example.com/register"
)
@pytest.mark.asyncio
async def test_config_oauth_initialize_tool_name_to_mcp_server_name_mapping(self):
manager = MCPServerManager()
config = {
"example": {
"url": "https://example.com/mcp",
"transport": MCPTransport.http,
"auth_type": MCPAuth.oauth2,
"scopes": ["config"],
"authorization_url": "https://config.example.com/auth",
}
}
await manager.load_servers_from_config(config)
# Initialize the tool mapping
await manager._initialize_tool_name_to_mcp_server_name_mapping()
assert manager.tool_name_to_mcp_server_name_mapping == {}
@pytest.mark.asyncio
async def test_list_tools_handles_missing_server_alias(self):
"""Test that list_tools handles servers without alias gracefully"""