Token导航 LogoToken导航TokenDH.com
Consul MCP (Weizhenqian) logo
AI代理stdio官方级别未说明来源级核验

Consul MCP (Weizhenqian)

MCP Server

一个用于与HashiCorp Consul交互的模型上下文协议(MCP)服务器,支持AI助手和其他MCP客户端通过标准化协议接口管理Consul服务、键值存储和集群信息。

工具数

19

提示词数

0

GitHub Stars

1

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

weizhenqian

提供方

weizhenqian

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

领事MCP服务器

用于与HashiCorp Consul交互的模型上下文协议(MCP)服务器。该服务器使AI助手和其他MCP客户端能够通过标准化的协议接口管理Consul服务、键值存储和集群信息。

特性

  • MCP协议支持:使用SSE(服务器发送事件)传输完全实现模型上下文协议
  • 服务管理:注册、注销和查询Consul服务
  • 键值存储:对Consul KV存储进行读取、写入、列出和删除操作
  • 集群信息:查询节点和服务运行状况
  • 服务元数据和标签:管理服务实例元数据和标签
  • Docker支持:使用Docker Compose轻松部署
  • 健康检查:用于监控的内置健康检查端点

需求

  • Python 3.11+
  • HashiCorp Consul(本地或远程实例)
  • Docker和Docker Compose(可选,用于容器化部署)

安装

使用Docker Compose(推荐)

最简单的入门方法是使用Docker Compose,它将启动Consul和MCP服务器:

docker-compose up -d

这将:

  • 在端口8500上以开发模式启动Consul实例
  • 在端口8080上启动Consul MCP服务器
  • 配置容器之间的网络

手动安装

  1. 克隆存储库:
git clone 
cd consul-mcp
  1. 安装依赖项:
pip install -r requirements.txt
  1. 设置环境变量(可选):
export CONSUL_HOST=localhost
export CONSUL_PORT=8500
export CONSUL_TOKEN=your-token  # Optional
export CONSUL_DC=dc1  # Optional
export PORT=8080
export HOST=0.0.0.0
export LOG_LEVEL=INFO
  1. 运行服务器:
python server.py

配置

可以使用环境变量配置服务器:

Consul配置

  • CONSUL_HOST:领事主机地址(默认值: localhost)
  • CONSUL_PORT:领事端口(默认值: 8500)
  • CONSUL_TOKEN:领事ACL令牌(可选)
  • CONSUL_DC:领事数据中心(可选)

服务器配置

  • HOST:服务器绑定地址(默认值: 0.0.0.0)
  • PORT:服务器端口(默认值: 8080)
  • SSE_ENDPOINT:SSE端点路径(默认值: /sse)
  • MESSAGES_ENDPOINT:消息端点路径(默认值: /messages)
  • HEALTH_ENDPOINT:健康检查终结点路径(默认值: /health)

日志记录配置

  • LOG_LEVEL:日志记录级别(默认值: INFO)
  • LOG_FILE_ENABLE:启用文件日志记录(默认值: false)
  • LOG_FILE:日志文件路径(可选)

API终点

健康检查

GET /health

返回服务器和Consul连接的运行状况。

答复:

{
  "status": "healthy",
  "consul": "connected"
}

SSE端点

GET /sse

MCP协议通信的服务器发送事件端点。

消息端点

POST /messages

用于向MCP服务器发送消息的端点。

MCP工具

服务器为Consul操作提供以下MCP工具:

服务管理

  • list_services:列出在Consul中注册的所有服务
  • get_service:获取特定服务的详细信息
  • get_service_instance_count:仅获取一个服务的实例计数(轻量级,用于统计)
  • get_monitoring_summary:获取监控统计信息:每个服务实例的计数和总计,不包括完整的实例数据。 使用它来计数监视条目(例如普罗米修斯发现),以避免上下文溢出。
  • register_service:在Consul中注册新服务
  • deregister_service:从领事处注销服务
  • get_service_health:获取服务的健康状态

服务元数据和标签

  • get_service_meta:获取服务实例的所有元数据
  • set_service_meta_key:为服务实例设置或更新一个元数据密钥
  • set_service_meta_bulk:为服务实例设置或更新多个元数据键
  • delete_service_meta_key:删除服务实例的一个元数据密钥
  • list_service_meta_keys:列出服务实例的所有元数据键
  • get_service_tags:获取服务实例的标签
  • set_service_tags:覆盖服务实例的标签

键值存储

  • get_kv:从Consul KV存储中获取键值对
  • put_kv:在Consul KV存储中存储键值对
  • list_kv:列出Consul KV存储中的所有密钥(可选带前缀)
  • delete_kv:从Consul KV存储中删除密钥

集群信息

  • get_nodes:获取Consul集群中的节点列表

MCP资源

服务器提供MCP资源用于访问Consul数据。看 mcp_resources.py 对于可用资源。

MCP提示

服务器为常见的Consul操作提供MCP提示:

  • service_discovery:发现并列出服务(可选数据中心)。
  • service_health_check:检查服务的运行状况(service_name,可选数据中心)。
  • monitoring_summary:获取监控统计数据(每个服务实例的计数和总数)。用于在不加载完整实例列表的情况下计数监视条目。
  • monitoring_agent_instructions:获取监控AI代理的系统说明(如何使用摘要工具避免上下文溢出)。

有关配置监视AI代理的复制粘贴提示,请参阅 prompts/monitoring_agent_instructions.md.

使用示例

与MCP客户端一起使用

使用MCP兼容客户端连接到服务器:

# Example MCP client connection
from mcp import ClientSession, StdioServerParameters
from mcp.client.sse import sse_client

# Connect via SSE
async with sse_client("http://localhost:8080/sse") as (read, write):
    async with ClientSession(read, write) as session:
        # List available tools
        tools = await session.list_tools()
        print(f"Available tools: {[t.name for t in tools.tools]}")
        
        # Call a tool
        result = await session.call_tool("list_services", {})
        print(result)

直接HTTP使用

您还可以通过HTTP直接与服务器交互:

# Health check
curl http://localhost:8080/health

# List services (via MCP protocol)
curl -X POST http://localhost:8080/messages \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'

发展

项目结构

consul-mcp/
├── server.py              # Main server application
├── config.py              # Configuration management
├── consul_client.py       # Consul client wrapper
├── mcp_tools.py           # MCP tools definitions
├── mcp_resources.py       # MCP resources definitions
├── mcp_prompts.py         # MCP prompts definitions
├── sse_handler.py         # SSE transport handler
├── logging_config.py      # Logging configuration
├── requirements.txt       # Python dependencies
├── Dockerfile            # Docker image definition
└── docker-compose.yml    # Docker Compose configuration

运行测试

# Run health check
curl http://localhost:8080/health

构建Docker镜像

docker build -t consul-mcp-server .

故障排除

连接问题

如果服务器无法连接到Consul:

  1. 验证Consul是否正在运行:
curl http://localhost:8500/v1/status/leader
  1. 检查环境变量:
echo $CONSUL_HOST
echo $CONSUL_PORT
  1. 检查服务器日志中的连接错误

苏格兰和南方能源公司运输问题

如果SSE传输不可用:

  • 确保 mcp 安装了软件包版本>=1.0.0
  • 检查一下 sse-starlette 已安装
  • 检查服务器日志中的传输初始化错误

许可证

\[在此处添加您的许可证\]

贡献

\[在此处添加贡献指南\]

致谢

目录标签

目录标签

PythonAI代理工作流自动化Consul管理本地部署MCP协议服务发现键值存储集群监控

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

19

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP