使用说明
LitmusChaos MCP 服务器
为LitmusChaos 3.x构建的综合模型上下文协议(MCP)服务器,采用Go语言编写,使像Claude这样的AI助手能够与您的混沌工程平台进行交互。该服务器提供了一个完整的接口,通过自然语言交互来管理混沌实验、基础设施、环境以及韧性探测。
特点/特性
🧪 表示“实验”或“化学实验”的意思。 混沌实验管理
- 列出并描述混沌实验
- 按需或按计划执行实验
- 停止进行具有精细控制的实验运行
🏗️(建筑工地或正在建设的场景) 基础设施运营
- 列出并获取混沌基础设施详情(原称代理/混沌代表)
- 监控基础设施的健康状况和状态
- 生成安装清单
- 支持命名空间和集群范围的部署
🌍(地球) 环境组织
- 创建和管理环境(生产环境/非生产环境)
- 按环境组织基础设施
- 基于环境的过滤和操作
📊(表格) 实验执行跟踪
- 详细的实验运行历史和状态
- 实时执行监控
- 故障级别的成功/失败追踪
- 韧性得分计算
🔍(放大镜图标,通常表示搜索、查看细节或调查的意思) 韧性探测器
- HTTP、命令、Kubernetes 和 Prometheus 探针
- 即插即用探针架构
- 混沌状态下的稳态验证
📚 书籍 ChaosHub 集成
- 浏览可用的混沌故障
- 支持多个中心(Git 和远程)
- 故障分类与发现
📈 表示“上扬的折线图”,常用于描述数据或趋势的上升情况。 统计与分析
- 综合实验与基础设施统计
- 韧性得分分布
- 运行状态细分
先决条件
- Go 1.21或更高版本
- 访问LitmusChaos 3.x混沌中心
- 有效的项目凭据
安装
来自来源
# Clone the repository
git clone https://github.com/yourusername/litmuschaos-mcp-server.git
cd litmuschaos-mcp-server
# Build the binary
make build
# Or install directly
make install
使用 Go 安装
go install github.com/yourusername/litmuschaos-mcp-server@latest
使用 Docker
# Build the Docker image
make docker-build
# Run with Docker
docker run --rm -it \
-e CHAOS_CENTER_ENDPOINT=http://your-chaos-center:8080 \
-e LITMUS_PROJECT_ID=your-project-id \
-e LITMUS_ACCESS_TOKEN=your-token \
litmuschaos-mcp-server:latest
配置
环境变量
# Required Configuration
export CHAOS_CENTER_ENDPOINT=http://your-chaos-center:8080
export LITMUS_PROJECT_ID=your-project-id
export LITMUS_ACCESS_TOKEN=your-access-token
# Optional Defaults
export DEFAULT_INFRA_ID=your-default-infrastructure-id
export DEFAULT_ENVIRONMENT_ID=production
获取您的认证信息
- **混沌中心终端(或“混沌中心端点”)**LitmusChaos 安装的 URL
- 项目编号在您的Chaos Center项目设置中找到
- 访问令牌从混沌中心生成 → 设置 → 访问令牌
用法
使用 Claude Desktop
在您的Claude Desktop MCP配置中添加:
{
"mcpServers": {
"litmuschaos": {
"command": "/path/to/litmuschaos-mcp-server",
"env": {
"CHAOS_CENTER_ENDPOINT": "http://localhost:8080",
"LITMUS_PROJECT_ID": "your-project-id",
"LITMUS_ACCESS_TOKEN": "your-token"
}
}
}
}
独立使用
# Using environment variables
./bin/litmuschaos-mcp-server
# Or with make
make run
发展
设置开发环境
# Clone and setup
git clone https://github.com/yourusername/litmuschaos-mcp-server.git
cd litmuschaos-mcp-server
# Install dependencies
make deps
# Run with hot reload (requires air)
make dev
开发命令
# Build the project
make build
# Run tests
make test
# Run tests with coverage
make test-coverage
# Format code
make fmt
# Run linter
make lint
# Run all checks
make check
# Clean build artifacts
make clean
# Build for all platforms
make build-all
项目结构
.
├── main.go # Main server implementation
├── handlers.go # Tool implementation handlers (part 1)
├── go.mod # Go module definition
├── go.sum # Go module checksums
├── Makefile # Build automation
├── Dockerfile # Container build
├── .air.toml # Development hot reload config
├── .golangci.yml # Linter configuration
├── bin/ # Binary output directory
└── tmp/ # Development temporary files
可用工具
该服务器为混沌工程操作提供了17种全面工具:
实验管理
list_chaos_experiments- 列出所有混沌实验,并应用过滤条件get_chaos_experiment- 获取详细的实验信息run_chaos_experiment- 立即执行实验stop_chaos_experiment- 停止运行实验
执行监控
list_experiment_runs- 列出实验执行历史记录get_experiment_run_details- 获取带有日志的详细运行信息
基础设施管理
list_chaos_infrastructures- 列出所有已注册的基础设施get_infrastructure_details- 获取详细的基础设施信息register_chaos_infrastructure- 注册新的Kubernetes基础设施
环境组织
list_environments- 列出所有环境create_environment- 为组织创建新的环境
韧性验证
list_resilience_probes- 列出所有已配置的弹性探测器create_resilience_probe- 创建HTTP、CMD、K8s或Prometheus探测器
发现与分析
list_chaos_hubs- 列出可用的ChaosHubsget_chaos_faults- 浏览可用的混沌故障get_experiment_statistics- 获取全面的平台统计数据
示例交互
创建一个混沌实验
"Create a pod deletion experiment named 'payment-service-chaos' targeting the payment-service pods in production, with a 30-second duration and a weight of 8"
监测实验
"Show me the status of all running chaos experiments and their resiliency scores"
基础设施管理
"List all active chaos infrastructures in the production environment"
韧性验证
"Create an HTTP probe that checks if the payment API is responding with 200 status every 5 seconds"
性能与优化
Go语言的实现提供了多项性能优势:
- 快速启动二进制在毫秒内启动
- 内存使用量低最小的运行时开销
- 并发操作高效处理多个GraphQL请求
- 静态二进制文件单个可执行文件,无依赖项
- 跨平台适用于Linux、macOS和Windows的原生二进制文件
建筑学
关键组件
- **LitmusChaosServer 翻译为中文是“Litmus混沌服务器”**主服务器结构处理MCP协议
- GraphQL 客户端与混沌中心API的直接通信
- 工具处理程序针对每种混沌工程操作的独立处理程序
- 错误处理全面的错误管理和用户反馈
- JSON处理高性能的JSON序列化/反序列化
故障排除
常见问题
连接失败
# Verify Chaos Center is accessible
curl -f http://your-chaos-center:8080/health
# Check environment variables
echo $CHAOS_CENTER_ENDPOINT
echo $LITMUS_PROJECT_ID
构建问题
# Update dependencies
make tidy
# Verify Go version
go version
# Clean and rebuild
make clean build
运行时错误
# Check logs for detailed error information
./bin/litmuschaos-mcp-server 2>&1 | tee debug.log
# Verify GraphQL connectivity
curl -X POST http://your-chaos-center:8080/query \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LITMUS_ACCESS_TOKEN" \
-d '{"query":"query { __typename }"}'
做出贡献
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支(
git checkout -b feature/amazing-feature) - 按照Go语言的最佳实践进行更改
- 为新功能添加测试
- 运行检查(
make check) - 提交您的更改(
git commit -am 'Add amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 提交一个拉取请求
开发指南
- 遵循Go的最佳实践和惯用法
- 添加全面的错误处理
- 为新功能编写单元测试
- 保持向后兼容性
- 更新API变更的文档
- 使用有意义的提交信息
