模型上下文协议服务器

LibreChat的MCP服务器实现,通过Supergateway桥接扩展功能,支持多LLM代理和容器化部署。

  • by wally-kroeker
  • Dockerfile
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 wally-kroeker/LibreChatMCPServers

使用说明

LibreChat MCP服务器

此目录包含通过超级网关桥扩展LibreChat功能的模型上下文协议(MCP)服务器实现。

这些是我正在一起做的项目。

目录结构

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服务器

  1. 在下创建新目录 mcp/ 对于您的服务器
  2. 添加所需文件:
    • Dockerfile -服务器构建配置
    • README.md -服务器特定文档
  3. 更新docker-composeoverride.yml以添加您的服务
  4. 更新librechat.yaml以配置MCP服务器

通用配置

每个MCP服务器应:

  1. 使用超级网关作为网桥(stdio到SSE)
  2. 遵循一致的端口编号(8003+)
  3. 连接到librechat_default网络
  4. 对敏感数据使用环境变量

端口分配

  • 8003:勇敢的搜索
  • 8004-8099:为未来的MCP服务器保留

安全最佳实践

  1. 永远不要提交API密钥或敏感数据
  2. 使用环境变量作为机密
  3. 遵循最小特权原则
  4. 保持服务隔离
  5. 定期更新依赖关系

使用Supergateway将MCP服务器添加到LibreChat

本指南提供了使用Supergateway作为网桥将任何MCP服务器添加到LibreChat的分步说明。

概述

Supergateway允许您通过SSE(服务器发送事件)运行基于stdio的MCP服务器,使其成为在Docker环境中将MCP服务器与LibreChat集成的理想选择。

先决条件

  1. 正在运行的LibreChat安装
  2. Docker和Docker Compose
  3. 您要集成的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-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 files

4.更新librechat.yaml

添加您的MCP服务器配置:

mcpServers:
  server-name:
    type: sse
    url: "http://mcp-server-name:8002/sse"

理解架构

  1. Stdio至SSE大桥:

    • 您的MCP服务器通过stdio进行通信
    • 超级网关充当桥梁,将stdio转换为SSE
    • LibreChat连接到SSE端点
  2. Docker网络:

    • 所有服务都在 librechat_default 网络
    • 服务可以使用其服务名称作为主机名进行通信
    • 仅暴露必要的端口
  3. 配置流程:

    • 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"

故障排除

  1. 连接问题:

    • 验证网络配置
    • 检查容器日志: docker compose logs mcp-server-name
    • 确保端口不冲突
  2. 服务器未启动:

    • 验证Dockerfile中的包安装
    • 检查环境变量
    • 查看服务器日志
  3. 沟通问题:

    • 验证所有配置中的服务名称是否匹配
    • 检查容器之间的网络连接
    • 确保SSE端点正确

最佳实践

  1. 安全:

    • 永远不要提交API密钥或敏感数据
    • 使用环境变量作为机密
    • 限制容器权限
  2. 网络:

    • 仅暴露必要的端口
    • 尽可能使用内部Docker网络
    • 遵循最小特权原则
  3. 配置:

    • 保持配置模块化
    • 文档环境变量
    • 对配置使用版本控制
  4. 监控:

    • 记录重要事件
    • 监控资源使用情况
    • 设置健康检查

示例:完成设置

以下是添加新MCP服务器的完整示例:

  1. 目录结构:
librechat/
├── mcp-server/
│   └── Dockerfile
├── docker-compose.override.yml
└── librechat.yaml
  1. 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"]
  1. docker-compositeoverride.yml:
services:
  mcp-server:
    build:
      context: ./mcp-server
    ports:
      - "8002:8002"
    networks:
      - librechat_default
    environment:
      - API_KEY=${MCP_API_KEY}
  1. librechat.yaml:
mcpServers:
  mcp-server:
    type: sse
    url: "http://mcp-server:8002/sse"

参考文献