MyMCPs
Self-hosted MCP gateway that exposes a single MCP URL to AI agents and routes tools/resources to many upstream MCP servers behind it.
README
MyMCPs
Self-hosted MCP gateway: expose one MCP URL to your AI agents, and route tools/resources to many upstream MCPs behind it.
Agents talk to one endpoint. MyMCPs talks to the rest.
Why
Running many MCP servers means many URLs, credentials, and agent configs. MyMCPs concentrates them into a single gateway you host yourself—on your laptop, a VPS, or your infra.
This is not a public SaaS signup product. You install an instance, complete first-run onboarding, and own the deployment.
Access model
- Fresh install — any URL redirects to
/onboardingto create the admin (no public marketing home) - Afterwards —
/is the signed-in dashboard; guests are sent to/login - Teammates — invite-only (admin creates a link; no email sending required)
- Agents — use an access token as
Authorization: Bearer …againstPOST/GET /mcp
Quick start
Requirements: Node.js ≥ 24, pnpm. For npm-transport MCPs, also install Deno. npm packages run in a Deno subprocess with filesystem access limited to a per-MCP sandbox directory (they cannot read the Adonis SQLite DB, .env, or app source). Network and env remain allowed so typical MCP packages can call APIs—treat installed packages as trusted software.
pnpm install
cp .env.example .env # if needed; scaffold may already have .env
pnpm run dev # node ace serve --hmr
Optional: set DENO_PATH if deno is not on your PATH.
Open the app URL (default http://localhost:3333), complete onboarding, then sign in on later visits.
Migrations run as part of a fresh scaffold; for an existing DB:
node ace migration:run
One-click OAuth MCPs
For a remote OAuth MCP such as Notion, add an HTTP MCP with this URL:
https://mcp.notion.com/mcp. Select OAuth, save it, and click Connect
OAuth. MyMCPs discovers the MCP's OAuth metadata, registers a client for the
current callback URL, opens the provider's login, and stores the resulting
tokens. You do not need to enter authorize/token endpoints, a client ID, or
register a callback URI manually.
The provider must support MCP OAuth discovery and dynamic client registration.
Providers without those capabilities can use the optional advanced OAuth
overrides in the MCP form. In production, APP_URL must be the public HTTPS
origin of the MyMCPs instance so the browser callback and session cookie use the
same host. Coolify deployments derive it from the domain assigned to the
service.
Tests
The project uses native AdonisJS test suites powered by Japa:
pnpm test
pnpm test unit
pnpm test functional
pnpm test browser
Tests use tmp/test.sqlite3, which is isolated from the development database at tmp/db.sqlite3 and reset for each test through a rolled-back database transaction. Browser tests run headless Chromium through Playwright. After installing dependencies on a new machine, install the browser once:
pnpm exec playwright install chromium
Add reusable records through the helpers in tests/helpers/factories.ts, and place fast logic tests in tests/unit, HTTP tests in tests/functional, and end-to-end UI tests in tests/browser.
Coolify
The repository includes a Coolify deployment profile. To deploy a public repository:
- Create a new resource from Public Repository and paste the GitHub repository URL.
- Use the checked-in
coolify.jsonconfiguration and assign the domain that should serve MyMCPs before deploying. - Deploy the resource.
The profile selects the Compose build pack, exposes the internal port 3333,
configures /health, and keeps SQLite, generated key material, and Deno
sandboxes in the named /app/tmp volume. Coolify's
SERVICE_URL_MYMCPS_3333 value is promoted to APP_URL, so the domain entered
in Coolify is used for redirects, invite links, gateway URLs, and OAuth
callbacks. The container generates an APP_KEY on first start when one is not
provided; the key is stored in the persistent volume. Set an explicit
APP_KEY in Coolify if you prefer to manage it yourself.
If the Coolify instance does not automatically apply coolify.json, select
Docker Compose, set the Compose file to /docker-compose.yml, expose port
3333, and add the same domain manually.
Docker
The image bundles Node.js 24, production deps, and Deno (for npm MCP sandboxes). Persist /app/tmp so SQLite and sandbox caches survive restarts.
cp .env.example .env
# APP_KEY is generated and persisted by the container when omitted.
# For a direct production deployment, set APP_URL to the public HTTPS URL.
docker compose \
-f docker-compose.yml \
-f docker-compose.local.yml \
up --build -d
The optional local Compose override binds the published port to 127.0.0.1 by
default. If the container must be reachable outside the host, set
BIND_ADDRESS only behind a TLS-terminating reverse proxy and use an HTTPS
APP_URL. Coolify uses its own proxy and the base docker-compose.yml does not
publish a host port.
Or without Compose:
docker build -t mymcps .
docker run --rm -p 3333:3333 \
-e APP_KEY=... \
-e APP_URL=http://localhost:3333 \
-v mymcps-data:/app/tmp \
mymcps
DENO_PATH defaults to /usr/local/bin/deno inside the container.
Product surfaces
- MCPs — register HTTP (Streamable HTTP) or npm upstreams with none / bearer / header / OAuth auth
- Access tokens — identifiers scoped to all MCPs (auto-includes new ones) or a selected list; optional expiry
- Gateway —
/mcpaggregates namespaced tools ({slug}__{toolName}) for allowed upstreams
Stack
- AdonisJS 7 — backend, Lucid, session auth
- Inertia + React 19 — server-driven UI
- Astryx — design system
- SQLite by default (
tmp/db.sqlite3) - @modelcontextprotocol/sdk — client/server + Streamable HTTP
- Deno — sandboxed filesystem runner for npm MCPs (network/env still permitted)
License
See repository license file when present. UNLICENSED until one is added.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。