Skip to main content
Glama

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
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • 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)}")
  • 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))

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sitbon/magg'

If you have feedback or need assistance with the MCP directory API, please join our Discord server