返回市场
自由聊天MCP服务器

自由聊天MCP服务器

作者:wally-kroeker19 星标更新:2025-02-07

项目介绍

LibreChat MCP 服务器

此目录包含通过 Supergateway 桥接扩展 LibreChat 功能的 Model Context Protocol (MCP) 服务器实现。

这些是我正在整合的项目。

目录结构

mcp/
├── brave-search/          # Brave Search API 集成
│   ├── Dockerfile
│   └── README.md
├── [future-server]/      # 未来 MCP 服务器的模板
│   ├── Dockerfile
│   └── README.md
└── README.md             # 此文件

添加新的 MCP 服务器

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

常用配置

每个 MCP 服务器应:

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

端口分配

  • 8003: Brave Search
  • 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

# 安装 supergateway 和您的 MCP 服务器包
RUN npm install -g supergateway @organization/mcp-server-package

# 命令运行 supergateway 作为您的 stdio MCP 服务器与 SSE 之间的桥梁
# --stdio: 运行您的 MCP 服务器的命令
# --port: supergateway 监听的端口
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"  # 根据需要调整端口
    networks:
      - librechat_default
    environment:
      - API_KEY=${YOUR_API_KEY}  # 如果您的服务器需要 API 密钥
    volumes:
      - ./mcp-server-name:/app  # 如果您的服务器需要访问本地文件

4. 更新 librechat.yaml

添加您的 MCP 服务器配置:

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

理解架构

  1. Stdio 到 SSE 桥

    • 您的 MCP 服务器通过 stdio 通信
    • Supergateway 作为桥梁,将 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. 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"]
  1. docker-compose.override.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"

参考资料