关于 LibreChat MCP Servers
LibreChat MCP Servers 是一组用于 LibreChat Docker 部署的 MCP 服务配置目录,通过 Supergateway 将 stdio 类 MCP 服务转换为 SSE 连接。适合希望在 LibreChat 中接入工具并按容器隔离服务的用户。
主要功能
- 01基于 Supergateway 的 stdio 转 SSE 桥接
- 02每个 MCP 服务运行于独立容器
- 03与 librechat_default 网络集成
- 04通过 librechat.yaml 配置 mcpServers
适用场景
- 01在 Docker 部署的 LibreChat 中接入 Brave Search
- 02为新 MCP 服务编写 Dockerfile 与 Compose 配置
MCP 相关
该目录提供把 stdio MCP 服务封装为 SSE 端点的容器化方案,LibreChat 通过 librechat.yaml 中的 mcpServers 连接这些端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
LibreChat MCP 服务
本目录包含 Model Context Protocol (MCP) 服务实现,它们通过 Supergateway 桥接扩展 LibreChat 的能力。
这些是我正在整合在一起的项目。
- 这是为 Agent 提供各种工具的项目。Model Context Protocol Specification
- 将 stdio MCP 服务转换为 SSE,且每个服务都可以在自己的容器中运行。我会观察它的扩展性如何 Supergateway Documentation
- 多 LLM Agent 与 MCP 客户端 LibreChat Documentation
目录结构
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-compose.override.yml 以添加你的服务
- 更新 librechat.yaml 以配置 MCP 服务
通用配置
每个 MCP 服务应:
- 使用 Supergateway 作为桥接(stdio 到 SSE)
- 遵循一致的端口编号(8003+)
- 连接到 librechat_default 网络
- 对敏感数据使用环境变量
端口分配
- 8003:Brave Search
- 8004-8099:预留给未来的 MCP 服务
安全最佳实践
- 绝不提交 API 密钥或敏感数据
- 对机密信息使用环境变量
- 遵循最小权限原则
- 保持服务隔离
- 定期更新依赖项
使用 Supergateway 将 MCP 服务添加到 LibreChat
本指南提供使用 Supergateway 作为桥接,将任意 MCP 服务添加到 LibreChat 的分步说明。
概述
Supergateway 允许你通过 SSE(Server-Sent Events)运行基于 stdio 的 MCP 服务,这使其非常适合在 Docker 环境中将 MCP 服务与 LibreChat 集成。
前置条件
- 一个正在运行的 LibreChat 安装
- Docker 和 Docker Compose
- 你想要集成的 MCP 服务包
实施步骤
1. 创建服务目录
为你的 MCP 服务创建一个目录:
mkdir mcp-server-name
2. 创建 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-compose.override.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 files
4. 更新 librechat.yaml
添加你的 MCP 服务配置:
mcpServers:
server-name:
type: sse
url: "http://mcp-server-name:8002/sse"
理解架构
-
Stdio 到 SSE 桥接:
- 你的 MCP 服务通过 stdio 通信
- Supergateway 充当桥接,将 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
- Dockerfile:
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-compose.override.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"
参考资料
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。