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:
Get OpenStack VM Instances{ "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/
Adding New Resource Query Toolssrc/mcp_openstack_http/server.py
list_tools
methodcall_tool
methodApache 2.0
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4