Cover image
Try Now
2025-02-07

用于在Docker容器中设置SuperGateway MCP服务器的说明

3 years

Works with Finder

1

Github Watches

1

Github Forks

9

Github Stars

LibreChat MCP Servers

This directory contains Model Context Protocol (MCP) server implementations that extend LibreChat's capabilities through the Supergateway bridge.

These are the projects I am tiing together.

Directory Structure

mcp/
├── brave-search/          # Brave Search API integration
│   ├── Dockerfile
│   └── README.md
├── [future-server]/      # Template for future MCP servers
│   ├── Dockerfile
│   └── README.md
└── README.md             # This file

Adding New MCP Servers

  1. Create a new directory under mcp/ for your server
  2. Add required files:
    • Dockerfile - Server build configuration
    • README.md - Server-specific documentation
  3. Update docker-compose.override.yml to add your service
  4. Update librechat.yaml to configure the MCP server

Common Configuration

Each MCP server should:

  1. Use Supergateway as a bridge (stdio to SSE)
  2. Follow consistent port numbering (8003+)
  3. Connect to the librechat_default network
  4. Use environment variables for sensitive data

Port Assignments

  • 8003: Brave Search
  • 8004-8099: Reserved for future MCP servers

Security Best Practices

  1. Never commit API keys or sensitive data
  2. Use environment variables for secrets
  3. Follow least privilege principle
  4. Keep services isolated
  5. Regularly update dependencies

Adding MCP Servers to LibreChat with Supergateway

This guide provides step-by-step instructions for adding any MCP server to LibreChat using Supergateway as a bridge.

Overview

Supergateway allows you to run stdio-based MCP servers over SSE (Server-Sent Events), making it ideal for integrating MCP servers with LibreChat in a Docker environment.

Prerequisites

  1. A running LibreChat installation
  2. Docker and Docker Compose
  3. The MCP server package you want to integrate

Implementation Steps

1. Create Server Directory

Create a directory for your MCP server:

mkdir mcp-server-name

2. Create Dockerfile

Create 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. Update docker-compose.override.yml

Add your MCP server service:

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. Update librechat.yaml

Add your MCP server configuration:

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

Understanding the Architecture

  1. Stdio to SSE Bridge:

    • Your MCP server communicates via stdio
    • Supergateway acts as a bridge, converting stdio to SSE
    • LibreChat connects to the SSE endpoint
  2. Docker Networking:

    • All services run on the librechat_default network
    • Services can communicate using their service names as hostnames
    • Only necessary ports are exposed
  3. Configuration Flow:

    • LibreChat reads mcpServers config from librechat.yaml
    • Connects to Supergateway's SSE endpoint
    • Supergateway forwards requests to your MCP server

Common Configurations

1. Basic MCP Server

mcpServers:
  basic-server:
    type: sse
    url: "http://basic-server:8002/sse"

2. MCP Server with API Key

# 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 Server with File Access

# docker-compose.override.yml
services:
  file-server:
    volumes:
      - ./data:/app/data

# librechat.yaml
mcpServers:
  file-server:
    type: sse
    url: "http://file-server:8002/sse"

Troubleshooting

  1. Connection Issues:

    • Verify network configuration
    • Check container logs: docker compose logs mcp-server-name
    • Ensure ports are not conflicting
  2. Server Not Starting:

    • Verify package installation in Dockerfile
    • Check for environment variables
    • Review server logs
  3. Communication Problems:

    • Verify service names match in all configurations
    • Check network connectivity between containers
    • Ensure SSE endpoint is correct

Best Practices

  1. Security:

    • Never commit API keys or sensitive data
    • Use environment variables for secrets
    • Limit container permissions
  2. Networking:

    • Only expose necessary ports
    • Use internal Docker networking when possible
    • Follow least privilege principle
  3. Configuration:

    • Keep configurations modular
    • Document environment variables
    • Use version control for configurations
  4. Monitoring:

    • Log important events
    • Monitor resource usage
    • Set up health checks

Example: Complete Setup

Here's a complete example of adding a new MCP server:

  1. Directory Structure:
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"

References

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Bora Yalcin
  • Evaluator for marketplace product descriptions, checks for relevancy and keyword stuffing.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • Callycode Limited
  • A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Khalid kalib
  • Write professional emails

  • Beniyam Berhanu
  • Therapist adept at identifying core issues and offering practical advice with images.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • OffchainLabs
  • 进行以太坊的实施

  • huahuayu
  • 统一的API网关,用于将多个Etherscan样区块链Explorer API与对AI助手的模型上下文协议(MCP)支持。

  • deemkeen
  • 用电源组合控制您的MBOT2:MQTT+MCP+LLM

    Reviews

    2 (1)
    Avatar
    user_xZu49h5L
    2025-04-16

    LibreChatMCPServers is a fantastic tool for managing multiple chat server instances. Created by wally-kroeker and available on GitHub, this application is user-friendly and highly efficient. It provides seamless integration and robust performance, making it a must-have for any serious MCP user. Highly recommended!