MCPcopy Create free account
hub / github.com/algorithmicsuperintelligence/optillm / MCPServerManager

Class MCPServerManager

optillm/plugins/mcp_plugin.py:501–625  ·  view source on GitHub ↗

Manages MCP servers and capabilities

Source from the content-addressed store, hash-verified

499 return False
500
501class MCPServerManager:
502 """Manages MCP servers and capabilities"""
503
504 def __init__(self, config_manager: MCPConfigManager):
505 self.config_manager = config_manager
506 self.servers: Dict[str, MCPServer] = {}
507 self.initialized = False
508
509 # Cache of capabilities
510 self.all_tools = []
511 self.all_resources = []
512 self.all_prompts = []
513
514 async def initialize(self) -> bool:
515 """Initialize and cache all server capabilities"""
516 if self.initialized:
517 return True
518
519 # Create servers
520 for server_name, server_config in self.config_manager.servers.items():
521 self.servers[server_name] = MCPServer(server_name, server_config)
522
523 # Connect to all servers and discover capabilities
524 connected_servers = 0
525 for server_name, server in self.servers.items():
526 success = await server.connect_and_discover()
527 if success:
528 connected_servers += 1
529 # Cache server capabilities
530 for tool in server.tools:
531 tool_info = {
532 "server": server_name,
533 "name": tool.name,
534 "description": tool.description,
535 "input_schema": tool.inputSchema
536 }
537 self.all_tools.append(tool_info)
538 logger.debug(f"Cached tool: {tool_info}")
539
540 for resource in server.resources:
541 resource_info = {
542 "server": server_name,
543 "uri": resource.uri,
544 "name": resource.name,
545 "description": resource.description
546 }
547 self.all_resources.append(resource_info)
548 logger.debug(f"Cached resource: {resource_info}")
549
550 for prompt in server.prompts:
551 prompt_info = {
552 "server": server_name,
553 "name": prompt.name,
554 "description": prompt.description,
555 "arguments": prompt.arguments
556 }
557 self.all_prompts.append(prompt_info)
558 logger.debug(f"Cached prompt: {prompt_info}")

Callers 4

test_initMethod · 0.90
runFunction · 0.85

Calls

no outgoing calls