MCP-OpenStack-Ops
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OS_CACERT | No | SSL CA certificate path for HTTPS (optional, required for secure HTTPS if using https) | |
| OS_PASSWORD | Yes | OpenStack password (required) | |
| OS_USERNAME | Yes | OpenStack username (required) | |
| FASTMCP_HOST | No | HTTP host address for streamable-http mode | 127.0.0.1 |
| FASTMCP_PORT | No | HTTP port for streamable-http mode | 8080 |
| FASTMCP_TYPE | No | Transport type (stdio, streamable-http) | stdio |
| OS_AUTH_HOST | Yes | OpenStack Identity service host address (required) | |
| OS_AUTH_PORT | Yes | OpenStack Identity service port (required) | |
| OS_INTERFACE | No | Interface type (public, internal, admin) | public |
| MCP_LOG_LEVEL | No | Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) | INFO |
| OS_IMAGE_PORT | No | Image service port | 9292 |
| OS_REGION_NAME | No | OpenStack region name | RegionOne |
| OS_VOLUME_PORT | No | Volume service port | 8776 |
| OS_COMPUTE_PORT | No | Compute service port | 8774 |
| OS_NETWORK_PORT | No | Network service port | 9696 |
| OS_PROJECT_NAME | Yes | OpenStack project name (required) | |
| OS_AUTH_PROTOCOL | No | Connection protocol (http or https) | http |
| OS_PLACEMENT_PORT | No | Placement service port | 8780 |
| REMOTE_SECRET_KEY | No | Secret key for Bearer token authentication (required if REMOTE_AUTH_ENABLE=true) | |
| OS_HEAT_STACK_PORT | No | Heat orchestration service port | 8004 |
| REMOTE_AUTH_ENABLE | No | Enable Bearer token authentication for streamable-http mode | false |
| OS_USER_DOMAIN_NAME | No | User domain name | default |
| OS_HEAT_STACK_CFN_PORT | No | Heat CloudFormation service port | 18888 |
| OS_PROJECT_DOMAIN_NAME | No | Project domain name | default |
| ALLOW_MODIFY_OPERATIONS | No | Enable modify operations (true/false) | false |
| OS_IDENTITY_API_VERSION | No | Identity API version | 3 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_availability_zonesB | List availability zones and their status Returns: JSON string with availability zones information |
| get_floating_ip_poolsA | Get list of floating IP pools (external networks). Functions:
Use when user requests:
Returns: List of floating IP pools with capacity information in JSON format. |
| get_floating_ipsA | Get list of floating IPs with their associations. Functions:
Use when user requests floating IP information, external connectivity queries, or IP management tasks. Returns: List of floating IPs with detailed association information in JSON format. |
| get_heat_stacksA | Get list of Heat orchestration stacks. Functions:
Use when user requests stack information, orchestration queries, or infrastructure-as-code status. Returns: List of Heat stacks with detailed information in JSON format. |
| get_hypervisor_detailsC | Get detailed information about hypervisors |
| get_image_detail_listA | Get detailed list of all images with comprehensive metadata. Functions:
Use when user requests image listing, image information, or image metadata details. Returns: Comprehensive image list in JSON format with detailed metadata, properties, and status information. |
| get_instanceA | Unified instance query tool supporting all instance retrieval patterns. Consolidates functionality from get_instance_details, get_instance_by_name, get_instances_by_status, and search_instances. Functions:
Use when user requests instance information, status checks, or instance searches. |
| get_instance_by_nameC | Get detailed information for a specific instance by name. |
| get_instance_detailsA | Provides detailed information and status for OpenStack instances with pagination support. Functions:
Use when user requests specific instance information, VM details, server analysis, or instance troubleshooting. |
| get_instances_by_statusB | Get instances filtered by status. |
| get_keypair_listA | Get list of SSH keypairs for the current user. Functions:
Use when user requests SSH key management, keypair information, or security key queries. Returns: List of SSH keypairs with detailed information in JSON format. |
| get_load_balancer_amphoraeB | Get amphora instances for a load balancer or all amphorae. |
| get_load_balancer_availability_zonesB | Get load balancer availability zones. Returns: JSON string containing availability zones information |
| get_load_balancer_detailsA | Get detailed information about a specific OpenStack load balancer. Functions:
Use when user requests:
|
| get_load_balancer_flavorsB | Get load balancer flavors. Returns: JSON string containing flavors information |
| get_load_balancer_health_monitorsA | Get health monitors, optionally filtered by pool. Functions:
Use when user requests:
|
| get_load_balancer_l7_policiesB | Get L7 policies for a listener or all L7 policies. |
| get_load_balancer_l7_rulesA | Get L7 rules for a specific L7 policy. |
| get_load_balancer_listA | Retrieve comprehensive list of OpenStack load balancers with detailed information. Functions:
Use when user requests:
|
| get_load_balancer_listenersA | Get listeners for a specific OpenStack load balancer. Functions:
Use when user requests:
|
| get_load_balancer_pool_membersA | Get members for a specific OpenStack load balancer pool. Functions:
Use when user requests:
|
| get_load_balancer_poolsA | Get load balancer pools, optionally filtered by listener. Functions:
Use when user requests:
|
| get_load_balancer_providersB | Get load balancer providers. Returns: JSON string containing providers information |
| get_load_balancer_quotasB | Get load balancer quotas for a project or all projects. |
| get_network_detailsA | Provides detailed information for OpenStack networks, subnets, routers, and security groups. Functions:
Use when user requests network information, subnet details, router configuration, or network troubleshooting. |
| get_project_detailsB | Get OpenStack project details (similar to 'openstack project list/show'). |
| get_quotaB | Get quota information for projects (similar to 'openstack quota show'). |
| get_resource_monitoringA | Monitors real-time resource usage across the OpenStack cluster. Functions:
Use when user requests resource monitoring, capacity planning, usage analysis, or performance monitoring. Returns: Resource monitoring data in JSON format with cluster summary, hypervisor details, and usage statistics. |
| get_role_assignmentsA | Get role assignments for the current project. Functions:
Use when user requests permission information, access control queries, or security auditing. Returns: List of role assignments with detailed scope information in JSON format. |
| get_routersA | Get list of routers with their configuration. Functions:
Use when user requests router information, network connectivity queries, or routing configuration. Returns: List of routers with detailed configuration in JSON format. |
| get_security_groupsA | Get list of security groups with their rules. Functions:
Use when user requests security group information, firewall rules, or network security queries. Returns: List of security groups with detailed rules in JSON format. |
| get_server_eventsC | Get recent events for a specific server |
| get_server_groupsA | List all server groups with their details Returns: JSON string with server groups information |
| get_server_volumesA | Get all volumes attached to a specific server |
| get_service_statusA | Provides status and health check information for each OpenStack service. Functions:
Use when user requests service status, API status, health checks, or service troubleshooting. Returns: Service status information in JSON format with service details and health summary. |
| get_usage_statisticsA | Get usage statistics for projects (similar to 'openstack usage list' command). Functions:
Use when user requests usage statistics, billing information, resource consumption analysis, or project usage reports. |
| get_user_listA | Get list of OpenStack users in the current domain. Functions:
Use when user requests user management information, identity queries, or user administration tasks. Returns: List of users with detailed information in JSON format. |
| get_volume_listA | Get list of all volumes with detailed information. Functions:
Use when user requests volume listing, volume information, or storage overview. Returns: Detailed volume list in JSON format with volume information, attachments, and metadata. |
| get_volume_snapshotsA | Get list of volume snapshots. Functions:
Use when user requests snapshot information, backup queries, or volume restoration planning. Returns: List of volume snapshots with detailed information in JSON format. |
| get_volume_typesA | Get list of volume types with their specifications. Functions:
Use when user requests volume type information, storage backend queries, or volume creation planning. Returns: List of volume types with detailed specifications in JSON format. |
| search_instancesB | Search for OpenStack instances based on various criteria with efficient pagination. Functions:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| prompt_template_full | Return the full canonical prompt template. |
| prompt_template_headings | Return compact list of section headings. |
| prompt_template_section | Return a specific prompt template section by number or keyword. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 41 tools
The instance-retrieval surface is highly overlapping: get_instance claims to consolidate get_instance_details, get_instance_by_name, get_instances_by_status, and search_instances, yet all five remain exposed, making misselection very likely. get_network_details also overlaps with get_routers and get_security_groups, and some load balancer list/detail tools are close enough to confuse without careful reading.
Tool names consistently follow snake_case verb_noun conventions, overwhelmingly using get_* prefixes with predictable resource names. search_instances is a slight verb variation but still fits the same predictable pattern and style.
With 41 tools, the surface is well above the recommended range for a single MCP server and feels heavy even for a broad domain like OpenStack. The large count is compounded by redundant instance and network tools that could be consolidated into fewer well-scoped tools.
Read-only coverage is broad across compute, storage, networking, identity, load balancing, orchestration, images, and quotas. However, there are no lifecycle or action tools for creating, updating, deleting, starting/stopping, attaching, or detaching resources, which are notable gaps for an OpenStack operations server.