Skip to main content
Glama

magg_remove_server

Delete a specified server from the MAGG MCP server to manage and optimize server configurations effectively. Input the server name to execute the removal process.

Instructions

Remove a server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesServer name to remove

Implementation Reference

  • Core handler for 'magg_remove_server' tool. Removes the specified server from configuration, saves config, unmounts the server, and returns appropriate success/error response.
    async def remove_server( self, name: Annotated[str, Field(description="Server name to remove")], ) -> MaggResponse: """Remove a server.""" try: config = self.config if name in config.servers: config.remove_server(name) if not self.save_config(config): return MaggResponse.error(f"Failed to save configuration after removing server '{name}'") await self.server_manager.unmount_server(name) return MaggResponse.success({ "action": "server_removed", "server": {"name": name} }) else: return MaggResponse.error(f"Server '{name}' not found") except Exception as e: return MaggResponse.error(f"Failed to remove server: {str(e)}")
  • The tools list in _register_tools() method that includes the registration tuple for 'magg_remove_server' using self.remove_server method and dynamic name f'{self_prefix_}remove_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), ]
  • The registration loop that applies self.mcp.tool() decorator to each method in the tools list, including remove_server, using a wrapper.
    for method, tool_name, options in tools: self.mcp.tool(name=tool_name, **(options or {}))(call_tool_wrapper(method))
  • Helper method called by the handler to unmount the server: closes client, removes from FastMCP internals, and cleans up tracking.
    async def unmount_server(self, name: str) -> bool: """Unmount a server.""" if name in self.mounted_servers: unmounted = self._unmount_from_fastmcp(name) if unmounted: logger.debug("Unmounted server %s from FastMCP", name) else: logger.debug("Server %s was not found in FastMCP's mounted servers", name) server_info = self.mounted_servers.get(name) if server_info and server_info.client: try: await server_info.client.close() logger.debug("Closed client for server %s", name) except Exception as e: logger.warning("Error closing client for server %s: %s", name, e) del self.mounted_servers[name] logger.debug("Unmounted server %s", name) return True else: logger.warning("Server %s is not mounted, cannot unmount", name) return False
  • Input schema defined via Pydantic Annotated Field for the 'name' parameter.
    async def remove_server( self, name: Annotated[str, Field(description="Server name to remove")], ) -> MaggResponse:

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