Ceph MCP Server是一个模型上下文协议(MCP)服务器,它使AI助手能够通过自然语言与Ceph存储集群进行交互。该服务器在AI工具和Ceph基础设施之间架起了一座桥梁,让存储管理变得更加便捷和直观。
uv run python -m ceph_mcp.server
服务器会记录其启动情况和任何连接问题。请留意指示已成功连接到Ceph集群的消息。
# 创建项目目录
mkdir ceph-mcp-server
cd ceph-mcp-server
# 初始化UV项目
uv init --python 3.11
# 添加依赖项
uv add mcp httpx pydantic python-dotenv structlog asyncio-mqtt
uv add --dev pytest pytest-asyncio black isort mypy ruff
# 复制示例环境文件
cp .env.example .env
# 使用Ceph集群详细信息编辑.env文件
nano .env
# .env文件内容
CEPH_MANAGER_URL=https://192.16.0.31:8443
CEPH_USERNAME=admin
CEPH_PASSWORD=your_ceph_password
CEPH_SSL_VERIFY=false # 在生产环境中使用适当的证书时设置为true
| 属性 | 详情 |
|---|---|
CEPH_MANAGER_URL |
Ceph管理器API端点,默认值为https://192.16.0.31:8443,必需 |
CEPH_USERNAME |
用于API访问的Ceph用户名,默认值为admin,必需 |
CEPH_PASSWORD |
用于身份验证的Ceph密码,必需 |
CEPH_SSL_VERIFY |
启用SSL证书验证,默认值为true,非必需 |
CEPH_CERT_PATH |
自定义SSL证书的路径,非必需 |
LOG_LEVEL |
日志记录级别(DEBUG、INFO、WARNING、ERROR),默认值为INFO,非必需 |
MAX_REQUESTS_PER_MINUTE |
API请求的速率限制,默认值为60,非必需 |
CEPH_SSL_VERIFY=true)MCP服务器为AI助手提供了四个主要工具:
get_cluster_health获取全面的集群健康状态,包括总体健康状况、警告信息和统计数据。
使用场景:
get_host_status检索集群中所有主机的信息,包括在线/离线状态和服务分布。
使用场景:
get_health_details获取详细的健康检查信息,以排查特定问题。
使用场景:
get_host_details获取特定主机的全面信息。
参数:
hostname:要检查的主机名称使用场景:
AI助手:“我的Ceph集群状态如何?”
响应:✅ 集群运行状况良好。所有3台主机均在线。OSD:12/12正常运行。
🟢 总体状态:HEALTH_OK
🖥️ 主机:3/3在线
💾 OSD:12/12正常运行
AI助手:“我的集群有哪些警告信息?”
响应:🟡 集群有2个需要关注的警告信息。
🟡 需要关注的警告信息:
- OSD_NEARFULL:1个OSD即将满负荷
- POOL_BACKFILLFULL:1个存储池回填已满
# 运行所有测试
uv run pytest
# 运行带覆盖率的测试
uv run pytest --cov=ceph_mcp
# 运行特定类型的测试
uv run pytest -m "not integration" # 跳过集成测试
# 格式化代码
uv run black src/ tests/
uv run isort src/ tests/
# 代码检查
uv run ruff check src/ tests/
uv run mypy src/
# 所有检查
uv run ruff check src/ tests/ && uv run mypy src/ && uv run pytest
ceph-mcp-server/
├── src/ceph_mcp/
│ ├── __init__.py # 包初始化
│ ├── server.py # 主MCP服务器
│ ├── api/
│ │ └── ceph_client.py # Ceph API客户端
│ ├── config/
│ │ └── settings.py # 配置管理
│ ├── handlers/
│ │ └── health_handlers.py # 请求处理程序
│ ├── models/
│ │ └── ceph_models.py # 数据模型
│ └── utils/ # 实用函数
├── tests/ # 测试套件
├── .env.example # 环境模板
├── pyproject.toml # 项目配置
└── README.md # 本文件
连接被拒绝
身份验证失败
SSL证书错误
CEPH_SSL_VERIFY设置为falseCEPH_CERT_PATH权限被拒绝
ceph auth get client.your-username启用调试日志记录以获取更详细的信息:
LOG_LEVEL=DEBUG uv run python -m ceph_mcp.server
git checkout -b feature-nameuv run pytestuv run black src/ tests/本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。