使用说明
OpenStack MCP服务器
概述
一种基于MCP(模型上下文协议)的OpenStack资源查询服务,提供API接口,从OpenStack云平台查询计算、存储、网络、图像和其他资源。
特性
- 实时资源查询:通过API获取OpenStack集群的最新资源状态
- 多维信息:支持查询各种资源,包括计算、存储、网络和图像
- 灵活过滤:按名称、ID和其他条件筛选资源
- 细节级别控制:支持基本、详细和完整的信息显示级别
- 标准MCP接口:与MCP协议完全兼容,与大型语言模型无缝集成
技术架构
- 基于Starlette和Uvicorn的高性能异步HTTP服务
- 使用OpenStack SDK与OpenStack API交互
- 通过MCP协议为大型语言模型提供结构化的OpenStack资源信息
- 支持SSE流式输出,实时反馈
架构图
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ │ │ │ │ │
│ AI Client │───▶│ MCP Server │───▶│ OpenStack │
│ (LLM) │◀───│ (Server) │◀───│ API │
│ │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
安装
需求
- Python 3.10+
- OpenStack环境
通过pip安装
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>'
启动后,MCP接口将在以下位置可用 http://localhost:8000/openstack.
参数
--port:服务监听端口,默认为8000--log-level:日志级别,选项有调试、信息、警告、错误、关键,默认为信息--json-response:使用JSON响应而不是SSE流,默认值为False
接口示例
通过MCP协议,您可以使用以下工具查询OpenStack资源:
获取OpenStack虚拟机实例
{
"name": "get_instances",
"arguments": {
"filter": "web-server",
"limit": 10,
"detail_level": "detailed"
}
}
参数说明:
filter:筛选条件,如实例名称或ID(可选)limit:要返回的最大结果数(可选,默认为100)detail_level:返回信息的详细程度,选项有基本、详细、完整(可选,默认详细)
从源代码安装
# 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>'
访问权限:http://localhost:6274/
开发扩展
添加新的资源查询工具
- 在中添加相应的资源获取功能
src/mcp_openstack_http/server.py - 在中注册新工具
list_tools方法 - 在中实现工具的处理逻辑
call_tool方法
许可证
Apache 2.0
