by 1mcp-app
Provides a unified server that aggregates multiple Model Context Protocol (MCP) servers into a single endpoint, simplifying configuration, lowering resource consumption, and offering a standardized interaction layer for AI assistants.
A single, unified MCP server that consolidates various MCP back‑ends (e.g., Claude Desktop, Cursor, Cherry Studio, Roo Code) so developers and AI assistants can interact through one consistent interface.
npx:
npx -y @1mcp/agent --help # shows usage
npx -y @1mcp/agent # starts the server (default port 3050)
Binary downloads are also available for offline use.npx -y @1mcp/agent mcp add context7 -- npx -y @upstash/context7-mcp
npx -y @1mcp/agent mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/Documents
http://127.0.0.1:3050/mcp?app=<assistant>./health, /health/live, /health/ready) for observability.latest (full) and lite imagesQ: Do I need Node.js when using the binary? A: No. The binary is self‑contained; Node.js is only required for the npm installation method.
Q: How can I change the listening port?
A: Use the --port flag, e.g., npx -y @1mcp/agent --port 8080.
Q: Can I disable a specific MCP server?
A: Yes, run npx -y @1mcp/agent mcp disable <name>.
Q: What tags are supported?
A: Tags are arbitrary labels you assign in the server config (e.g., network, filesystem, db). Use --tag-filter for complex Boolean filtering.
Q: How do I enable authentication?
A: Start the server with --enable-auth; the server then acts as an OAuth 2.1 provider.
Q: Is there Docker support?
A: Yes. Pull ghcr.io/1mcp-app/agent:latest (full) or :lite and run with -p 3050:3050 and ONE_MCP_HOST=0.0.0.0.
A unified Model Context Protocol server implementation that aggregates multiple MCP servers into one.
1MCP (One MCP) is designed to simplify the way you work with AI assistants. Instead of configuring multiple MCP servers for different clients (Claude Desktop, Cherry Studio, Cursor, Roo Code, Claude, etc.), 1MCP provides a single, unified server.
Get up and running with 1MCP in just a few steps:
Download the compressed archive for your platform from the latest release:
1mcp-linux-x641mcp-linux-arm641mcp-win32-x64.exe1mcp-darwin-arm641mcp-darwin-x64# Linux example:
curl -L -o 1mcp-linux-x64.tar.gz https://github.com/1mcp-app/agent/releases/latest/download/1mcp-linux-x64.tar.gz
tar -xzf 1mcp-linux-x64.tar.gz
sudo mv 1mcp /usr/local/bin/
sudo chmod +x /usr/local/bin/1mcp
rm 1mcp-linux-x64.tar.gz
1mcp --version
# macOS example (Apple Silicon):
curl -L -o 1mcp-darwin-arm64.tar.gz https://github.com/1mcp-app/agent/releases/latest/download/1mcp-darwin-arm64.tar.gz
tar -xzf 1mcp-darwin-arm64.tar.gz
sudo mv 1mcp /usr/local/bin/
sudo chmod +x /usr/local/bin/1mcp
rm 1mcp-darwin-arm64.tar.gz
1mcp --version
# Windows example (PowerShell):
Invoke-WebRequest -Uri "https://github.com/1mcp-app/agent/releases/latest/download/1mcp-win32-x64.zip" -OutFile "1mcp-win32-x64.zip"
Expand-Archive -Path "1mcp-win32-x64.zip" -DestinationPath "."
# Move to a directory in your PATH or use directly
.\1mcp.exe --version
Remove-Item "1mcp-win32-x64.zip"
More examples: Installation Guide
If you prefer using Node.js package managers:
# No installation needed - run directly
npx -y @1mcp/agent --help
# Or install globally
npm install -g @1mcp/agent
Add the MCP servers you want to use. Here are some popular examples:
# Using binary:
1mcp mcp add context7 -- npx -y @upstash/context7-mcp
1mcp mcp add sequential -- npx -y @modelcontextprotocol/server-sequential-thinking
1mcp mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/Documents
# Using NPM:
npx -y @1mcp/agent mcp add context7 -- npx -y @upstash/context7-mcp
npx -y @1mcp/agent mcp add sequential -- npx -y @modelcontextprotocol/server-sequential-thinking
npx -y @1mcp/agent mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/Documents
# Using binary:
1mcp
# Using NPM:
npx -y @1mcp/agent
The server will start on http://127.0.0.1:3050 and show you which MCP servers are active.
For Cursor, add to ~/.cursor/mcp.json or <project-root>/.cursor/mcp.json:
{
"mcpServers": {
"1mcp": {
"url": "http://127.0.0.1:3050/mcp?app=cursor"
}
}
}
For VSCode, add to settings.json or <project-root>/.vscode/mcp.json:
{
"servers": {
"1mcp": {
"url": "http://127.0.0.1:3050/mcp?app=vscode"
}
}
}
For Claude Code, run:
claude mcp add -t http 1mcp "http://127.0.0.1:3050/mcp?app=claude-code"
Check server status and connected MCP servers:
# Using binary:
1mcp mcp status
# Using NPM:
npx -y @1mcp/agent mcp status
Visit the health endpoint to see system status: http://127.0.0.1:3050/health
That's it! All your MCP servers are now available through one unified endpoint. 🎉
1MCP provides several commands to manage your MCP server configuration:
1mcp [serve] or npx -y @1mcp/agent [serve] - Start the 1MCP server (default command)
--transport - Choose transport type (stdio, http, sse)--config - Use specific config file--port - Change HTTP port1mcp mcp add <name> - Add a new MCP server to configuration1mcp mcp remove <name> - Remove an MCP server1mcp mcp list - List all configured MCP servers1mcp mcp status [name] - Show server status and details1mcp mcp enable/disable <name> - Enable or disable servers1mcp mcp update <name> - Update server configuration1mcp app consolidate - Consolidate configurations from other MCP apps1mcp app discover - Discover MCP servers from installed applications1mcp app list - List discovered applications1mcp app status - Show consolidation statusFor detailed command usage, run: 1mcp <command> --help or npx -y @1mcp/agent <command> --help
Full documentation: Commands Reference
For Binary Installation (Recommended):
For NPM/Node.js Installation:
You can run the server using the binary or NPM:
# Binary usage examples:
# Basic usage (starts server with HTTP transport)
1mcp
# Use existing Claude Desktop config
1mcp --config ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Use stdio transport instead of HTTP
1mcp --transport stdio
# Use external URL for reverse proxy setup (nginx, etc.)
1mcp --external-url https://example.com
# Configure trust proxy for reverse proxy setup
1mcp --trust-proxy=192.168.1.1
# Show all available options
1mcp --help
# NPM usage (if you prefer Node.js):
# Basic usage (starts server with HTTP transport)
npx -y @1mcp/agent
# All other options work the same way:
npx -y @1mcp/agent --config ~/Library/Application\ Support/Claude/claude_desktop_config.json
npx -y @1mcp/agent --transport stdio
npx -y @1mcp/agent --help
For a complete list of all command-line options, environment variables, and configuration details, see:
You can also run 1MCP using Docker. We provide two image variants:
latest: Full-featured image with extra tools (uv, bun) - defaultlite: Lightweight image with basic Node.js package managers only (npm, pnpm, yarn)# Pull the latest full-featured image (default)
docker pull ghcr.io/1mcp-app/agent:latest
# Or pull the lightweight version
docker pull ghcr.io/1mcp-app/agent:lite
# Run with HTTP transport (default) - IMPORTANT: Set host to 0.0.0.0 for Docker networking
docker run -p 3050:3050 \
-e ONE_MCP_HOST=0.0.0.0 \
ghcr.io/1mcp-app/agent
# Run the lite version with proper networking
docker run -p 3050:3050 \
-e ONE_MCP_HOST=0.0.0.0 \
ghcr.io/1mcp-app/agent:lite
# Run with a custom config file
docker run -p 3050:3050 \
-e ONE_MCP_HOST=0.0.0.0 \
-v /path/to/config.json:/config.json \
ghcr.io/1mcp-app/agent --config /config.json
# Run with stdio transport
docker run -i ghcr.io/1mcp-app/agent --transport stdio
latest: Latest stable release with extra toolsvX.Y.Z: Specific version (e.g. v1.0.0)vX.Y: Major.minor version (e.g. v1.0)vX: Major version (e.g. v1)lite: Latest stable lite releasevX.Y.Z-lite: Specific version lite (e.g. v1.0.0-lite)vX.Y-lite: Major.minor version lite (e.g. v1.0-lite)vX-lite: Major version lite (e.g. v1-lite)For detailed Docker configuration examples with environment variables, see the Configuration Deep Dive documentation.
Full Image (latest):
.node-version)Lite Image (lite):
.node-version)Tags help you control which MCP servers are available to different clients. Think of tags as labels that describe what each server can do.
{
"mcpServers": {
"web-server": {
"command": "uvx",
"args": ["mcp-server-fetch"],
"tags": ["network", "web"],
"disabled": false
},
"file-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/Downloads"],
"tags": ["filesystem"],
"disabled": false
}
}
}
Simple Tag Filtering (OR logic) - ⚠️ Deprecated:
# Binary usage:
1mcp --transport stdio --tags "network"
1mcp --transport stdio --tags "network,filesystem"
# NPM usage:
npx -y @1mcp/agent --transport stdio --tags "network"
npx -y @1mcp/agent --transport stdio --tags "network,filesystem"
Note: The
--tagsparameter is deprecated and will be removed in a future version. Use--tag-filterinstead for both simple and advanced filtering.
Advanced Tag Filtering (Boolean expressions):
# Binary usage:
1mcp --transport stdio --tag-filter "network+api"
1mcp --transport stdio --tag-filter "network,filesystem"
1mcp --transport stdio --tag-filter "(web,api)+production-test"
1mcp --transport stdio --tag-filter "web and api and not test"
# NPM usage:
npx -y @1mcp/agent --transport stdio --tag-filter "network+api"
npx -y @1mcp/agent --transport stdio --tag-filter "network,filesystem"
npx -y @1mcp/agent --transport stdio --tag-filter "(web,api)+production-test"
npx -y @1mcp/agent --transport stdio --tag-filter "web and api and not test"
Simple tag filtering:
{
"mcpServers": {
"1mcp": {
"type": "http",
"url": "http://localhost:3050/sse?tags=network" // Only connect to network-capable servers
}
}
}
Advanced tag filtering:
{
"mcpServers": {
"1mcp": {
"type": "http",
"url": "http://localhost:3050/sse?tag-filter=network%2Bapi" // network AND api (URL-encoded)
}
}
}
Example tags:
network: For servers that make web requestsfilesystem: For servers that handle file operationsmemory: For servers that provide memory/storageshell: For servers that run shell commandsdb: For servers that handle database operations1MCP supports comprehensive configuration through JSON files, command-line options, and environment variables.
For complete configuration documentation, see:
1MCP supports OAuth 2.1 for secure authentication. To enable it, use the --enable-auth flag. The --auth flag is deprecated and will be removed in a future version.
When authentication is enabled, 1MCP acts as an OAuth 2.1 provider, allowing client applications to securely connect. This ensures that only authorized clients can access the MCP servers.
1MCP provides comprehensive health check endpoints for monitoring and observability:
GET /health - Complete health status including system metrics, server status, and configurationGET /health/live - Simple liveness probe (always returns 200 if server is running)GET /health/ready - Readiness probe (returns 200 if configuration is loaded and ready)healthy - All systems operational (HTTP 200)degraded - Some issues but still functional (HTTP 200)unhealthy - Critical issues affecting functionality (HTTP 503)Use these endpoints with:
1MCP acts as a proxy, managing and aggregating multiple MCP servers. It starts and stops these servers as subprocesses and forwards requests from AI assistants to the appropriate server. This architecture allows for a single point of entry for all MCP traffic, simplifying management and reducing overhead.
Install dependencies:
pnpm install
Build the server:
pnpm build
For development with auto-rebuild:
pnpm watch
Run the server:
# Copy the example environment file first
cp .env.example .env
# Then run the development server
pnpm dev
Using the MCP Inspector, which is available as a package script:
pnpm inspector
The Inspector will provide a URL to access debugging tools in your browser.
This project uses source-map-support to enhance stack traces. When you run the server, stack traces will reference the original TypeScript source files instead of the compiled JavaScript. This makes debugging much easier, as error locations and line numbers will match your source code.
No extra setup is required—this is enabled by default. If you see a stack trace, it will point to .ts files and the correct line numbers. 🗺️
Contributions are welcome! Please read our CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Please log in to share your review and rating for this MCP.
{
"mcpServers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
],
"env": {
"API_KEY": "<YOUR_API_KEY>"
}
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"~/Documents"
],
"env": {}
}
}
}claude mcp add context7 npx -y @upstash/context7-mcpExplore related MCPs that share similar capabilities and solve comparable challenges
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by github
Connects AI tools directly to GitHub, enabling natural‑language interactions for repository browsing, issue and pull‑request management, CI/CD monitoring, code‑security analysis, and team collaboration.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.