mcpField
M
mcp-croit-ceph

mcp-croit-ceph

本地服务
github.com/croit文件与存储16 周前更新

关于 mcp-croit-ceph

mcp-croit-ceph 将 AI 助手连接到 Croit Ceph 集群,用于管理、监控和故障排查。它根据集群的 OpenAPI 规范发现工具,并通过字段选择和摘要优化大型响应。

主要功能

  1. 01发现 API 端点并生成分类工具
  2. 02管理 Ceph 服务、存储池和服务器
  3. 03搜索日志并检测模式或异常
  4. 04筛选字段并摘要大型响应
  5. 05依据令牌角色执行访问控制

适用场景

  1. 01检查集群健康状况并找出有错误的存储池
  2. 02在集群日志中查找 OSD 故障
  3. 03查看存储池用量以规划容量

MCP 相关

MCP 服务向 MCP 客户端开放 Croit Ceph REST API 操作和日志搜索工具。它根据 OpenAPI 发现端点,并按 API 令牌角色应用权限。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"croit-mcp-croit-ceph": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CROIT_HOST",
"-e",
"CROIT_API_TOKEN",
"docker.io/croit/mcp-croit-ceph:0.2.16"
],
"env": {
"CROIT_HOST": "<CROIT_HOST>",
"CROIT_API_TOKEN": "<CROIT_API_TOKEN>"
}
}
}
}
启动命令docker run -i --rm -e CROIT_HOST -e CROIT_API_TOKEN docker.io/croit/mcp-croit-ceph:0.2.16
需要配置的环境变量
CROIT_HOSTCroit cluster URL (e.g., http://your-cluster.croit.io:8080)
CROIT_API_TOKEN密钥API authentication token for Croit cluster

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocidocker.io/croit/mcp-croit-ceph:0.2.16

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Croit Ceph

通过 Model Context Protocol(MCP)对 Croit Ceph 集群进行 AI 驱动的管理

将 AI 助手(如 Claude)直接连接到 Croit Ceph 集群,实现智能集群管理、故障排查和监控。

这是什么?

一个 MCP 服务,可让 AI 助手访问 Croit Ceph 集群的 REST API。你可以向 AI 提问:

  • “显示所有出现错误的存储池”
  • “列出服务器 node-5 上的所有 OSD”
  • “搜索过去一小时内的慢请求日志”
  • “集群的运行状况是什么?”

然后,AI 就可以通过自然语言与你的集群交互。

主要功能

🚀 智能且高效
  • 自动优化 token - 优化响应,将 AI token 成本降低 80-95%
  • 字段选择 - 只请求所需数据(例如,仅请求 id + name)
  • 内置筛选 - 无需多次调用 API,即可进行类似 grep 的搜索
  • 智能摘要 - 为大型数据集生成智能摘要,并支持进一步查询
🔍 高级日志搜索
  • 原生集成 VictoriaLogs,提供强大的日志分析能力
  • 自然语言查询:“查找过去 24 小时内 OSD 故障”
  • 检测模式并识别异常
  • 为常见问题预置调试模板
🛡️ 可用于生产环境
  • 基于角色的访问控制(ADMIN 与 VIEWER)
  • 自动从集群发现 API
  • 支持 Docker,并附带 OpenAPI 规范
  • 全面的错误处理

快速开始

使用 Docker(推荐)
docker run --rm -i \
  -e CROIT_HOST="https://your-cluster.com" \
  -e CROIT_API_TOKEN="your-api-token" \
  croit/mcp-croit-ceph:latest
搭配 Claude Desktop 使用

添加到 ~/.config/claude/claude_desktop_config.json:

基本配置(启动时获取 OpenAPI 规范):

{
  "mcpServers": {
    "croit-ceph": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "CROIT_HOST=http://your-cluster.croit.io:8080",
        "-e", "CROIT_API_TOKEN=your-api-token-here",
        "croit/mcp-croit-ceph:latest"
      ]
    }
  }
}

优化配置(推荐 - 启动时间从 5s 缩短至 2s):

{
  "mcpServers": {
    "croit-ceph": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "/absolute/path/to/openapi.json:/config/openapi.json:ro",
        "-e", "CROIT_HOST=http://your-cluster.croit.io:8080",
        "-e", "CROIT_API_TOKEN=your-api-token-here",
        "-e", "OPENAPI_FILE=/config/openapi.json",
        "croit/mcp-croit-ceph:latest"
      ]
    }
  }
}

启用调试日志:

{
  "mcpServers": {
    "croit-ceph": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "CROIT_HOST=http://your-cluster.croit.io:8080",
        "-e", "CROIT_API_TOKEN=your-api-token-here",
        "-e", "LOG_LEVEL=DEBUG",
        "croit/mcp-croit-ceph:latest"
      ]
    }
  }
}

注意: 卷挂载需要使用绝对路径(不能使用 ~/)。下载 OpenAPI 规范:

curl -H "Authorization: Bearer YOUR_TOKEN" \
     http://your-cluster.croit.io:8080/api/swagger.json > openapi.json

更改配置后,请重启 Claude Desktop。

配置

必需的环境变量
CROIT_HOST="https://your-cluster.com"      # Your Croit cluster URL
CROIT_API_TOKEN="your-api-token"           # API token from Croit
可选的环境变量
# Use local OpenAPI spec for faster startup (2s vs 5s)
OPENAPI_FILE="/config/openapi.json"

# Use bundled spec (no external fetch, for offline/dev)
USE_INCLUDED_API_SPEC="true"

# Logging verbosity: DEBUG, INFO, WARNING, ERROR
LOG_LEVEL="INFO"

# Pass additional CLI arguments
MCP_ARGS="--no-permission-check --max-category-tools 5"

Docker 用法模板请参阅 .env.example。

获取 API Token
  1. 登录 Croit 集群的 Web 界面
  2. 前往 Settings → API Tokens
  3. 创建具有适当权限的新 token
  4. 复制 token 并在配置中使用

AI 对话示例

检查集群运行状况:

You: "What's the current cluster status?"
AI: Calls list_endpoints → Finds status endpoint → Returns health summary

查找问题:

You: "Show me all pools with errors"
AI: Calls /pools with fields=["id","name","status"] and filter for errors
    Returns only the 3 pools with issues (instead of all 100 pools)

调试问题:

You: "Search logs for OSD failures in the last hour"
AI: Uses croit_log_search with smart query parsing
    Returns summary + drill-down capability for details

容量规划:

You: "Which pools are over 80% full?"
AI: Gets pools → Filters by usage → Returns list with recommendations

功能详解

Token 优化

该服务会自动减少 AI token 消耗:

未优化优化后节省
100 个存储池,所有字段 → 4,000 个 token100 个存储池,id+name → 300 个 token92%
500 个 OSD,完整数据 → 15,000 个 token智能摘要 → 1,000 个 token93%

工作原理:

  1. 字段选择:只请求所需字段
  2. 智能摘要:为大型数据集生成摘要,并支持进一步查询
  3. 缓存:重复请求使用缓存数据
  4. 自动限制:合理的默认值可防止 token 数量激增
可用工具

AI 可以使用以下工具:

核心工具:

  • list_endpoints - 发现可用的 API 端点
  • call_endpoint - 优化 API 调用
  • search_last_result - 深入查询大型响应

分类工具(自动生成):

  • manage_services - Ceph 服务
  • manage_pools - 存储池
  • manage_servers - 集群服务器
  • manage_s3 - S3 存储桶
  • 以及更多……

日志搜索:

  • croit_log_search - 高级日志分析
  • croit_log_check - 快速检查日志条件

高级用法

本地开发
# Clone repository
git clone https://github.com/croit/mcp-croit-ceph.git
cd mcp-croit-ceph

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run directly
export CROIT_HOST="https://your-cluster.com"
export CROIT_API_TOKEN="your-token"
python mcp-croit-ceph.py
使用本地 OpenAPI 规范

适用于更快启动或离线开发:

# Download spec from your cluster
curl -H "Authorization: Bearer $CROIT_API_TOKEN" \
     https://your-cluster/api/swagger.json > openapi.json

# Use local spec
python mcp-croit-ceph.py --openapi-file openapi.json
命令行选项
python mcp-croit-ceph.py \
  --openapi-file openapi.json \      # Use local OpenAPI spec
  --no-permission-check \            # Skip role check (faster)
  --max-category-tools 5             # Limit category tools

权限与安全

服务器会遵循 API 令牌的角色:

  • ADMIN:可完全访问所有操作
  • VIEWER:只读访问(无法创建、删除或更新)
  • 无效令牌:服务器退出并报错

仅管理员可访问的类别:maintenance、servers、config、hooks

故障排除

令牌无法使用:

  • 在 Croit Web 界面中验证令牌
  • 检查令牌是否已过期
  • 确保令牌具有正确的权限

连接问题:

  • 确认 CROIT_HOST 正确(包含 https://)
  • 检查与集群的网络连接
  • 确认防火墙允许连接

未显示工具:

  • 检查 Docker 日志中是否有错误
  • 确认 OpenAPI 规范有效
  • 尝试使用 --no-permission-check 进行测试

启用调试日志:

export LOG_LEVEL=DEBUG
python mcp-croit-ceph.py

文档

贡献

欢迎贡献!请:

  1. Fork 仓库
  2. 创建功能分支
  3. 进行修改
  4. 对 Python 文件运行 black 格式化工具
  5. 提交 pull request

许可证

详情请参阅 LICENSE

支持


为 Ceph 社区倾心打造 ❤️

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。