MCPcopy Create free account
hub / github.com/IBM/mcp-cli / get_server_info

Method get_server_info

src/mcp_cli/tools/manager.py:1159–1232  ·  view source on GitHub ↗

Get information about connected servers.

(self)

Source from the content-addressed store, hash-verified

1157 # ================================================================
1158
1159 async def get_server_info(self) -> list[ServerInfo]:
1160 """Get information about connected servers."""
1161 if not self.stream_manager:
1162 return []
1163
1164 try:
1165 servers = []
1166 server_id = 0
1167
1168 http_servers = self._config_loader.http_servers
1169 sse_servers = self._config_loader.sse_servers
1170 stdio_servers = self._config_loader.stdio_servers
1171 all_servers = http_servers + sse_servers + stdio_servers
1172
1173 # Get tool counts per server from StreamManager's tool_to_server_map
1174 # This is the authoritative source for tool→server mapping
1175 tool_counts: dict[str, int] = {}
1176 if hasattr(self.stream_manager, "tool_to_server_map"):
1177 for server_name in self.stream_manager.tool_to_server_map.values():
1178 tool_counts[server_name] = tool_counts.get(server_name, 0) + 1
1179
1180 for server in all_servers:
1181 server_name = server.name
1182
1183 # Determine transport type and get transport-specific fields
1184 from mcp_cli.config.server_models import (
1185 HTTPServerConfig,
1186 STDIOServerConfig,
1187 )
1188
1189 command: str | None = None
1190 url: str | None = None
1191 args: list[str] = []
1192 env: dict[str, str] = {}
1193
1194 if server in http_servers:
1195 transport = TransportType.HTTP
1196 if isinstance(server, HTTPServerConfig):
1197 url = server.url
1198 elif server in sse_servers:
1199 transport = TransportType.SSE
1200 if isinstance(server, HTTPServerConfig):
1201 url = server.url
1202 else:
1203 transport = TransportType.STDIO
1204 if isinstance(server, STDIOServerConfig):
1205 command = server.command
1206 args = list(server.args)
1207 env = dict(server.env)
1208
1209 servers.append(
1210 ServerInfo(
1211 id=server_id,
1212 name=server_name,
1213 status=ServerStatus.CONNECTED.value,
1214 tool_count=tool_counts.get(server_name, 0),
1215 namespace=server_name,
1216 enabled=not server.disabled,

Calls 2

ServerInfoClass · 0.90
getMethod · 0.45