MCP Capability Matchmaker
An MCP gateway and offline catalog CLI that aggregates multiple upstream MCP servers into a single stdio endpoint, and provides tool recommendation and catalog inspection without connecting to upstreams.
README
MCP Capability Matchmaker
MCP Capability Matchmaker is an MCP gateway and an offline catalog CLI. The gateway reads a trusted catalog, starts or connects to the configured upstream MCP servers, discovers their live tools, and exposes those tools through one stdio MCP endpoint. The CLI remains useful for importing, inspecting, and ranking catalog metadata without connecting to any upstream.
Gateway quick start
Install and build once:
npm install
npm run build
Configure an MCP client with the gateway entry point:
{
"mcpServers": {
"capability-gateway": {
"command": "node",
"args": [
"/absolute/path/to/mcp-capability-matchmaker/dist/mcp-server.js",
"--catalog",
"/absolute/path/to/catalog.json"
]
}
}
}
The package also installs the equivalent executable alias
mcp-capability-gateway (the historical mcp-capability-matchmaker alias is
retained). For local development:
npm run dev:mcp -- --catalog examples/catalog.json
The gateway connects all configured upstreams in parallel. A healthy upstream
is still available when another one fails. Discovered tools are published as
server__tool; names are normalized and made unique when necessary. Calls to
those tools are forwarded to the original upstream tool with its JSON Schema,
annotations, output schema, and result content preserved.
The gateway also exposes two built-in read-only tools:
| MCP tool | Purpose |
|---|---|
gateway__recommend_tools |
Recommend a small, explainable set from currently connected tools |
gateway__inspect_catalog |
Report configured upstreams, connection state, live tool counts, and metadata gaps |
The gateway uses stdio for its downstream interface. Upstreams may use either
stdio or Streamable HTTP. HTTP authentication belongs in headers. Every
env or headers value must be a complete ${ENV_VAR} placeholder resolved
from the gateway process environment. Missing variables disable only the
affected upstream and are never returned in status or error messages.
Catalog format
Catalog files use version: 1. tools is optional in the gateway workflow and
defaults to an empty array: live tools/list results are authoritative. Static
tools are still useful to the offline CLI for ranking and metadata review.
{
"version": 1,
"servers": [
{
"name": "linear",
"description": "Read and update Linear issues.",
"transport": {
"command": "npx",
"args": ["-y", "@example/linear-mcp"],
"env": { "LINEAR_API_KEY": "${LINEAR_API_KEY}" }
},
"tools": []
},
{
"name": "slack",
"transport": {
"url": "https://mcp.example.com/slack",
"headers": { "Authorization": "${SLACK_AUTHORIZATION}" }
},
"tools": []
}
]
}
Each transport is either stdio (command, optional args and env) or
Streamable HTTP (url, optional headers). Treat a catalog as executable
configuration: starting the gateway can execute local commands and make
network requests.
Offline CLI
The mcp-match CLI never starts, connects to, or executes an MCP server. It
normalizes registry exports, checks metadata quality, and produces an
explainable tool recommendation.
node dist/cli.js index examples/registry-export.json --output catalog.json
node dist/cli.js inspect --catalog catalog.json
node dist/cli.js recommend \
"Read Linear issue ENG-42, modify the GitHub repository, then notify Slack" \
--catalog catalog.json
Commands:
| Command | Purpose |
|---|---|
mcp-match index <input> |
Normalize JSON/YAML catalog data from a file or URL |
mcp-match inspect -c <catalog> |
Report catalog size and metadata quality |
mcp-match recommend <task> -c <catalog> |
Select and explain a minimal tool set |
Output formats are markdown, json, claude, cursor, and codex.
Runtime boundaries
- Only Tools are proxied in this release; Resources, Prompts, Sampling, Elicitation, and task-based execution are not gateway features.
- There is no gateway-level automatic reconnect. Streamable HTTP transport may perform its own short-lived reconnects.
- The gateway downstream transport is stdio only; HTTP gateway serving, production authentication, auditing, and rate limiting are out of scope.
- A failed upstream is isolated and reported by the inspection tool. A failed refresh keeps its last known tool snapshot until the connection closes.
Development
npm install
npm run check
MIT licensed. See CONTRIBUTING.md and SECURITY.md.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.