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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Server name to disable |
Implementation Reference
- magg/server/server.py:436-466 (handler)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)}")
- magg/server/server.py:48-80 (registration)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))
- magg/server/server.py:436-439 (schema)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:
- magg/cli.py:226-249 (helper)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