部署您的第一台LoxiLB MCP服务器
本指南将向您展示如何使用LoxiLB集成部署自己的远程MCP服务器,有两个部署选项:
- 本地部署 --在与MCP客户端相同的主机上运行(例如,Claude Desktop)进行开发和测试。
- 远程部署 --在支持HTTPS的生产环境的单独服务器上运行。
LoxiLB SSE远程服务器是一种模型上下文协议(MCP)服务器实现,它使用服务器发送事件(SSE)进行实时通信。该项目提供了一套全面的工具,用于与各种服务进行交互,包括GitHub、Slack、文件系统和LoxiLB负载均衡器管理。
快速启动
5分钟后起床跑步:
- 克隆和配置
git clone https://github.com/loxilb-io/loxilb-mcp.git
cd loxilb-mcp
cp .env.example .env
# Edit .env with your LoxiLB URL and tokens- 启动服务器
docker-compose up -d您的MCP服务器现在正在上运行http://localhost:8787/sse
在新终端中,运行MCP检查器。MCP检查器是一个交互式MCP客户端,允许您连接到MCP服务器并从web浏览器调用工具。
- 使用MCP检查员进行测试
npx @modelcontextprotocol/inspector@latest在web浏览器中打开MCP检查器
在检查器中,设置 trasport type 向 SSE,输入 URL 您的MCP服务器, http://localhost:8787/sse,输入 authentication's header name 像 Authorization,以及 Bearer Token 像 admin-token,然后单击“连接”。您应该看到“列出工具”按钮,该按钮将列出您的MCP服务器公开的工具。
- 连接克劳德桌面
将服务器配置添加到您的 claude_desktop_config.json
{
"mcpServers": {
"netlox": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8788/sse",
"--header",
"Authorization: Bearer ${AUTH_TOKEN}"
],
"env": {
"AUTH_TOKEN": "admin-key"
}
}
}
}建筑
该服务器是使用FastMCP构建的,FastMCP是一个用于实现MCP服务器的框架。它使用服务器发送事件(SSE)进行实时通信,并实现不同访问级别(管理员、用户、只读)的身份验证。
SSL部署选项
对于生产部署,LoxiLB SSE服务器支持多种SSL证书选项:
- 自签名证书 --开发和测试的快速设置
- 让我们加密证书 --用于生产的免费自动化SSL证书
- 传统CA证书 --认证机构颁发的企业级证书
📋 备注:有关详细的SSL设置说明、证书生成和故障排除,请参阅 SSL设置指南.
快速SSL设置
使用附带的SSL自动化脚本生成证书:
chmod +x ./scripts/generate-ssl.sh
chmod +x ./scripts/certbot-ssl.sh
chmod +x ./scripts/generate-ssl-certs.sh
# For development (self-signed certificates)
./generate-ssl.sh dev
# For production with Let's Encrypt
# Setup Certbot environment
./generate-ssl.sh certbot setup
# Obtain certificate
./generate-ssl.sh certbot obtain -d yourdomain.com
SSL证书管理
该项目包括全面的SSL管理工具:
- 自动生成证书 使用OpenSSL
- 让我们加密集成 使用Certbot
- 自动续期 Let's Encrypt证书的设置
- 证书验证 监测
- Docker卷管理 用于SSL文件
配置
服务器需要两个配置文件: .env 和 tool-providers.config.json.
快速设置
- 创建
.env文件 使用您的设置:
# Server settings
PORT=8788
HOST=0.0.0.0
ENDPOINT=sse
ENABLE_AUTH=true
# Required
LOXILB_BASE_URL=http://your.loxilb.api.url/netlox/v1
# Optional (only if respective tools are enabled)
GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token_here
SLACK_BOT_TOKEN=your_slack_token_here
NODE_ENV=production- 创建
tool-providers.config.json文件:
{
"filesystem": {
"enabled": true,
"allowedDirectories": [
"/workspace/sse-remote-server/loxilb",
"/workspace/sse-remote-server/loxilb-epbf",
"/workspace/sse-remote-server/loxicmd",
"/workspace/sse-remote-server/loxilbdocs"
]
},
"github": {
"enabled": true
},
"slack": {
"enabled": true
},
"loxilb": {
"enabled": true
}
}禁用不需要的工具
要禁用GitHub和/或Slack集成:
- 集
"enabled": false对于你不需要的工具tool-providers.config.json - 跳过在您的帐户中提供相应的令牌
.env文件
例子:
{
"github": { "enabled": false },
"slack": { "enabled": false }
}这减少了依赖性并简化了设置。
可用工具提供商
服务器为不同的服务和操作提供了几个专门的工具提供商。
LoxiLB 工具
用于管理LoxiLB负载均衡器操作的综合工具:
GET操作 (llb-allget-tools.ts)
- 版本信息、网络接口、路由详细信息
- 负载平衡器配置和统计信息
- 系统状态和性能指标
POST操作 (llb-post-tools.ts)
- 负载均衡器配置和策略
- 网络设置和VLAN配置
- BGP路由和服务管理
示例工具:
loxilb_version_get--获取LoxiLB版本信息loxilb_lb_post--创建或更新负载平衡器配置loxilb_lb_stats_get--获取性能指标和统计数据
GitHub工具
用于存储库和开发操作的完整GitHub API集成:
存储库操作
- 搜索、创建、更新和删除存储库
- 分支和标签管理
- 存储库配置和设置
问题管理
- 创建、更新和列出问题
- 评论管理和标签
- 问题分配和跟踪
拉取请求操作
- 创建和管理pull请求
- 审查和合并操作
- 状态检查和批准
文件操作
- 读取、写入和删除文件
- 提交操作和历史记录
- 跨分支机构的内容管理
示例工具:
search_repositories--搜索GitHub存储库get_issue--获取特定的GitHub问题详细信息create_pull_request--创建新的pull请求
Slack工具
用于通信和协作的Slack工作空间集成:
渠道运作
- 列出频道并获取频道历史记录
- 频道信息和元数据
- 渠道成员管理
消息操作
- 发送、更新和删除邮件
- 邮件格式和附件
- 线程管理和回复
用户操作
- 列出用户并获取用户信息
- 用户配置文件详细信息和状态
- 存在和活动跟踪
文件操作
- 将文件上传到Slack频道
- 列出并管理上传的文件
- 文件共享和权限
示例工具:
slack_list_channels--列出可用的Slack频道slack_send_message--向Slack频道发送消息slack_upload_file--将文件上传到Slack
文件系统工具
在配置的目录中保护文件系统操作:
文件操作
- 读取、写入和删除文件
- 文件内容管理和编辑
- 文件元数据和权限
目录操作
- 列出目录内容和结构
- 创建和删除目录
- 目录导航和管理
搜索操作
- 文件和内容搜索功能
- 模式匹配和过滤
- 递归目录操作
安全功能:
- 操作仅限于允许的目录
- 路径遍历保护
- 文件类型和大小验证
示例工具:
read_file--安全读取文件内容write_file--将内容写入文件list_directory--列出目录内容
设置所需的第三方令牌
在部署服务器之前,您需要为要集成的服务获取API令牌。
📋 备注:您可以通过设置禁用任何不需要的工具提供程序"enabled": false在你的tool-providers.config.json文件。
GitHub个人访问令牌
- 导航到GitHub设置
- 首选 个人访问令牌 (设置>开发人员设置)
- 创建新令牌
- 点击“生成新令牌”>“生成新的令牌(经典)” - 选择存储库访问范围(公共、全部或选定存储库)
- 配置权限
- 对于私有存储库:选择 repo 范围(“完全控制私有存储库”) - 仅适用于公共存储库:选择 public_repo 范围
- 保存令牌
- 复制生成的令牌并将其添加到您的 .env 文件为 GITHUB_PERSONAL_ACCESS_TOKEN
Slack机器人令牌
- 创建Slack应用程序
- 访问 Slack应用程序页面 - 点击“创建新应用”>“从头开始” - 命名您的应用程序并选择您的工作区
- 配置OAuth作用域
导航到“OAuth和权限”并添加这些Bot令牌范围:
- channels:history --查看公共频道中的消息 - channels:read --查看基本频道信息 - chat:write --以应用程序的身份发送消息 - reactions:write -在消息中添加表情符号反应 - users:read --查看用户和基本信息 - users.profile:read --查看详细的用户资料
- 安装到工作区
- 点击“安装到工作区”并授权应用程序 - 保存“Bot用户OAuth令牌”(以开头 xoxb-)
- 获取团队ID
- 查找您的团队ID(以开头 T)使用 本指南
安装LoxiLB SSE服务器
根据您的要求选择部署方法:
Docker部署(推荐)
部署LoxiLB SSE服务器的推荐方法是使用Docker容器。
先决条件:
- 已安装Docker和Docker Compose
- 配置文件(
.env和tool-providers.config.json)准备好了
快速启动:
# Clone or download the project
git clone https://github.com/loxilb-io/loxilb-mcp.git
cd loxilb-mcp
# Create your configuration files
cp .env.example .env
# Edit .env with your settings
# Start the server
docker-compose up -d端口配置:
⚠️ 警告:确保Docker命令中的端口映射与PORT定义在你的.env文件。
# If PORT=8788 in .env
docker run -p 8788:8788 --env-file .env \
-v $(pwd)/tool-providers.config.json:/workspace/sse-remote-server/tool-providers.config.json:ro \
loxilbmcp-sse-server:v0.9.8
# If you change PORT=9000 in .env, update the mapping
docker run -p 9000:9000 --env-file .env \
-v $(pwd)/tool-providers.config.json:/workspace/sse-remote-server/tool-providers.config.json:ro \
loxilbmcp-sse-server:v0.9.8部署考虑
本地部署
- 非常适合开发和测试
- 通过本地主机连接简化配置
- 最小网络延迟
远程部署
- 更适合生产环境
- 支持多个客户端连接
- 集中式LoxiLB资源管理
- 需要HTTPS进行安全连接
服务器连接
使用适当的URL格式连接到您的LoxiLB SSE服务器:
部署类型:
- 本地部署
- 网址: http://localhost: /sse - 端口必须与您的 .env 配置 - 本地主机连接不需要SSL
- 远程部署
- 网址: https://: /sse - 远程连接需要HTTPS - 需要有效的SSL证书
⚠️ 警告:确保防火墙配置允许连接到指定端口。
认证
服务器使用预定义的访问密钥实现基于角色的身份验证:
访问级别:
- 管理员密钥
- 访问级别:管理员 - 权限:读、写、删除、管理操作 - 用于:完整的系统管理和配置
- 用户密钥
- 访问级别:普通用户 - 权限:读、写操作 - 用于:标准工具操作和数据访问
- 只读密钥
- 访问级别:访客 - 权限:只读访问 - 用途:监控和信息检索
身份验证标头格式:
Authorization: Bearer 📋 备注:这些预定义密钥用于初始设置和测试。对于生产环境,使用用户特定的令牌实现更安全的身份验证系统。
使用MCP检查员进行测试
MCP检查器是一个功能强大的调试工具,允许您在将LoxiLB SSE服务器连接到Claude Desktop之前对其进行测试。它提供了一个web界面来探索可用的工具并测试其功能。
安装MCP检查器
npm install -g @modelcontextprotocol/inspector测试您的服务器
- 启动LoxiLB SSE服务器:
# Using Docker
docker run -p 8788:8788 --env-file .env \
-v $(pwd)/tool-providers.config.json:/workspace/sse-remote-server/tool-providers.config.json:ro \
loxilbmcp-sse-server:v0.9.8- 启动MCP检查器:
npx @modelcontextprotocol/inspector@latest- 测试功能:
- 浏览检查器界面中的可用工具 - 测试LoxiLB API操作(GET/POST端点) - 验证GitHub和Slack集成(如果启用) - 在允许的目录内测试文件系统操作 - 验证不同访问级别的身份验证
检查器功能
MCP检查员提供:
- 工具发现 --查看所有可用工具及其模式
- 交互式测试 --使用自定义参数执行工具
- 响应验证 --查看详细的响应和错误消息
- 认证测试 --测试不同的身份验证令牌和访问级别
- 实时监控 --监控SSE连接和事件
💡 小贴士:在连接到Claude Desktop之前,使用检查器验证您的配置。这有助于及早发现配置问题,并确保平稳运行。
使用Claude Desktop(MCP客户端)
要在Claude Desktop中使用此功能,请将以下内容添加到您的 claude_desktop_config.json:
基于部署类型的配置
您需要根据LoxiLB SSE服务器的运行位置调整配置中的URL:
⚠️ 重要:从Claude Desktop连接到远程LoxiLB SSE服务器时,您 必须 使用HTTPS(不是HTTP)。只有本地主机连接可以使用HTTP。
本地部署 使用 http://localhost: /sse 其中PORT与.env文件匹配。
远程部署 使用 https://: /sse 使用HTTPS进行安全连接。
确保更换 使用.env文件中的实际端口号(默认值:8788),以及 `` 使用远程服务器的实际IP地址或主机名。
配置示例
{
"mcpServers": {
"loxilb": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8788/sse", // Change this URL based on your deployment
"--header",
"Authorization: Bearer ${AUTH_TOKEN}"
],
"env": {
"AUTH_TOKEN": "admin-key" // This must match the authentication credentials on your server
}
}
}
}远程部署示例
⚠️ 需要HTTPS:从Claude Desktop连接到远程LoxiLB SSE服务器时,您 必须 使用HTTPS(不是HTTP)。只有本地主机连接可以使用HTTP。请参阅 SSL部署选项 用于设置HTTPS。
{
"mcpServers": {
"loxilb": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-server-domain.com/sse",
"--header",
"Authorization: Bearer ${AUTH_TOKEN}"
],
"env": {
"AUTH_TOKEN": "admin-key"
}
}
}
}故障排除
连接问题
如果您遇到MCP客户端(例如Claude Desktop)的连接问题,可能是由于之前的会话Cookie导致冲突。
💡 快速修复:通过运行清除MCP身份验证缓存 rm -rf ~/.mcp-auth 并重新启动克劳德桌面。解决步骤:
- 清除MCP身份验证缓存:
rm -rf ~/.mcp-auth- 重新启动您的Claude Desktop应用程序
- 现在,连接应该与LoxiLB SSE服务器正常工作
当在不同的MCP服务器之间切换或身份验证凭据发生更改时,这尤其有用。
无法访问服务器
如果无法访问服务器,请检查以下内容:
常见问题:
- 服务器状态
- 验证LoxiLB SSE服务器是否正在运行 - 检查容器日志: docker logs loxilbmcp-sse-server
- 端口配置
- 确保您的端口 .env 文件与Docker run命令匹配 - 验证防火墙设置是否允许连接到指定端口
- 网络连接
- 测试直接连接: curl http://localhost:8788/sse (根据需要调整端口) - 对于远程服务器,验证DNS解析和网络路由
- LoxiLB连接
- 验证您的LOXILB_BASE_URL .env 文件正确且可访问 - 试验洛西LB API: curl ${LOXILB_BASE_URL}/netlox/v1/status
HTTPS支持
LoxiLB SSE服务器直接支持HTTP。对于生产中的HTTPS支持,请使用Nginx作为SSL终止的反向代理。
📋 备注:该项目包括自动生成SSL证书和Nginx配置。请参阅 SSL设置指南 有关完整的设置说明。
快速HTTPS设置:
- 生成SSL证书:
# Let's Encrypt (recommended for production)
make ssl-certbot-setup DOMAIN=yourdomain.com EMAIL=your@email.com
make ssl-certbot-obtain DOMAIN=yourdomain.com
# Or self-signed for development
make ssl-dev DOMAIN=localhost- 从Docker Compose开始:
docker-compose up -d这将自动配置:
- Nginx反向代理 SSL终止
- 自动HTTP到HTTPS重定向
- 安全标头 以及速率限制
- 证书管理 带卷装
Nginx配置示例:
events {
worker_connections 1024;
}
http {
upstream loxilbmcp-sse-server {
server loxilbmcp-sse-server:8788;
keepalive 32;
}
# Rate limiting
limit_req_zone $binary_remote_addr zone=sse_limit:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
server {
listen 80;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name oam.loxilb.io; # change me
ssl_certificate /path/to/your/certificate.crt; # change me
ssl_certificate_key /path/to/your/private.key; # change me
location / {
proxy_pass http://loxilbmcp-sse-server; # change me
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_cache off;
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}
}
通过此设置,客户端可以通过HTTPS安全连接,同时LoxiLB SSE服务器继续使用HTTP运行。
使用Docker Compose进行HTTPS设置
为了您的方便,我们准备了一份 docker-compose.yml 同时设置LoxiLB SSE服务器和Nginx代理的文件,为远程连接启用HTTPS:
version: '3.8'
services:
loxilbmcp-sse-server:
image: ${REGISTRY:-kongseokhwan}/${IMAGE_NAME:-loxilbmcp-sse-server}:${IMAGE_TAG:-v0.9.8} # change me
container_name: loxilbmcp-sse-server
ports:
- "${PORT:-8788}:${PORT:-8788}"
environment:
# Server configuration
- PORT=${PORT:-8788}
- HOST=${HOST:-0.0.0.0}
- ENDPOINT=${ENDPOINT:-sse}
# Authentication
- ENABLE_AUTH=${ENABLE_AUTH:-true}
# Tool provider tokens
- GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN:-your_access_token} # your github personal access token
- SLACK_BOT_TOKEN=${SLACK_BOT_TOKEN:-your_slack_token} # your slack bot token
- SLACK_TEAM_ID=${SLACK_TEAM_ID:-your_slack_team_id} # your slack team id
- LOXILB_BASE_URL=${LOXILB_BASE_URL:-your_loxilb_base_url} # your loxilb base url
# Node.js settings
- NODE_ENV=production
volumes:
- ./tool-providers.config.json:/app/tool-providers.config.json:ro
restart: unless-stopped
networks:
- loxilbmcp-network
# Nginx reverse proxy for SSL termination
nginx:
image: nginx:alpine
container_name: loxilbmcp-nginx
ports:
- "443:443"
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/ssl:/etc/nginx/ssl:ro
depends_on:
- loxilbmcp-sse-server
restart: unless-stopped
networks:
- loxilbmcp-network
networks:
loxilbmcp-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16安装说明
- 准备SSL证书:
- 创建一个 nginx/ssl 目录 - 将您的SSL证书和密钥放置在此目录中 - 更新中的路径 nginx/nginx.conf 以匹配您的证书文件名
- 配置环境变量:
- 创建一个 .env 使用您的配置文件 - 设置您的GitHub、Slack和LoxiLB凭据
- 启动服务:
docker-compose up -d相关资源
文档
- SSL设置指南 --SSL证书生成、Let’s Encrypt自动化和HTTPS配置的综合指南。
配置文件
- **** --使用Nginx反向代理和SSL卷管理完成Docker Compose配置。
外部资源
支持
对于问题和疑问:
- 文档:检查 SSL设置指南 有关详细的配置帮助
- 问题:在项目存储库中报告错误和功能请求
- 社区:加入LoxiLB社区讨论
