MCPcopy Create free account
hub / github.com/InternScience/InternAgent / initialize

Method initialize

internagent/mas/tools/mcp_manager.py:39–83  ·  view source on GitHub ↗

Initialize all MCP server connections. Args: local_servers_dir: Directory containing local MCP server scripts. Defaults to internagent/mas/tools/mcp/ remote_servers: List of remote server configurations, each containing:

(self, 
                        local_servers_dir: Optional[str] = None,
                        remote_servers: Optional[List[Dict[str, Any]]] = None)

Source from the content-addressed store, hash-verified

37 self._initialized = False
38
39 async def initialize(self,
40 local_servers_dir: Optional[str] = None,
41 remote_servers: Optional[List[Dict[str, Any]]] = None):
42 """
43 Initialize all MCP server connections.
44
45 Args:
46 local_servers_dir: Directory containing local MCP server scripts.
47 Defaults to internagent/mas/tools/mcp/
48 remote_servers: List of remote server configurations, each containing:
49 - id: Unique identifier
50 - url: Server URL (can be /sse or /mcp endpoint)
51 - headers: Optional HTTP headers (for authentication)
52 - protocol: Optional, 'sse' or 'http' (auto-detected if not specified)
53 """
54 if self._initialized:
55 logger.warning("MCPManager already initialized")
56 return
57
58 # Auto-discover and connect local servers
59 if local_servers_dir is None:
60 current_dir = Path(__file__).parent
61 local_servers_dir = current_dir / "mcp"
62 else:
63 local_servers_dir = Path(local_servers_dir)
64
65 if local_servers_dir.exists():
66 await self._discover_and_connect_local_servers(local_servers_dir)
67 else:
68 logger.warning(f"Local MCP servers directory not found: {local_servers_dir}")
69
70 # Connect to remote servers if provided
71 if remote_servers:
72 logger.info(f"Attempting to connect to {len(remote_servers)} remote server(s)")
73 for server_config in remote_servers:
74 try:
75 await self._connect_remote_server(server_config)
76 except Exception as e:
77 server_id = server_config.get('id', 'unknown')
78 logger.error(f"Failed to connect to remote server {server_id}: {e}")
79 logger.debug(f"Server config: {server_config}", exc_info=True)
80
81 self._initialized = True
82 logger.info(f"MCPManager initialized with {len(self.sessions)} server(s)")
83 logger.info(f"Total MCP tools available: {len(self.tool_to_server)}")
84
85 async def _discover_and_connect_local_servers(self, servers_dir: Path):
86 """

Callers 4

init_mcp_toolsFunction · 0.95
_connect_local_serverMethod · 0.45
_connect_via_sseMethod · 0.45
_connect_via_httpMethod · 0.45

Calls 3

getMethod · 0.45

Tested by

no test coverage detected