by wangsqly0407
OpenStack MCP Server is a service that provides API interfaces to query OpenStack cloud platform resources based on the Model Context Protocol (MCP).
OpenStack MCP Server is an OpenStack resource query service that leverages the Model Context Protocol (MCP) to provide API interfaces for interacting with OpenStack cloud platform resources. It allows users to query compute, storage, network, and image resources from OpenStack.
To use OpenStack MCP Server, you first need to install it via pip:
pip install openstack-mcp-server
Then, start the service by providing your OpenStack API endpoint and credentials:
openstack-mcp-server --port 8000 --log-level INFO --auth-url 'http://<OpenStack-API-Endpoint>:5000/v3' --username '<OpenStack-Admin-User>' --password '<OpenStack-Admin-Password>'
The MCP interface will be available at http://localhost:8000/openstack
. You can then use tools that support the MCP protocol to query OpenStack resources, for example, to get OpenStack VM instances:
{
"name": "get_instances",
"arguments": {
"filter": "web-server",
"limit": 10,
"detail_level": "detailed"
}
}
Q: What is MCP? A: MCP stands for Model Context Protocol, which is a protocol designed to facilitate the interaction between large language models and external tools or services.
Q: What OpenStack resources can I query? A: You can query compute, storage, network, and image resources.
Q: Can I filter the query results? A: Yes, you can filter resources by name, ID, and other conditions.
Q: What are the detail levels for returned information? A: You can choose between basic, detailed, and full information display levels.
Q: How can I add new resource query tools?
A: You can add corresponding resource acquisition functions in src/mcp_openstack_http/server.py
, register the new tool in the list_tools
method, and implement the tool's processing logic in the call_tool
method.
An OpenStack resource query service based on MCP (Model Context Protocol), providing API interfaces to query compute, storage, network, image, and other resources from the OpenStack cloud platform.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ │ │ │ │ │
│ AI Client │───▶│ MCP Server │───▶│ OpenStack │
│ (LLM) │◀───│ (Server) │◀───│ API │
│ │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
pip install openstack-mcp-server
openstack-mcp-server --port 8000 --log-level INFO --auth-url 'http://<OpenStack-API-Endpoint>:5000/v3' --username '<OpenStack-Admin-User>' --password '<OpenStack-Admin-Password>'
After starting, the MCP interface will be available at http://localhost:8000/openstack
.
--port
: Service listening port, default is 8000--log-level
: Log level, options are DEBUG, INFO, WARNING, ERROR, CRITICAL, default is INFO--json-response
: Use JSON response instead of SSE stream, default is FalseThrough the MCP protocol, you can use the following tools to query OpenStack resources:
{
"name": "get_instances",
"arguments": {
"filter": "web-server",
"limit": 10,
"detail_level": "detailed"
}
}
Parameter description:
filter
: Filter condition, such as instance name or ID (optional)limit
: Maximum number of results to return (optional, default 100)detail_level
: Level of detail in the returned information, options are basic, detailed, full (optional, default detailed)# Clone repository
git clone https://github.com/wangshqly0407/openstack-mcp-server.git
cd openstack-mcp-server
# Create virtual environment
uv venv
# Activate virtual environment
source .venv/bin/activate
# Initialize runtime environment
uv sync
# Start streaming HTTP MCP server
uv run ./src/mcp_openstack_http/server.py --port 8000 --log-level INFO --auth-url 'http://<OpenStack-API-Endpoint>:5000/v3' --username '<OpenStack-Admin-User>' --password '<OpenStack-Admin-Password>'
# Method 1: Test using npx
npx -y @modelcontextprotocol/inspector uv run ./src/mcp_openstack_http/server.py --port 8000 --log-level INFO --auth-url 'http://<OpenStack-API-Endpoint>:5000/v3' --username '<OpenStack-Admin-User>' --password '<OpenStack-Admin-Password>'
# Method 2: Test using docker
docker run -it --rm -p 6274:6274 -p 6277:6277 -v $(pwd):/app -w /app node:18 npx -y @modelcontextprotocol/inspector uv run ./src/mcp_openstack_http/server.py --port 8000 --log-level INFO --auth-url 'http://<OpenStack-API-Endpoint>:5000/v3' --username '<OpenStack-Admin-User>' --password '<OpenStack-Admin-Password>'
Access: http://localhost:6274/
src/mcp_openstack_http/server.py
list_tools
methodcall_tool
methodApache 2.0
Please log in to share your review and rating for this MCP.
Discover more MCP servers with similar functionality and use cases
by daytonaio
Provides a secure, elastic sandbox environment for executing AI‑generated code with isolated runtimes and sub‑90 ms provisioning.
by awslabs
Specialized servers that expose AWS capabilities through the Model Context Protocol, allowing AI assistants and other applications to retrieve up‑to‑date AWS documentation, manage infrastructure, query services, and perform workflow automation directly from their context.
by awslabs
AWS MCP Servers allow AI agents to interact with and manage a wide range of AWS services using natural language commands. They enable AI-powered cloud management, automated DevOps, and data-driven insights within the AWS ecosystem.
by cloudflare
Remote Model Context Protocol endpoints that let AI clients read, process, and act on data across Cloudflare services such as Workers, Radar, Observability, and more.
by supabase-community
Enables AI assistants to interact directly with Supabase projects, allowing them to query databases, fetch configuration, manage tables, and perform other project‑level operations.
by Azure
azure-mcp is a server that implements the Model Context Protocol (MCP) to connect AI agents with Azure services. It allows developers to interact with Azure resources like Storage, Cosmos DB, and the Azure CLI using natural language commands within their development environment.
by Flux159
MCP Server for Kubernetes management commands, enabling interaction with Kubernetes clusters to manage pods, deployments, and services.
by strowk
Provides a Golang‑based server that enables interaction with Kubernetes clusters via prompts, allowing listing of contexts, namespaces, resources, nodes, pods, events, logs, and executing commands inside pods.
by jamsocket
Run arbitrary Python code securely in persistent, stateful sandboxes that remain available indefinitely.