magg_list_kits
Retrieve a list of available kits and their current status to streamline server management and tool configuration within the MAGG MCP ecosystem.
Instructions
List all available kits with their status.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| errors | No | ||
| output | No |
Implementation Reference
- magg/server/manager.py:569-584 (handler)Handler function for the 'magg_list_kits' tool in ServerManager. Calls kit_manager.list_all_kits() and formats the response with summary statistics.
async def list_kits(self) -> MaggResponse: """List all available kits with their status.""" try: kits = self.kit_manager.list_all_kits() return MaggResponse.success({ "kits": kits, "summary": { "total": len(kits), "loaded": len([k for k in kits.values() if k['loaded']]), "available": len([k for k in kits.values() if not k['loaded']]) } }) except Exception as e: return MaggResponse.error(f"Failed to list kits: {str(e)}") - magg/server/server.py:60-63 (registration)Registration of the 'magg_list_kits' tool (as part of kit tools) in MaggServer._register_tools method using self.mcp.tool().
(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), - magg/kit.py:258-304 (helper)KitManager.list_all_kits(): Discovers all available kits from kit.d directories, combines with loaded kits, loads metadata for available kits, and returns detailed status for each.
def list_all_kits(self) -> dict[str, dict[str, Any]]: """List all available kits with their status. Returns: Dict mapping kit names to their info (loaded, path, description, servers) """ available_kits = self.discover_kits() loaded_kits = self.kits result = {} for kit_name, kit_config in loaded_kits.items(): result[kit_name] = { 'loaded': True, 'path': str(available_kits.get(kit_name, 'unknown')), 'description': kit_config.description, 'author': kit_config.author, 'version': kit_config.version, 'keywords': kit_config.keywords, 'servers': list(kit_config.servers.keys()) } for kit_name, kit_path in available_kits.items(): if kit_name not in result: kit_config = self.load_kit(kit_path) if kit_config: result[kit_name] = { 'loaded': False, 'path': str(kit_path), 'description': kit_config.description, 'author': kit_config.author, 'version': kit_config.version, 'keywords': kit_config.keywords, 'servers': list(kit_config.servers.keys()) } else: result[kit_name] = { 'loaded': False, 'path': str(kit_path), 'description': 'Failed to load kit metadata', 'author': None, 'version': None, 'keywords': [], 'servers': [] } return result