loading…
Search for a command to run...
loading…
A universal MCP aggregator toolkit that connects AI agents to multiple MCP servers through a single unified configuration. Features ready-made templates, cross-
A universal MCP aggregator toolkit that connects AI agents to multiple MCP servers through a single unified configuration. Features ready-made templates, cross-repo prompt workflows, and an npm package for zero-config installation.universal MCP aggregator toolkit that connects AI agents to multiple MCP servers through a single unified configuration. Features ready-made templates, cross-repo prompt workflows, and an npm package for zero-config installation.
CI
License: MIT TypeScript pnpm npm
npm downloads
universal-mcp-toolkit MCP server
The canonical open-source monorepo for production-ready Model Context Protocol servers.
If you have ever wanted one place to find great MCP servers for GitHub, Slack, Notion, databases, cloud platforms, research sources, and local files without stitching together a dozen half-finished repos, this is it.
The fastest way to get going:
# See all 27 available servers
npx universal-mcp-toolkit list
# Interactive setup — pick your servers, choose transport, write config
npx universal-mcp-toolkit install
# Generate a Claude Desktop config snippet
npx universal-mcp-toolkit config --server github slack filesystem --target claude-desktop
# Run a server locally
npx universal-mcp-toolkit run github --transport stdio
# Check your environment before debugging
npx universal-mcp-toolkit doctor github
Or install globally:
npm install -g universal-mcp-toolkit
umt list
The MCP ecosystem is exploding, but the developer experience is still fragmented.
universal-mcp-toolkit fixes that with one opinionated, high-quality Turborepo:
.well-known/mcp-server.json server cards| Category | What you get |
|---|---|
| Core runtime | @universal-mcp-toolkit/core with typed tool registration, env loading, Zod validation, pino logging, stdio and HTTP+SSE runtime bootstrapping |
| Unified CLI | universal-mcp-toolkit with list, config, install, run, and doctor |
| Collaboration servers | GitHub, Notion, Slack, Linear, Jira, Discord, Trello |
| Productivity servers | Google Calendar, Google Drive |
| Media and commerce servers | Spotify, Stripe |
| Data servers | PostgreSQL, MongoDB, Redis, Supabase, Airtable |
| Platform servers | Vercel, Cloudflare Workers, Docker, npm Registry |
| Research and local servers | Hacker News, arXiv, FileSystem |
| Option | Breadth | DX quality | Shared architecture | Host config help | Documentation polish |
|---|---|---|---|---|---|
universal-mcp-toolkit |
27 servers in one monorepo | High | Yes | Yes | High |
| Single-service MCP repos | Narrow | Varies | No | Rarely | Varies |
| Personal one-off scripts | Very narrow | Low | No | No | Usually none |
| Server | Focus | Primary required env |
|---|---|---|
| GitHub | Repositories, pull requests, workflows, search | GITHUB_TOKEN |
| Notion | Pages, databases, structured docs | NOTION_TOKEN |
| Slack | Channels, history, messaging | SLACK_BOT_TOKEN |
| Linear | Issue triage and planning | LINEAR_API_KEY |
| Jira | Tickets, workflow transitions, incident triage | JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN |
| Google Calendar | Calendars, events, meeting workflows | GOOGLE_CALENDAR_ACCESS_TOKEN |
| Google Drive | Search, metadata, exports | GOOGLE_DRIVE_ACCESS_TOKEN |
| Spotify | Playback, search, playlists | SPOTIFY_ACCESS_TOKEN |
| Stripe | Customers, invoices, subscriptions | STRIPE_SECRET_KEY |
| PostgreSQL | Tables, schema inspection, guarded queries | POSTGRESQL_URL |
| MongoDB | Collections, document reads, aggregation | MONGODB_URI |
| Redis | Keys, TTLs, cache diagnostics | REDIS_URL |
| Supabase | Tables, storage, project access | SUPABASE_URL, SUPABASE_KEY |
| Vercel | Projects, deployments, environments | VERCEL_TOKEN |
| Cloudflare Workers | Workers, routes, edge rollouts | CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID |
| Docker | Containers, images, daemon state | none required |
| npm Registry | Search, metadata, versions, dist-tags | none required |
| Hacker News | Top stories, search, threads | none required |
| arXiv | Paper search and reading lists | none required |
| FileSystem | Safe local file search, reads, writes | FILESYSTEM_ROOTS |
| Discord | Guilds, channels, messages, members | DISCORD_BOT_TOKEN |
| Airtable | Tables, records, CRUD operations | AIRTABLE_API_KEY, AIRTABLE_BASE_ID |
| Trello | Boards, lists, cards, archiving | TRELLO_API_KEY, TRELLO_TOKEN |
| Playwright | Browser automation and web scraping | PLAYWRIGHT_BROWSERS_PATH (optional) |
| OpenAI | Chat completions, embeddings, and model queries | OPENAI_API_KEY |
Some servers also expose optional tuning variables such as POSTGRESQL_ALLOW_WRITES, REDIS_ALLOW_WRITES, MONGODB_ALLOW_WRITE_PIPELINES, VERCEL_TEAM_ID, or FILESYSTEM_MAX_READ_BYTES. The root .env.example includes the most useful knobs.
universal-mcp-toolkit/
├─ packages/
│ ├─ core/
│ └─ cli/
├─ servers/
│ ├─ github/
│ ├─ notion/
│ ├─ slack/
│ ├─ linear/
│ ├─ jira/
│ ├─ google-calendar/
│ ├─ google-drive/
│ ├─ spotify/
│ ├─ stripe/
│ ├─ postgresql/
│ ├─ mongodb/
│ ├─ redis/
│ ├─ supabase/
│ ├─ vercel/
│ ├─ cloudflare-workers/
│ ├─ docker/
│ ├─ npm-registry/
│ ├─ hackernews/
│ ├─ arxiv/
│ ├─ discord/
│ ├─ airtable/
│ ├─ trello/
│ └─ filesystem/
├─ turbo.json
├─ pnpm-workspace.yaml
└─ README.md
git clone https://github.com/Markgatcha/universal-mcp-toolkit.git
cd universal-mcp-toolkit
corepack pnpm install
corepack pnpm build
corepack pnpm --filter universal-mcp-toolkit exec umt list
corepack pnpm --filter universal-mcp-toolkit exec umt config --server github slack filesystem --target claude-desktop --mode workspace
corepack pnpm --filter universal-mcp-toolkit exec umt run github --transport stdio
corepack pnpm --filter universal-mcp-toolkit exec umt doctor github
The CLI is designed to feel like a real product, not a pile of scripts.
umt listSee every available server, grouped by category with required environment variables and descriptions.
umt configGenerate ready-to-paste JSON for Claude Desktop, Cursor, or any MCP-compatible host config flow.
umt installRun an interactive setup flow, choose servers, choose npx or workspace mode, write the result to disk, and save the profile for later reference.
umt runLaunch any built workspace server locally with stdio or HTTP+SSE transport.
The --supervise flag enables crash-loop detection and automatic restarts:
umt run github --transport stdio --supervise
If the server crashes 5 times within 60 seconds it stops retrying. Logs are written to the state directory under logs/<serverId>.log and can be tailed with umt logs <serverId>.
umt doctorCheck build output, config state, and required environment variables before you waste time debugging a missing token or missing dist file.
| Command | What it does |
|---|---|
umt status |
Show currently running umt server processes and their PIDs |
umt logs <server> |
Tail the log file for a specific server |
umt test <server> |
Run a live end-to-end MCP handshake test against a server |
umt search <query> |
Search available servers by name, description, and tags |
umt init |
Interactive setup wizard for new users |
umt update |
Check npm for a newer version of the CLI and optionally install it |
umt upgrade |
Check npm for newer versions of individual server packages |
umt export |
Export install profiles to a portable JSON file (no secrets included) |
umt export-config |
Export current server config in a specific client format |
umt link |
Link a local MemOS/ContextCore SQLite memory database |
umt profile create <name> |
Create a new named profile with interactive wizard |
umt profile show [name] |
Show profile configuration details |
umt profile export <name> |
Export a named profile to a JSON file |
umt profile import <path> |
Import a profile from a JSON file |
Paste a generated snippet into your Claude Desktop config file. On Windows, that is commonly:
%APPDATA%\Claude\claude_desktop_config.json
Example:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@universal-mcp-toolkit/server-github", "--transport", "stdio"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@universal-mcp-toolkit/server-filesystem", "--transport", "stdio"],
"env": {
"FILESYSTEM_ROOTS": "${FILESYSTEM_ROOTS}"
}
}
}
}
Generate the same mcpServers snippet and place it into the MCP config file you use for Cursor. The CLI keeps the format host-friendly and consistent, so the same generated JSON works well as a reusable snippet:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@universal-mcp-toolkit/server-slack", "--transport", "stdio"],
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}"
}
},
"linear": {
"command": "npx",
"args": ["-y", "@universal-mcp-toolkit/server-linear", "--transport", "stdio"],
"env": {
"LINEAR_API_KEY": "${LINEAR_API_KEY}"
}
}
}
}
Every server in the toolkit is designed around the same transport story:
stdio for local child-process integrationsHTTP+SSE for remote or browser-adjacent integrations.well-known/mcp-server.jsonThe shared core handles runtime bootstrapping, logging, env loading, and tool registration so every server behaves consistently.
@universal-mcp-toolkit/core is the part you will want to study if you are building your own MCP servers.
It includes:
ToolkitServer base classdefineTool<TInput, TOutput> helperloadEnv() for strict configuration validationHttpServiceClient for typed fetch-based integrationscreateServerCard() for discovery metadataparseRuntimeOptions() and runToolkitServer() for stdio and HTTP+SSE launch flows.well-known/This repo is meant to be the reference implementation developers point to when they ask:
The answer should be: clone this repo, run the CLI, read the core package, and adapt the parts you need.
corepack pnpm install
corepack pnpm build
corepack pnpm typecheck
corepack pnpm test
bun install
bun run build
bun run packages/cli/dist/index.js --version
Use Turbo filters when you only want to work on one package:
corepack pnpm --filter @universal-mcp-toolkit/core build
corepack pnpm --filter universal-mcp-toolkit typecheck
corepack pnpm --filter @universal-mcp-toolkit/server-github test
packages/coreShared runtime primitives and strict abstractions for server authors.
packages/cliThe operator console for listing, configuring, installing, running, and diagnosing the entire toolkit.
servers/*27 independently publishable MCP server packages that all share the same operational shape.
The monorepo is intentionally structured so it can grow without losing coherence.
Please read CODE_OF_CONDUCT.md before participating in issues, pull requests, reviews, or discussions. The project aims to stay both technically rigorous and welcoming to contributors at every experience level.
Pair universal-mcp-toolkit with MemOS for persistent, graph-based memory across agent sessions.
# Add persistent memory to your MCP agents
pip install memos
npm install @memos/sdk
MemOS acts as the memory layer for your MCP stack — every tool call, result, and context your agent produces can be stored, retrieved, and searched across restarts and sessions. A native MCP adapter is coming in MemOS v0.2.
| Layer | Tool | Role |
|---|---|---|
| Transport & Tools | universal-mcp-toolkit | MCP protocol, server registry, tool routing |
| Memory & Persistence | MemOS | Graph-based persistent memory across sessions |
| LLM Inference | Ollama / any LLM | Local model execution |
Building something with universal-mcp-toolkit? We'd love to know.
Open a Discussion and tell us:
You might get featured here.
If you've created a custom server, workflow, or integration using this toolkit as a base, open a PR to add it to the Wiki or start a Discussion. The best examples will be highlighted in the README.
MIT — see LICENSE for full terms.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"markgatcha-universal-mcp-toolkit": {
"command": "npx",
"args": []
}
}
}PRs, issues, code search, CI status
Database, auth and storage
Reference / test server with prompts, resources, and tools.
Secure file operations with configurable access controls.