# MetaMCP [Health: Active]

**Category:** 🔗 Aggregators  
**Repository:** https://github.com/mentu-ai/metamcp  
**GitHub Stars:** 18  
**npm Downloads (last month):** 417  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/metamcp

## Description
Route long-tail MCP servers through three lazy tools and reviewed declarative Methods.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "metamcp": {
    "command": "npx",
    "args": ["-y","@mentu/metamcp@latest"]
  }
}
```

## Documentation

## 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:

```bash
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.

_Full upstream README: https://allmcps.com/mcp/metamcp/readme_

