LibreChat MCP服务器
此目录包含通过超级网关桥扩展LibreChat功能的模型上下文协议(MCP)服务器实现。
这些是我正在一起做的项目。
- 这是为代理人提供任何工具的想法。 模型上下文协议规范
- 将stdio MCP服务器转换为SSE,每台服务器都可以在自己的容器中运行。我会看看它是如何扩展的 超级网关文档
- 多LLM代理和MCP客户端 LibreChat文档
目录结构
mcp/
├── brave-search/ # Brave Search API integration
│ ├── Dockerfile
│ └── README.md
├── [future-server]/ # Template for future MCP servers
│ ├── Dockerfile
│ └── README.md
└── README.md # This file添加新的MCP服务器
- 在下创建新目录
mcp/对于您的服务器 - 添加所需文件:
- Dockerfile -服务器构建配置 - README.md -服务器特定文档
- 更新docker-composeoverride.yml以添加您的服务
- 更新librechat.yaml以配置MCP服务器
通用配置
每个MCP服务器应:
- 使用超级网关作为网桥(stdio到SSE)
- 遵循一致的端口编号(8003+)
- 连接到librechat_default网络
- 对敏感数据使用环境变量
端口分配
- 8003:勇敢的搜索
- 8004-8099:为未来的MCP服务器保留
安全最佳实践
- 永远不要提交API密钥或敏感数据
- 使用环境变量作为机密
- 遵循最小特权原则
- 保持服务隔离
- 定期更新依赖关系
使用Supergateway将MCP服务器添加到LibreChat
本指南提供了使用Supergateway作为网桥将任何MCP服务器添加到LibreChat的分步说明。
概述
Supergateway允许您通过SSE(服务器发送事件)运行基于stdio的MCP服务器,使其成为在Docker环境中将MCP服务器与LibreChat集成的理想选择。
先决条件
- 正在运行的LibreChat安装
- Docker和Docker Compose
- 您要集成的MCP服务器包
实施步骤
1.创建服务器目录
为您的MCP服务器创建一个目录:
mkdir mcp-server-name2.创建Dockerfile
创建 mcp-server-name/Dockerfile:
FROM node:18
WORKDIR /app
# Install both supergateway and your MCP server package
RUN npm install -g supergateway @organization/mcp-server-package
# The command runs supergateway as a bridge between your stdio MCP server and SSE
# --stdio: The command to run your MCP server
# --port: The port supergateway will listen on
CMD ["npx", "-y", "supergateway", "--stdio", "npx -y @organization/mcp-server-package", "--port", "8002"]3.更新docker-composeoverride.yml
添加您的MCP服务器服务:
services:
mcp-server-name:
build:
context: ./mcp-server-name
ports:
- "8002:8002" # Adjust port as needed
networks:
- librechat_default
environment:
- API_KEY=${YOUR_API_KEY} # If your server needs API keys
volumes:
- ./mcp-server-name:/app # If your server needs access to local files4.更新librechat.yaml
添加您的MCP服务器配置:
mcpServers:
server-name:
type: sse
url: "http://mcp-server-name:8002/sse"理解架构
- Stdio至SSE大桥:
- 您的MCP服务器通过stdio进行通信 - 超级网关充当桥梁,将stdio转换为SSE - LibreChat连接到SSE端点
- Docker网络:
- 所有服务都在 librechat_default 网络 - 服务可以使用其服务名称作为主机名进行通信 - 仅暴露必要的端口
- 配置流程:
- LibreChat从LibreChat.yaml读取mcpServers配置 - 连接到Supergateway的SSE端点 - Supergateway将请求转发到您的MCP服务器
常见配置
1.基本MCP服务器
mcpServers:
basic-server:
type: sse
url: "http://basic-server:8002/sse"2.带API密钥的MCP服务器
# docker-compose.override.yml
services:
api-server:
environment:
- API_KEY=${API_KEY}
# librechat.yaml
mcpServers:
api-server:
type: sse
url: "http://api-server:8002/sse"3.具有文件访问功能的MCP服务器
# docker-compose.override.yml
services:
file-server:
volumes:
- ./data:/app/data
# librechat.yaml
mcpServers:
file-server:
type: sse
url: "http://file-server:8002/sse"故障排除
- 连接问题:
- 验证网络配置 - 检查容器日志: docker compose logs mcp-server-name - 确保端口不冲突
- 服务器未启动:
- 验证Dockerfile中的包安装 - 检查环境变量 - 查看服务器日志
- 沟通问题:
- 验证所有配置中的服务名称是否匹配 - 检查容器之间的网络连接 - 确保SSE端点正确
最佳实践
- 安全:
- 永远不要提交API密钥或敏感数据 - 使用环境变量作为机密 - 限制容器权限
- 网络:
- 仅暴露必要的端口 - 尽可能使用内部Docker网络 - 遵循最小特权原则
- 配置:
- 保持配置模块化 - 文档环境变量 - 对配置使用版本控制
- 监控:
- 记录重要事件 - 监控资源使用情况 - 设置健康检查
示例:完成设置
以下是添加新MCP服务器的完整示例:
- 目录结构:
librechat/
├── mcp-server/
│ └── Dockerfile
├── docker-compose.override.yml
└── librechat.yaml- Docker 文件:
FROM node:18
WORKDIR /app
RUN npm install -g supergateway @org/mcp-server
CMD ["npx", "-y", "supergateway", "--stdio", "npx -y @org/mcp-server", "--port", "8002"]- docker-compositeoverride.yml:
services:
mcp-server:
build:
context: ./mcp-server
ports:
- "8002:8002"
networks:
- librechat_default
environment:
- API_KEY=${MCP_API_KEY}- librechat.yaml:
mcpServers:
mcp-server:
type: sse
url: "http://mcp-server:8002/sse"