Skip to main content
Glama
controller_configuration.py3.67 kB
#!/usr/bin/env python3 """ AAP Controller Configuration & System Management Tool """ from typing import Any, Dict, Optional, Union from fastmcp import FastMCP from pydantic import Field from connectors.aap_connector import get_aap_connector def register_configuration_tools(mcp: FastMCP): """Register configuration management tools with the MCP server""" @mcp.tool() def configuration_system_management( action: str = Field(description="Action: get_settings, update_settings, list_settings_categories, get_system_config, list_instance_groups, create_instance_group, update_instance_group, get_license_info"), setting_category: Optional[str] = Field(None, description="Setting category (authentication, system, etc.)"), instance_group_id: Optional[Union[int, float]] = Field(None, description="Instance group ID"), setting_data: Optional[Dict[str, Any]] = Field(None, description="Settings data"), instance_group_data: Optional[Dict[str, Any]] = Field(None, description="Instance group data"), filters: Optional[Dict[str, Any]] = Field(None, description="Filters for listing") ) -> Dict[str, Any]: """ Configuration and system management tool. Handles system settings, instance groups, and license information. """ try: # Settings Operations if action == "get_settings": if setting_category: return get_aap_connector().get(f"settings/{setting_category}/") else: return get_aap_connector().get("settings/all/") elif action == "update_settings": if not setting_category or not setting_data: return {"error": "setting_category and setting_data are required"} return get_aap_connector().patch(f"settings/{setting_category}/", setting_data) elif action == "list_settings_categories": return get_aap_connector().get("settings/") elif action == "get_system_config": return get_aap_connector().get("config/") # Instance Group Operations elif action == "list_instance_groups": params = filters or {} return get_aap_connector().get("instance_groups/", params) elif action == "create_instance_group": if not instance_group_data: return {"error": "instance_group_data is required"} return get_aap_connector().post("instance_groups/", instance_group_data) elif action == "update_instance_group": if not instance_group_id or not instance_group_data: return {"error": "instance_group_id and instance_group_data are required"} return get_aap_connector().patch(f"instance_groups/{instance_group_id}/", instance_group_data) # License Operations elif action == "get_license_info": config = get_aap_connector().get("config/") return { "license_info": config.get("license_info", {}), "license_type": config.get("license_type"), "license_date": config.get("license_date"), "subscription_name": config.get("subscription_name") } else: return {"error": f"Unknown action: {action}"} except Exception as e: return {"error": f"Configuration/System management failed: {str(e)}"}

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/anshulbehl/aap-mcp-pilot'

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