Skip to main content
Glama

magg_disable_server

Disable a specified server on the MAGG MCP server to manage and control server operations. Input the server name to deactivate it.

Instructions

Disable a server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesServer name to disable

Implementation Reference

  • The core handler function for the 'magg_disable_server' MCP tool. It disables the specified server by setting enabled=False in config, saves the config, unmounts the server, and returns a success/error response.
    async def disable_server(
        self,
        name: Annotated[str, Field(description="Server name to disable")],
    ) -> MaggResponse:
        """Disable a server."""
        try:
            config = self.config
    
            if name not in config.servers:
                return MaggResponse.error(f"Server '{name}' not found")
    
            server = config.servers[name]
    
            if not server.enabled:
                return MaggResponse.error(f"Server '{name}' is already disabled")
    
            server.enabled = False
    
            if not self.save_config(config):
                return MaggResponse.error(f"Failed to save configuration for server '{name}'")
    
            await self.server_manager.unmount_server(name)
    
            return MaggResponse.success({
                "action": "server_disabled",
                "server": {"name": name}
            })
    
        except Exception as e:
            return MaggResponse.error(f"Failed to disable server: {str(e)}")
  • Registration of the 'magg_disable_server' tool (line 53) within the _register_tools method of MaggServer class. The tool is registered using FastMCP's self.mcp.tool() with the name constructed as f'{self_prefix_}disable_server'.
    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))
  • Input schema for the tool defined via Pydantic Annotated Field: server name (str) required.
    async def disable_server(
        self,
        name: Annotated[str, Field(description="Server name to disable")],
    ) -> MaggResponse:
  • CLI command 'magg server disable' that mirrors the tool logic for disabling a server via config file directly.
    async def cmd_disable_server(args) -> int:
        """Disable a server."""
        config_manager = ConfigManager(args.config)
        config = config_manager.load_config()
    
        if args.name not in config.servers:
            print_error(f"Server '{args.name}' not found")
            return 1
    
        server = config.servers[args.name]
        if not server.enabled:
            print_info(f"Server '{args.name}' is already disabled")
            return 0
    
        server.enabled = False
    
        if config_manager.save_config(config):
            print_success(f"Disabled server '{args.name}'")
            print_text("If Magg is running, the server will be automatically unmounted")
            return 0
        else:
            print_error("Failed to save configuration")
            return 1

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