
HAProxy MCP Server

2025.04.22
0
Go负载均衡服务器管理其它
HAProxy MCP Server 是一个基于 Go 语言实现的 Model Context Protocol (MCP) 服务器,用于通过 MCP 协议与 HAProxy 的运行时 API 进行交互。它允许大型语言模型(LLMs)通过自然语言接口执行 HAProxy 管理任务,监控服务器状态,管理后端服务器以及分析流量模式。
View on GitHub
Overview
基本能力
产品定位
HAProxy MCP Server 是一个中间件服务,旨在通过标准化的 MCP 协议为 HAProxy 提供高级管理和监控功能,特别适用于需要自动化管理和与 LLMs 集成的场景。
核心功能
- 全功能 HAProxy 运行时 API 支持:覆盖 HAProxy 的所有运行时 API 命令。
- 上下文感知操作:支持超时和取消处理。
- 统计页面集成:支持 HAProxy 的基于 Web 的统计页面,提供增强的指标和可视化。
- 安全认证:支持与 HAProxy 运行时 API 的安全连接。
- 多种传输选项:支持 stdio 和 HTTP 传输,适应不同环境。
- 企业级支持:专为生产环境设计。
- Docker 支持:提供预构建的 Docker 镜像,便于部署。
适用场景
- 自动化管理:通过 LLMs 自动化执行 HAProxy 管理任务。
- 实时监控:监控 HAProxy 服务器状态和流量模式。
- 动态配置:动态管理后端服务器和健康检查。
- 安全审计:通过安全连接进行 HAProxy 配置和状态审计。
工具列表
- 统计与进程信息:获取统计信息、服务器信息和管理计数器。
- 拓扑发现:列出前端、后端、服务器状态和配置详情。
- 动态池管理:添加、移除、启用/禁用服务器并调整其属性。
- 会话控制:查看和管理活动会话。
- 映射与 ACLs:管理 HAProxy 映射和 ACL 文件。
- 健康检查与代理:控制健康检查和基于代理的监控。
- 杂项:查看错误、运行回声测试和获取帮助信息。
常见问题解答
- 如何配置 HAProxy 以暴露运行时 API 和统计页面?:参考 HAProxy Configuration Guide。
- 如何测试单个 MCP 工具?:使用 JSON-RPC 调用特定工具。
- 如何启用安全连接?:通过 TCP4 或 Unix socket 模式连接,并确保适当的网络和文件权限。
使用教程
使用依赖
确保已安装以下依赖: - Go (如需从源码安装) - Docker (如需使用 Docker 镜像) - Homebrew (如需使用 Homebrew 安装)
安装教程
Homebrew
# Add the tap
brew tap tuannvm/tap
# Install the package
brew install haproxy-mcp-server
从二进制文件
从 releases page 下载最新版本的二进制文件。
使用 Go
go install github.com/tuannvm/haproxy-mcp-server/cmd/server@latest
使用 Docker
docker pull ghcr.io/tuannvm/haproxy-mcp-server:latest
docker run -it --rm \
-e HAPROXY_HOST=your-haproxy-host \
-e HAPROXY_PORT=9999 \
ghcr.io/tuannvm/haproxy-mcp-server:latest
调试方式
直接 CLI 测试
# Build the server
go build -o bin/haproxy-mcp-server cmd/server/main.go
# Test with TCP connection mode
HAPROXY_HOST=<your-haproxy-host> HAPROXY_PORT=9999 HAPROXY_RUNTIME_MODE=tcp4 HAPROXY_RUNTIME_TIMEOUT=10 LOG_LEVEL=debug MCP_TRANSPORT=stdio ./bin/haproxy-mcp-server
# Test with Unix socket mode
HAPROXY_RUNTIME_MODE=unix HAPROXY_RUNTIME_SOCKET=/path/to/haproxy.sock HAPROXY_RUNTIME_TIMEOUT=10 LOG_LEVEL=debug MCP_TRANSPORT=stdio ./bin/haproxy-mcp-server
# Test with Stats page integration
HAPROXY_STATS_ENABLED=true HAPROXY_STATS_URL="http://localhost:8404/stats" HAPROXY_STATS_TIMEOUT=5 LOG_LEVEL=debug MCP_TRANSPORT=stdio ./bin/haproxy-mcp-server
# Test with both Runtime API and Stats page
HAPROXY_HOST=<your-haproxy-host> HAPROXY_PORT=9999 HAPROXY_RUNTIME_MODE=tcp4 HAPROXY_RUNTIME_TIMEOUT=10 HAPROXY_STATS_ENABLED=true HAPROXY_STATS_URL="http://localhost:8404/stats" HAPROXY_STATS_TIMEOUT=5 LOG_LEVEL=debug MCP_TRANSPORT=stdio ./bin/haproxy-mcp-server
测试单个 MCP 工具
# Test show_info tool
echo '{"jsonrpc":"2.0","id":1,"method":"callTool","params":{"name":"show_info","arguments":{}}}' | HAPROXY_HOST=<your-haproxy-host> HAPROXY_PORT=9999 HAPROXY_RUNTIME_MODE=tcp4 LOG_LEVEL=debug ./bin/haproxy-mcp-server
# Test show_stat tool
echo '{"jsonrpc":"2.0","id":2,"method":"callTool","params":{"name":"show_stat","arguments":{"filter":""}}}' | HAPROXY_HOST=<your-haproxy-host> HAPROXY_PORT=9999 HAPROXY_RUNTIME_MODE=tcp4 LOG_LEVEL=debug ./bin/haproxy-mcp-server