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
Reviews feature coming soon
Stay tuned for community discussions and feedback