Token导航 LogoToken导航TokenDH.com
HAProxy MCP Server logo
运维云端stdio官方级别未说明来源级核验

HAProxy MCP Server

MCP Server

一个基于Go实现的HAProxy模型上下文协议(MCP)服务器,通过自然语言接口提供HAProxy运行时API管理、服务器状态监控和流量分析功能。

工具数

0

提示词数

0

GitHub Stars

7

资源数

0
API集成Go云端部署

安装说明

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

作者 / 组织

tuannvm

提供方

tuannvm

最后核验

2026/5/17 20:31

运行时

Docker

快速接入

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

命令预览

docker run -it --rm \

详细介绍

HAProxy MCP服务器

![Build](https://github.com/tuannvm/haproxy-mcp-server/actions/workflows/build.yml) ![Release](https://github.com/tuannvm/haproxy-mcp-server/actions/workflows/release.yml) ![Go Report Card](https://goreportcard.com/report/github.com/tuannvm/haproxy-mcp-server)

License

在Go中实现的用于HAProxy的模型上下文协议(MCP)服务器,利用HAProxy运行时API和MCP-Go。

概述

HAProxy MCP服务器为LLM通过模型上下文协议(MCP)与HAProxy的运行时API交互提供了一种标准化的方式。这使LLM能够通过自然语言界面执行HAProxy管理任务、监视服务器状态、管理后端服务器和分析流量模式。

Screenshot-1 Screenshot-2 Screenshot-3

特性

  • 完整的HAProxy运行时API支持:全面覆盖HAProxy的运行时API命令
  • 上下文感知操作:所有操作都支持适当的超时和取消处理
  • 统计页面集成:支持HAProxy基于web的统计页面,以增强指标和可视化
  • 安全认证:支持与HAProxy运行时API的安全连接
  • 多种运输方式:支持stdio和HTTP传输,在不同环境中具有灵活性
  • 企业就绪:专为企业环境中的生产使用而设计
  • Docker支持:预构建Docker镜像,便于部署

安装

家酿

# Add the tap
brew tap tuannvm/tap

# Install the package
brew install haproxy-mcp-server

来自Binary

从以下网址下载适用于您平台的最新二进制文件 发布页面.

使用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

MCP集成

要将此服务器与MCP兼容的LLM一起使用,请使用以下连接详细信息配置助手:

TCP4上的HAProxy运行时API:

{
  "mcpServers": {
    "haproxy": {
      "command": "haproxy-mcp-server",
      "env": {
        "HAPROXY_HOST": "localhost",
        "HAPROXY_PORT": "9999",
        "HAPROXY_RUNTIME_MODE": "tcp4",
        "HAPROXY_RUNTIME_TIMEOUT": "10",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

Unix套接字上的HAProxy运行时API:

{
  "mcpServers": {
    "haproxy": {
      "command": "haproxy-mcp-server",
      "env": {
        "HAPROXY_RUNTIME_MODE": "unix",
        "HAPROXY_RUNTIME_SOCKET": "/var/run/haproxy/admin.sock",
        "HAPROXY_RUNTIME_TIMEOUT": "10",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

支持统计页面的HAProxy:

{
  "mcpServers": {
    "haproxy": {
      "command": "haproxy-mcp-server",
      "env": {
        "HAPROXY_STATS_ENABLED": "true",
        "HAPROXY_STATS_URL": "http://localhost:8404/stats",
        "HAPROXY_STATS_TIMEOUT": "5",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

仅使用统计页面功能时,无需定义运行时API参数(如主机和端口)。您可以同时使用运行时API和统计页面来实现互补功能,也可以根据环境的限制仅使用其中一个。

注: 有关如何配置HAProxy以公开运行时API和统计信息页面的详细说明,请参阅 HAProxy配置指南.

可用的MCP工具

HAProxy MCP服务器公开了直接映射到HAProxy的运行时API命令的工具,这些命令分为以下类别:

  • 统计和流程信息:检索统计信息、服务器信息和管理计数器
  • 拓扑发现:列出前端、后端、服务器状态和配置详细信息
  • 动态池管理:添加、删除、启用/禁用服务器并调整其属性
  • 会话控制:查看和管理活动会话
  • 地图和ACL:管理HAProxy映射和ACL文件
  • 健康检查和代理:控制健康检查和基于代理的监测
  • 杂项:查看错误、运行回声测试并获取帮助信息

有关所有支持的工具及其输入、输出和相应的HAProxy Runtime API命令的完整列表,请参阅 tools.md 文档。

配置

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

变量描述默认值
HAPROXY_HOSTHAPROXY实例的主机(仅限TCP4模式)127.0.0.1
HAPROXY_PORTHAPROXY运行时API的端口(仅限TCP4模式)9999
HAPROXY_RUNTIME_MODE连接模式:“tcp4”或“unix”tcp4
HAPROXY_RUNTIME_SOCKET套接字路径(仅限Unix模式)/var/run/HAPROXY/admin.sock
HAPROXY_RUNTIME_URL将URL直接指向运行时API(可选,替代其他运行时设置)
HAPROXY_RUNTIME_TIMEOUT运行时API操作的超时时间(以秒为单位)10
HAPROXY_STATS_ENABLED启用HAPROXY统计页面支持true
HAPROXY_STATS_URLHAPROXY统计页面的URL(例如。,http://localhost:8404/stats)http://127.0.0.1:8404/stats
HAPROXY_STATS_TIMEOUT统计页面操作超时(秒)5
MCP_TRANSPORTMCP传输方法(stdio/http)stdio
MCP_PORTHTTP传输端口(使用HTTP时)8080
LOGLEVEL日志记录级别(调试/信息/警告/错误)信息

注: 您可以同时使用Runtime API(TCP4或Unix套接字模式)、Stats API或两者。必须至少正确配置一个,服务器才能正常运行。

安全考虑

  • 认证:使用安全方法连接到HAProxy的运行时API
  • 网络安全:使用TCP4模式时,限制与运行时API端口的连接
  • Unix套接字权限:使用Unix套接字模式时,确保正确的套接字文件权限
  • 输入验证:所有输入都经过验证,以防止注射攻击

有关全面的安全最佳实践和配置示例,请参阅 HAProxy配置指南.

发展

测试

# Run all tests
go test ./...

# Run tests excluding integration tests
go test -short ./...

# Run integration tests with specific HAProxy instance
export HAPROXY_HOST="your-haproxy-host"
export HAPROXY_PORT="9999"
go test ./internal/haproxy -v -run Test

您可以通过多种方式在本地测试HAProxy MCP服务器:

直接CLI测试

直接使用环境变量构建和运行服务器:

# Build the server
go build -o bin/haproxy-mcp-server cmd/server/main.go

# Option 1: Test with TCP connection mode
HAPROXY_HOST= HAPROXY_PORT=9999 HAPROXY_RUNTIME_MODE=tcp4 HAPROXY_RUNTIME_TIMEOUT=10 LOG_LEVEL=debug MCP_TRANSPORT=stdio ./bin/haproxy-mcp-server

# Option 2: 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

# Option 3: 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

# Option 4: Test with both Runtime API and Stats page
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工具

您可以使用JSON-RPC调用测试特定的MCP工具:

# Test show_info tool
echo '{"jsonrpc":"2.0","id":1,"method":"callTool","params":{"name":"show_info","arguments":{}}}' | 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= HAPROXY_PORT=9999 HAPROXY_RUNTIME_MODE=tcp4 LOG_LEVEL=debug ./bin/haproxy-mcp-server

技术实现

HAProxy MCP服务器包括几项旨在提高可靠性和鲁棒性的技术改进:

  • 上下文感知操作:所有API调用都支持基于上下文的超时和取消,允许优雅地终止长时间运行的操作。
  • 回退机制:如果直接连接失败,则自动回退到socat,确保不同HAProxy部署之间的兼容性。
  • 统一套接字处理:TCP和Unix套接字连接的通用代码,减少重复并提高可维护性。
  • 弹性连接管理:动态缓冲区管理,用于大型响应和适当的资源清理,并具有截止日期处理功能。
  • 全面的错误处理:结构化错误处理和日志记录,便于故障排除。

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

目录标签

目录标签

API集成Go云端部署负载均衡本地部署API管理自然语言处理服务器监控企业级工具

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP