magg_list_servers
Retrieve a list of all configured servers with their runtime status (mounted or not) to monitor and manage MCP server configurations effectively.
Instructions
List all configured servers.
Unlike the /servers/all resource, this tool also provides the runtime status of each server (mounted or not).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- magg/server/server.py:369-402 (handler)The main execution handler for the 'magg_list_servers' tool. It iterates over configured servers, constructs status information (including mounted status), and returns a success response with the list or an error.async def list_servers(self) -> MaggResponse: """List all configured servers. Unlike the /servers/all resource, this tool also provides the runtime status of each server (mounted or not). """ try: config = self.config servers = [] for name, server in config.servers.items(): server_data = { "name": name, "source": server.source, "prefix": server.prefix, "enabled": server.enabled, "mounted": name in self.server_manager.mounted_servers, } if server.command: server_data["command"] = f"{server.command} {' '.join(server.args) if server.args else ''}".strip() if server.uri: server_data["uri"] = server.uri if server.cwd: server_data["cwd"] = str(server.cwd) if server.notes: server_data["notes"] = server.notes servers.append(server_data) return MaggResponse.success(servers) except Exception as e: return MaggResponse.error(f"Failed to list servers: {str(e)}")
- magg/server/server.py:48-80 (registration)The tool registration block in `_register_tools` method. It defines the list of Magg tools including 'magg_list_servers' (line ~51) and applies the FastMCP `tool` decorator in a loop to register `self.list_servers` with the constructed name `f'{self_prefix_}list_servers'` where `self_prefix_` is 'magg_'.tools = [ (self.add_server, f"{self_prefix_}add_server", None), (self.remove_server, f"{self_prefix_}remove_server", None), (self.list_servers, f"{self_prefix_}list_servers", None), (self.enable_server, f"{self_prefix_}enable_server", None), (self.disable_server, f"{self_prefix_}disable_server", None), (self.search_servers, f"{self_prefix_}search_servers", None), (self.smart_configure, f"{self_prefix_}smart_configure", None), (self.analyze_servers, f"{self_prefix_}analyze_servers", None), (self.status, f"{self_prefix_}status", None), (self.check, f"{self_prefix_}check", None), (self.reload_config_tool, f"{self_prefix_}reload_config", None), (self.load_kit, f"{self_prefix_}load_kit", None), (self.unload_kit, f"{self_prefix_}unload_kit", None), (self.list_kits, f"{self_prefix_}list_kits", None), (self.kit_info, f"{self_prefix_}kit_info", None), ] def call_tool_wrapper(func): @wraps(func) async def wrapper(*args, **kwds): result = await func(*args, **kwds) if isinstance(result, MaggResponse): return result.as_json_text_content return result return wrapper for method, tool_name, options in tools: self.mcp.tool(name=tool_name, **(options or {}))(call_tool_wrapper(method))