MyMCPs
Enables routing to Notion's remote MCP server using OAuth, with automatic discovery of OAuth metadata and token storage.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MyMCPsshow me all tools from my upstream MCPs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MyMCPs
MyMCPs is a self-hosted Model Context Protocol (MCP) gateway. Connect your AI client to one endpoint, then manage every upstream MCP, credential, and access token from one dashboard.
What it does
Connects HTTP and npm-based MCP servers.
Supports bearer tokens, custom headers, and OAuth.
Lets MCP clients sign in through OAuth, with manual access tokens as a fallback.
Exposes every allowed upstream through
GETandPOST /mcp.Records gateway activity and usage analytics.
MyMCPs is self-hosted and invite-only. The first user becomes the administrator during onboarding.
Related MCP server: MCP-AI-Gateway
Run locally
You need Node.js 24 or newer, pnpm, and Deno if you want to run npm-based MCPs.
pnpm install
cp .env.example .env
node ace generate:key
node ace migration:run
pnpm run devOpen http://localhost:3333 and create the admin account.
Connect an AI client
Add your upstream servers from MCPs.
Open Access tokens, select Install MCP, and copy the OAuth configuration for your client.
When the client opens MyMCPs, sign in and approve the connection.
Revoke the generated OAuth connection from Access tokens when you want to stop it.
OAuth clients connect to https://your-domain.example/mcp without a manually copied token. Set
APP_URL to the instance's public HTTPS origin so discovery and authorization URLs are correct.
For clients without OAuth support, create a manual token and send it as
Authorization: Bearer <token> on every /mcp request.
Tools use {mcp-slug}__{tool-name} names in eager mode. Administrators can choose the instance default under Settings → My Instance; existing instances default to eager mode. Clients can override that default per request with either eager or lazy:
X-MyMCPs-Tool-Mode: lazyLazy mode exposes list_mcps, tool_search, and call_tool instead of loading every tool definition at once. The header takes precedence over the instance setting.
Upstream OAuth MCPs
For providers that support MCP OAuth discovery and dynamic client registration, choose OAuth when adding the server, save it, then select Connect OAuth. Set APP_URL to the instance's public HTTPS URL so callback URLs are generated correctly.
How to deploy to my Coolify
This repository includes a production Docker image, a Compose service, and a coolify.json profile.
In Coolify, create a project and add a Public Repository resource.
Paste
https://github.com/0xtlt/MyMCPsas the repository URL and select the branch you want to deploy.Use Docker Compose as the build pack and
/docker-compose.ymlas the Compose file. Coolify may fill these settings fromcoolify.json.Add a domain to the
mymcpsservice and setAPP_URLto the same HTTPS origin, for examplehttps://mcp.example.com.Deploy, open the domain, and complete onboarding.
The deployment exposes port 3333, checks /health, and runs database migrations before the app starts. The mymcps-data volume persists SQLite, encrypted secrets, the generated app key, and Deno sandbox data under /app/tmp.
APP_KEY is required, but you do not need to create it in Coolify. On the first start, the container generates a valid key, saves it to /app/tmp/app.key, and reuses it on every deploy. Back up the mymcps-data volume and do not rotate the key, or existing encrypted MCP credentials will become unreadable.
The Coolify profile sets TRUST_PROXY=true so logs use the forwarded client IP instead of the proxy's IP.
Useful commands
pnpm run dev # Start the development server
pnpm test # Run all tests
pnpm run lint # Check code style
pnpm run typecheck # Check TypeScript
pnpm run build # Create a production buildReleases
GitHub Actions publishes releases without an AI or an external release service:
Nightly release runs at 02:42 UTC and publishes a GitHub prerelease only when
mainhas moved since the previous nightly. Its semantic prerelease tag includes the UTC date and commit, for examplev0.1.1-nightly.20260808.gabc1234. It does not change the stable version inpackage.json.Stable release runs only when a repository maintainer starts it from Actions → Stable release → Run workflow and chooses a
patch,minor, ormajorincrement. It validates the application, updatespackage.jsonandCHANGELOG.md, commits the release, creates the stable tag, and publishes automatically generated GitHub release notes.
Both workflows use the repository-provided GITHUB_TOKEN; no release secret or AI service is required. If a run fails after pushing a release commit or tag, rerun the same stable workflow to resume publication instead of incrementing the version again.
Release container images
Each published release also produces a public OCI image for linux/amd64 and linux/arm64:
Stable releases:
ghcr.io/0xtlt/mymcps:stableand the exact release tag, such asghcr.io/0xtlt/mymcps:v0.1.2.Nightly releases:
ghcr.io/0xtlt/mymcps:nightlyand the exact prerelease tag, such asghcr.io/0xtlt/mymcps:v0.1.2-nightly.20260809.gabcdef0.
Pull a channel image and preserve /app/tmp, which contains SQLite data, encrypted secrets, the generated app key, and Deno sandbox data:
docker pull ghcr.io/0xtlt/mymcps:stable
docker run --name mymcps -p 3333:3333 \
-e APP_URL=http://localhost:3333 \
-e LOG_LEVEL=info \
-e SESSION_DRIVER=cookie \
-v mymcps-data:/app/tmp \
ghcr.io/0xtlt/mymcps:stableUse ghcr.io/0xtlt/mymcps:nightly in the same commands to test the nightly channel. The existing Docker Compose deployment continues to build from source.
After the first image publication, verify the package is anonymously pullable. If GHCR did not inherit the public repository visibility, open the package on GitHub, choose Package settings → Change package visibility → Public, and confirm the one-time change. No repository secret is required.
Stack
MyMCPs uses AdonisJS 7, Inertia, React 19, SQLite, the MCP TypeScript SDK, and Deno. See SECURITY.md for the deployment security baseline and vulnerability reporting process.
License
MIT © 2026 Thomas Tastet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseCqualityDmaintenanceA powerful gateway for the Model Context Protocol (MCP) that unifies AI toolchains by federating multiple MCP servers, wrapping REST APIs as MCP tools, and supporting multiple transport methods with an admin dashboard.1
- FlicenseNot gradedqualityDmaintenanceUnified local MCP AI Gateway that routes across Groq, OpenRouter, Mistral, and local Ollama providers, with OpenAI-compatible APIs, MCP tools, fallback/racing router, monitoring, and web dashboard.
- AlicenseNot gradedqualityCmaintenanceSelf-hosted MCP gateway that connects productivity tools like Jira, Confluence, and Obsidian to AI assistants via a single endpoint.2MIT
- AlicenseAqualityAmaintenanceA zero-dependency MCP gateway: host your own tools, forward and curate tools from other MCP servers, expose them leanly to cut agent token cost, and gate every call through your own policy hooks before it runs.2416928MIT
Related MCP Connectors
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Self-hosted federated MCP gateway: one OAuth 2.1 MCP server in front of N apps, user-level scopes.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xtlt/MyMCPs'
If you have feedback or need assistance with the MCP directory API, please join our Discord server