关于 Consul MCP Server
Consul MCP Server 将 Consul 服务发现和服务网格信息提供给 AI Agent,用于微服务架构分析与排障。它可检查健康状态、连接和指标,并生成服务关系图。
主要功能
- 01列出并分析已注册服务
- 02检查健康检查及故障项
- 03查看服务连接和状态
- 04生成 Mermaid 服务关系图
- 05分析服务问题并查看指标
适用场景
- 01排查微服务健康检查失败
- 02定位服务间连接问题
- 03绘制服务网格关系图
- 04检查服务指标与资源利用情况
MCP 相关
该 MCP 服务向客户端提供 Consul 服务列表、健康检查、连接、图表生成、服务分析和指标等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Consul MCP Server
用于与 HashiCorp Consul 服务发现和服务网格交互的 Model Control Protocol(MCP)服务。此实现遵循 Anthropic 的 MCP 规范,可让 Claude 通过自然语言交互分析微服务架构、创建图表、识别问题并提供建议。
什么是 Model Control Protocol?
Model Control Protocol(MCP) 是由 Anthropic 开发的一项规范,可让 Claude 等 AI 模型与外部工具和 API 交互。此实现将 AI Agent 连接到你的 Consul 基础架构,让你能够使用自然语言管理和分析服务。
功能
- 列出并分析在 Consul 中注册的服务
- 识别并诊断未通过的健康检查
- 生成服务网格架构图
- 检测服务连接问题并提供建议
- 获取有关服务负载均衡和资源利用率的 AI 洞察
要求
- Node.js 18+
- npm 或 yarn
- 正在运行的 Consul 实例(本地或远程)
- 集成了 Claude 的 Claude Desktop 或 Cursor IDE
安装
# Clone the repository
git clone https://github.com/3loka/consul-mcp-server.git
cd consul-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
配置
在根目录中创建 .env 文件,并添加以下变量:
CONSUL_HTTP_ADDR=http://localhost:8500
CONSUL_HTTP_TOKEN=your-consul-token
PORT=3000
USE_HTTP=true
CONSUL_HTTP_ADDR:Consul 服务的地址CONSUL_HTTP_TOKEN:Consul 服务的 ACL 令牌PORT:HTTP 服务的端口USE_HTTP:设置为 "true" 以使用 HTTP 模式;使用 stdio 模式时省略
安装
在 Cursor 中安装
要在 Cursor 中安装并使用此 MCP 服务:
-
在 Cursor 中,打开设置(⌘+,)并切换到“MCP”选项卡。
-
点击“+ Add new MCP server”。
-
输入以下内容:
- 名称:consul-assistant
- 类型:command
- 命令:npx -y consul-mcp-server
-
点击“Add”,然后向下滚动到该服务,点击“Disabled”以启用服务。
-
如有需要,重启 Cursor,确保 MCP 服务已正确加载。
在 Claude Desktop 中安装
要在 Claude Desktop 中安装并使用此 MCP 服务:
-
在 Claude Desktop 中,打开设置(⌘+,)并切换到“Developer”选项卡。
-
点击窗口底部的“Edit Config”。
-
编辑文件(
~/Library/Application Support/Claude/claude_desktop_config.json),添加以下代码,然后保存文件。
{
"mcpServers": {
"consul-assistant": {
"command": "npx",
"args": ["-y", "consul-mcp-server"]
}
}
}
如果服务不在本地主机上,或已启用 ACL,请改用以下配置
{
"mcpServers": {
"consul-assistant": {
"command": "npx",
"args": ["-y", "consul-mcp-server"],
"env": {
"CONSUL_HTTP_ADDR": "http://<host/ip>:8500",
"CONSUL_HTTP_TOKEN": "<ACL Token>"
}
}
}
}
- 重启 Claude Desktop,确保 MCP 服务已正确加载。
示例提示词
连接后,尝试在 Claude 中使用以下提示词:
- “显示在 Consul 中注册的所有服务”
- “哪些服务的健康检查未通过?”
- “为我的服务网格连接创建图表”
- “分析哪些服务存在连接问题”
- “我的微服务架构整体健康状况如何?”
- “显示连接错误率较高的服务”
可用的 MCP 操作
此服务实现了以下 MCP 操作:
| 操作 | 描述 |
|---|---|
consul/get_services | 获取 Consul 中所有服务的列表 |
consul/get_health_checks | 获取健康检查,可按需筛选未通过的检查 |
consul/get_service_connections | 获取服务连接及其状态 |
consul/create_service_diagram | 创建服务关系的 Mermaid 图 |
consul/analyze_service | 分析特定服务以识别问题 |
consul/get_service_metrics | 获取特定服务的详细指标 |
运行演示环境
出于测试目的,你可以设置一个本地演示环境,其中多个微服务已在 Consul 中注册:
# Run the setup script (requires Docker and Docker Compose)
chmod +x ./demo/setup-demo.sh
./demo/setup-demo.sh
这将启动:
- 一个 Consul 服务器
- 多个演示微服务
- 在 Consul 中注册这些服务
- 设置一些服务网格连接和运行状况检查
演示指南
-
启动演示环境:
./scripts/setup-demo.sh -
启动 MCP 服务:
npm start -
将 Claude Desktop 或 Cursor 连接到你的 MCP 服务
-
尝试以下演示场景:
a. 获取服务概览:
Show me all the services registered in my Consul instance.b. 检查是否存在失败的运行状况检查:
Are any services experiencing health issues? What might be causing them?c. 创建服务网格图:
Create a diagram showing the connections between my services.d. 分析连接问题:
Which services are having trouble connecting to each other?e. 获取建议:
Based on my service mesh setup, what improvements would you recommend?
开发
项目结构
src/index.ts:主入口点src/resources/:Consul API 交互代码src/tools/:辅助功能,例如图表生成src/server/:MCP 服务组件src/mcp/:MCP 操作定义和处理程序src/prompts/:AI 交互的模板管理src/tests/:测试套件
运行测试
npm test
构建
npm run build
贡献
欢迎贡献!请随时提交拉取请求。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。