MetaMCP logo

MetaMCP

Routes long-tail MCP servers through discovery, lazy calls, and bounded declarative Methods.

Install MetaMCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "metamcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mentu/metamcp@latest"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y @mentu/metamcp@latest

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 4d ago.

Overview

The MetaMCP MCP server provides an on-demand gateway for configured child MCP servers through three stable tools. It searches live or cached schemas, invokes one explicitly named child tool, or runs a reviewed declarative Method with bounded execution and schema validation. Use it for irregular or long-tail MCP capabilities while keeping high-frequency, security-sensitive, or foundational servers connected directly. It runs over stdio or Streamable HTTP and requires Node.js 20 or newer.

Use cases

  • Discover long-tail MCP capabilities without starting every child server
  • Call one named tool on an irregular child server
  • Run reviewed multi-step acquisition and normalization workflows
  • Keep high-frequency or security-sensitive MCP servers connected directly

Key features

  • Three stable MCP tools for discovery, calls, and Methods
  • Lazy child-server startup
  • Cached and live tool-schema discovery
  • Bounded declarative Method execution
  • Stdio and Streamable HTTP transports
  • Controlled environment and secret handling

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

7/7 checks healthy over the last 45d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 9h ago via OSV.dev · @mentu/metamcp@latest (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars18Stargazers on the source repository.
npm downloads417Package downloads in the last 30 days.
Last commit27d agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How MetaMCP works

What the MetaMCP MCP server does

The MetaMCP MCP server reduces the number of tools exposed to an MCP client without requiring every configured child server to start at launch. It presents three stable tools: mcp_discover, mcp_call, and mcp_run.

mcp_discover searches configured servers, cached tool schemas, and reviewed Methods. A refresh can target one named server and retrieve its current live tool list. mcp_call starts a selected child only when needed and invokes one explicitly named tool with supplied arguments. mcp_run executes a declarative Method composed from reviewed child-tool steps.

This routing model fits irregular or long-tail capabilities. Frequently used, compact, foundational, strongly authenticated, or high-consequence services should remain direct MCP connections so their native schemas, authentication, and approval behavior remain visible.

How it works

Child servers are defined in an MCP configuration file. Their names become stable cache identities and must use letters, numbers, dots, underscores, or hyphens within the documented length range. Plain discovery reads configuration and cached schemas without starting every child. A child starts when explicitly refreshed, called, or used by a Method.

Methods are JSON manifests rather than arbitrary JavaScript. Each can define an input schema, ordered steps, dependencies, output mapping, read or write effects, interpolation, deadlines, and bounded resource limits. Execution provides a per-step trace. Write or mixed-effect Methods require the gateway to be started with --allow-writes. Calls are not automatically replayed after a timeout or transport failure; a Method may retry only where its manifest marks a step as safe to repeat.

The MetaMCP MCP server can use local keyword discovery by default. Setting METAMCP_VOYAGE_API_KEY opts into Voyage-backed semantic search and enables the optional local SQLite vector index. Ambient Anthropic or Voyage keys do not activate network access.

Setup and configuration

Node.js 20 or newer is required. Run the package with a configuration path, for example:

Terminal
npx @mentu/metamcp@latest --config .mcp.json

The configuration can define stdio children with commands and arguments, environment values, and an explicit inheritEnv list. It can also define remote children with url, transportType, headers, and OAuth fields. Environment references such as ${NAME} are resolved from the host environment; missing references stop startup rather than being passed through literally.

MetaMCP does not copy the full ambient environment to stdio children. Only its runtime allowlist, requested inherited variables, and explicitly configured child values are available. A custom SecretProvider can be supplied by an embedder for keychain or vault access.

Run metamcp tools or metamcp tools --json to inspect the exact model-facing tool definitions before configuring a client. The init command previews changes by default, writes only with --yes, and creates a backup when applying changes. Pinning a package version is recommended for controlled upgrades.

HTTP mode uses loopback by default:

bash
metamcp --transport http --port 8080 --config .mcp.json

Non-loopback unauthenticated binding fails closed. Exposed listeners require OAuth resource-server validation or METAMCP_HTTP_BEARER_TOKEN; browser origins must also be explicitly allowed.

Tools and capabilities

  • Discover configured servers, cached schemas, and Methods.
  • Refresh one named server without refreshing the entire configuration.
  • Lazily call a single child-server tool.
  • Run bounded, schema-validated declarative workflows.
  • Restrict write-capable Methods behind an operator flag.
  • Serve MCP clients over stdio and Streamable HTTP.
  • Record completed calls and Method attempts in the local ledger.

Limitations and notes

MetaMCP is not intended to replace every direct MCP connection. Routing sensitive infrastructure, billing, identity, or mutation-heavy services through it only to reduce tool count is discouraged by the project guidance. A refresh request without a server is rejected to prevent accidental fan-out. Remote HTTP exposure also requires deliberate authentication and origin configuration.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about MetaMCP

MetaMCP is an MCP server that connects an MCP client to configured child MCP servers through discovery, lazy tool calls, and declarative Methods. Its main tools are mcp_discover, mcp_call, and mcp_run, which find capabilities, invoke one named child tool, or execute a bounded workflow.

Install and run it with Node.js 20 or newer using `npx @mentu/metamcp@latest --config .mcp.json`. You can inspect its tools first with `npx @mentu/metamcp@latest tools` or `tools --json`, then add child-server definitions to the configuration file.

Yes, MetaMCP exposes a standard MCP interface that can be configured as a client server. The README provides a manual configuration pattern using an absolute configuration path and also documents an `init` command for named clients.

MetaMCP reads configuration and cached schemas for ordinary discovery without spawning all children. A child starts only when explicitly refreshed, called through `mcp_call`, or needed by a declarative Method.

Yes, MetaMCP supports Streamable HTTP as well as stdio. HTTP mode binds to `127.0.0.1` by default; non-loopback exposure requires authentication configuration, and browser requests require an explicitly allowed origin.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMetaMCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/metamcp?style=directory)](https://allmcps.com/mcp/metamcp)
HTML Embed
<a href="https://allmcps.com/mcp/metamcp"><img src="https://allmcps.com/api/badge/metamcp?style=directory" alt="MetaMCP on AllMCPs" /></a>