LibreChat MCP Servers
wally-kroeker/LibreChatMCPServers · 25 stars · Dockerfile
MCP server Instructions for setting up SuperGateway MCP servers in docker containers for docker deployments of LibreChat
Install
The repo has no one-line install. Follow its README.
Files
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.
- This is the think that gives any kind of tool to the Agent. Model Context Protocol Specification
- Converts stdio MCP servers to SSE and each server can run in its own container. I will see how this scales Supergateway Documentation
- Multi-LLM agent and MCP client LibreChat Documentation
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
- Create a new directory under
mcp/for your server - Add required files:
Dockerfile- Server build configurationREADME.md- Server-specific documentation
- Update docker-compose.override.yml to add your service
- Update librechat.yaml to configure the MCP server
Common Configuration
Each MCP server should:
- Use Supergateway as a bridge (stdio to SSE)
- Follow consistent port numbering (8003+)
- Connect to the librechat_default network
- Use environment variables for sensitive data
Port Assignments
- 8003: Brave Search
- 8004-8099: Reserved for future MCP servers
Security Best Practices
- Never commit API keys or sensitive data
- Use environment variables for secrets
- Follow least privilege principle
- Keep services isolated
- 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
- A running LibreChat installation
- Docker and Docker Compose
- 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
-
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
-
Docker Networking:
- All services run on the
librechat_defaultnetwork - Services can communicate using their service names as hostnames
- Only necessary ports are exposed
- All services run on the
-
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
-
Connection Issues:
- Verify network configuration
- Check container logs:
docker compose logs mcp-server-name - Ensure ports are not conflicting
-
Server Not Starting:
- Verify package installation in Dockerfile
- Check for environment variables
- Review server logs
-
Communication Problems:
- Verify service names match in all configurations
- Check network connectivity between containers
- Ensure SSE endpoint is correct
Best Practices
-
Security:
- Never commit API keys or sensitive data
- Use environment variables for secrets
- Limit container permissions
-
Networking:
- Only expose necessary ports
- Use internal Docker networking when possible
- Follow least privilege principle
-
Configuration:
- Keep configurations modular
- Document environment variables
- Use version control for configurations
-
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:
- Directory Structure:
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"
References
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 25
- Language
- Dockerfile
- Last push
- 2025-02-07
- Forks
- 4
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k