@aiwerk/mcp-catalog
v1.2.0
Published
MCP server catalog — searchable directory of MCP server recipes
Readme
@aiwerk/mcp-catalog
Searchable directory of MCP server recipes, served as an MCP server. Any AI agent can discover, inspect, and download MCP server configs natively — through tool calls.
Works with Claude Desktop, Cursor, Windsurf, Cline, OpenClaw, MCP Bridge, or any MCP client.
Why?
Setting up MCP servers means finding the right package, writing config JSON, figuring out env vars. Every time.
MCP Catalog makes this discoverable:
- 4 MCP tools: search, info, download, activate — all callable by AI agents
- Weighted search: name, keywords, description, tool names, tags — all scored and ranked
- 12 pre-seeded servers: popular MCP servers ready to go
- Multi-language keywords: English + German (more coming)
- Two transports: stdio (default) or Streamable HTTP
Install
npm install -g @aiwerk/mcp-catalogQuick Start
# Start (stdio mode — connects to any MCP client)
mcp-catalogOn first start, the catalog auto-seeds from bundled recipes if the database is empty.
Use with Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"catalog": {
"command": "npx",
"args": ["-y", "@aiwerk/mcp-catalog"]
}
}
}Use with Cursor / Windsurf
Add to your MCP config:
{
"mcpServers": {
"catalog": {
"command": "npx",
"args": ["-y", "@aiwerk/mcp-catalog"]
}
}
}Use with MCP Bridge
Add to your ~/.mcp-bridge/config.json:
{
"servers": {
"aiwerk-catalog": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@aiwerk/mcp-catalog"],
"description": "MCP server catalog — searchable directory of MCP server recipes"
}
}
}MCP Tools
catalog_search
Search for MCP servers by keyword, category, or transport type.
{
"query": "payment",
"category": "finance",
"transport": "stdio"
}Returns ranked results:
{
"results": [
{
"name": "stripe",
"description": "payments & billing",
"category": "finance",
"badges": ["stdio", "auth-required"],
"transport": "stdio",
"authRequired": true,
"authType": "api-key",
"downloads": 42
}
]
}catalog_info
Get full recipe details for a specific server.
{ "name": "stripe" }Returns complete config: command, args, env vars, credentials URL, homepage, keywords, tool names, and more.
catalog_download
Download a server recipe (returns full config JSON + increments download counter).
{ "name": "github" }catalog_activate
Activate a server on the hosted bridge (coming in Phase 4).
{ "name": "todoist" }Search Scoring
Results are ranked by weighted scoring across multiple fields:
| Match type | Weight | Example |
|-----------|--------|---------|
| Exact name | 1.0 | "github" → github server |
| Name prefix | 0.9 | "goo" → google-maps |
| Keyword | 0.8 | "zahlungen" → stripe, wise |
| Description | 0.6 | "web scraping" → apify |
| Tool name | 0.5 | "issues" → github |
| Tag | 0.4 | "productivity" → todoist, linear, miro |
Category aliases also work: searching "developer" filters to developer-tools category.
Pre-seeded Servers
| Server | Category | Transport | Auth | |--------|----------|-----------|------| | apify | search | streamable-http | API key | | github | developer-tools | stdio | API key | | google-maps | maps | stdio | API key | | hetzner | cloud | stdio | API key | | hostinger | hosting | stdio | API key | | linear | productivity | stdio | API key | | miro | productivity | stdio | API key | | notion | productivity | stdio | API key | | stripe | finance | stdio | API key | | tavily | search | stdio | API key | | todoist | productivity | stdio | API key | | wise | finance | stdio | API key |
CLI Reference
| Command | Behavior |
|---------|----------|
| mcp-catalog | Start stdio MCP server (default) |
| mcp-catalog serve | Start Streamable HTTP MCP server |
| mcp-catalog --http | Start Streamable HTTP MCP server |
| mcp-catalog seed [path] | Seed recipe data (optional directory override) |
| mcp-catalog --version | Print package version |
| mcp-catalog --help | Show usage |
HTTP Port
mcp-catalog --http --port 3200 # CLI arg
MCP_CATALOG_PORT=3200 mcp-catalog serve # environment variableDefault HTTP port is 3100.
Tech Stack
- TypeScript + Node.js
- SQLite (better-sqlite3) with FTS5 for full-text search
- MCP SDK (@modelcontextprotocol/sdk)
- Zod for parameter validation
Development
git clone https://github.com/AIWerk/mcp-catalog.git
cd mcp-catalog
npm install
# Seed the database manually (optional; startup auto-seeds if needed)
npm run seed
# Run tests
npm test
# Dev mode
npm run dev
# Build
npm run buildArchitecture
┌─────────────────┐ ┌──────────────────────────────────────┐
│ Claude Desktop │ │ MCP Catalog │
│ Cursor │◄───►│ │
│ MCP Bridge │stdio│ ┌────────────┐ ┌───────────────┐ │
│ Any MCP client │ or │ │ 4 MCP Tools│ │ SQLite + FTS5 │ │
│ │http │ │ │──│ │ │
└─────────────────┘ │ │ search │ │ 12 recipes │ │
│ │ info │ │ weighted │ │
│ │ download │ │ scoring │ │
│ │ activate │ │ │ │
│ └────────────┘ └───────────────┘ │
└──────────────────────────────────────┘Related
- @aiwerk/mcp-bridge — Multiplex multiple MCP servers into one interface
- @aiwerk/openclaw-mcp-bridge — OpenClaw plugin for MCP Bridge
- MCP Specification — Model Context Protocol spec
License
MIT — AIWerk
