使用说明
项目简介
Consul服务助手是一个基于Model Context Protocol (MCP) 构建的服务器,旨在连接大型语言模型 (LLM) 如Claude 和 HashiCorp Consul。通过此服务器,用户可以使用自然语言让LLM理解和分析其微服务架构的健康状况、连接状态以及潜在问题,从而实现更智能的运维分析和故障排查。
主要功能点
- 服务发现与分析: 列出和分析Consul中注册的所有服务,快速了解微服务架构概况。
- 健康检查诊断: 识别并诊断Consul报告的健康检查失败项,辅助用户定位服务故障。
- 服务网格可视化: 生成服务网格架构图,直观展示服务之间的连接关系和健康状态。
- 连接问题检测: 检测服务连接问题,并提供潜在的根本原因和改进建议。
- 智能运维洞察: 利用AI洞察服务负载均衡和资源利用率,为优化微服务架构提供数据支持。
安装步骤
- 克隆仓库
git clone https://github.com/3loka/consul-mcp-server.git cd consul-mcp-server - 安装依赖
npm install - 构建项目
npm run build - 配置环境变量
在项目根目录下创建 '.env' 文件,并根据您的Consul环境配置以下变量:
CONSUL_ADDR=http://localhost:8500 # Consul服务器地址,默认为本地8500端口 PORT=3000 # HTTP服务器端口,默认为3000。如果使用stdio模式可以忽略 USE_HTTP=true # 是否启用HTTP模式,设置为 "true" 启用HTTP模式,留空或删除则为stdio模式。推荐使用stdio模式。
服务器配置
以下配置信息用于配置MCP客户端(如Cursor IDE 或 Claude Desktop),使其能够连接到 Consul服务助手 MCP服务器。
Cursor IDE 配置 (JSON):
{ "name": "consul-assistant", // MCP服务器名称,可自定义 "type": "command", // 服务器类型,固定为 "command" "command": "npx -y consul-mcp-server" // 启动 Consul服务助手 MCP 服务器的命令。请确保您已全局安装或在项目路径下可以通过 npx 找到 'consul-mcp-server' 命令。 }
Claude Desktop 配置 (JSON):
{ "mcpServers": { "consul-assistant": { // MCP服务器名称,可自定义,与Cursor配置中的 name 保持一致 "command": "npx", // 启动命令,通常为 npx 或 node "args": ["-y", "consul-mcp-server"] // 命令参数,固定为 ["-y", "consul-mcp-server"] } } }
注意:
- stdio模式 vs HTTP模式: 此Consul MCP Server 支持 'stdio' 和 'HTTP' 两种传输模式。 推荐使用 'stdio' 模式,因为它更简洁,无需额外配置端口。 如果您选择 'HTTP' 模式,请确保 '.env' 文件中 'USE_HTTP=true',并在MCP客户端配置中指定 'http://localhost:3000' (或您在 '.env' 中设置的端口)。
- 启动命令: 'npx -y consul-mcp-server' 命令假设您已正确安装 Node.js 和 npm,并且可以执行 'npx' 命令。 '-y' 参数是为了在执行 'npx' 时自动确认安装 'consul-mcp-server' 包(如果尚未安装)。
基本使用方法
-
启动 Consul 服务助手 MCP 服务器 在项目根目录下,根据您选择的模式运行以下命令:
-
stdio 模式 (推荐,无需配置 'USE_HTTP=true')
npm start -
HTTP 模式 (需要配置 'USE_HTTP=true')
npm start:http
-
-
配置 MCP 客户端 将上述 服务器配置 JSON 代码添加到您的 MCP 客户端 (Cursor IDE 或 Claude Desktop) 的 MCP 服务器设置中,并启用该服务器。
-
在 MCP 客户端中使用自然语言指令 连接成功后,您可以在 MCP 客户端 (如 Claude) 中使用以下示例指令,与 Consul 服务助手进行交互,分析您的 Consul 环境:
- 'Show me all services registered in Consul' (显示 Consul 中注册的所有服务)
- 'Which services have failing health checks?' (哪些服务有健康检查失败?)
- 'Create a diagram of my service mesh connections' (创建我的服务网格连接图)
- 'Analyze which services are having connectivity issues' (分析哪些服务有连接问题)
- 'What's the overall health of my microservices architecture?' (我的微服务架构的整体健康状况如何?)
- 'Show me services with high error rates in their connections' (显示连接错误率高的服务)
更多可用指令,请参考仓库 'README.md' 中的 "Example Prompts" 和 "Available MCP Actions" 部分。
信息
分类
开发者工具