mcp-meta
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp-meta
Expose dozens of MCP tools through two.
mcp-meta sits between your MCP client and any number of upstream MCP servers.
Instead of injecting every upstream tool schema into every request, it exposes
two tools:
Tool | Purpose |
| List servers, or one server's tools with compact signatures |
| Call one tool on one server |
Schemas are fetched lazily, only when the model asks for them.
Why
Tool definitions are paid for on every request. A handful of MCP servers is enough to add tens of thousands of characters of JSON schema before the model has read a single line of your prompt. Measured on a 14-server setup:
14 servers / 104 tools -> 142,746 characters per request
2 tools -> 892 characters per request (-99.4%)The model keeps full access to every upstream tool; it fetches the schema at the moment it needs it.
Related MCP server: fastmcp-gateway
Install
pipx install git+https://github.com/monkey-sking/mcp-meta
# or
uv tool install git+https://github.com/monkey-sking/mcp-metaPython 3.9+ and the standard library only. No dependencies.
Configure
Create ~/.config/mcp-meta/servers.json:
{
"servers": {
"calc": {
"url": "http://127.0.0.1:3425/mcp/calc"
},
"search": {
"url": "https://mcp.example.com/mcp",
"headers": { "Authorization": "Bearer ${SEARCH_TOKEN}" },
"timeout": 30
},
"memory": {
"command": ["npx", "-y", "@modelcontextprotocol/server-memory"],
"exclude": ["delete_entities"]
}
}
}Field | Meaning |
| HTTP endpoint of an upstream MCP server |
| Argv array for a stdio upstream, e.g. |
| Extra HTTP headers; values expand |
| Extra environment variables for a stdio upstream |
| Per-request timeout in seconds (default |
| Optional tool allowlist / denylist |
Config discovery order:
--config PATHMCP_META_CONFIG~/.config/mcp-meta/servers.json~/.config/magpie/library.json(compatibility fallback)
Magpie's library.json works directly, so an existing Magpie Library can be
used as the upstream list without editing it.
Use with an MCP client
Any client that speaks MCP over stdio can host it:
{
"mcpServers": {
"meta": {
"command": "mcp-meta",
"args": ["serve"]
}
}
}Or without installing:
{
"mcpServers": {
"meta": {
"command": "python3",
"args": ["-m", "mcp_meta", "serve"],
"cwd": "/path/to/mcp-meta"
}
}
}CLI
mcp-meta list # servers, transports, tool counts
mcp-meta call calc add '{"a": 2, "b": 3}'
mcp-meta serve --config ./servers.jsonlist and call are conveniences for debugging; the MCP client normally only
needs serve.
How it behaves
mcp_toolswithout aserverprints a cheap overview; with aserverit prints one line per tool, e.g.search(query: string, [limit: integer]), where brackets mark optional parameters.Tool lists are cached for 5 minutes per server. Pass
refresh: trueto bypass the cache.Upstream sessions are opened on first use and kept for the life of the process.
HTTP upstreams are supported both as plain JSON and as SSE responses, including
Mcp-Session-Idhandling.Protocol revisions are negotiated downward (
2025-06-18->2025-03-26->2024-11-05) so older servers still work.Tool errors are returned as tool output with
isError: truerather than killing the session.
Limits
The front end is stdio only (what desktop MCP clients expect).
mcp_callreturns text content; non-text blocks are serialized as JSON.Resources, prompts, and sampling are not proxied.
Before / after (this machine)
The project started as a 214-line personal script wrapping a Magpie Library. This is the measured difference on the machine it came from, with 14 upstream servers behind it:
Before | After | |
Implementation | one-off script at | package installed with |
Config source | hardcoded | own config, Magpie file as fallback |
Upstream transports | HTTP only | HTTP + stdio |
Registered as |
|
|
Tool schema per request | 104 tools, 142,746 chars | 2 tools, 892 chars (-99.4%) |
SSE handling | first | full multi-line SSE events |
HTTP session | none |
|
| ignored | followed to the last page |
Protocol negotiation | fixed | falls back across three revisions |
Tool filtering | none |
|
Tests | none | 15 (unit + HTTP/stdio integration + end-to-end) |
Development
python3 -m unittest discover -s tests -vLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Search, inspect and invoke every public tool on Invokera through one MCP connection.
Toolstile is a managed MCP gateway that connects remote MCP servers behind one endpoint, with per-agent permissions, shared accounts and activity logs. Connect at https://mcp.toolstile.com/mcp over Streamable HTTP with OAuth; sign in at https://toolstile.com, select a workspace and connect your upstream servers. Available tools, resources and prompts depend on that workspace and the agent's granted access.
Single-connection MCP gateway discovering and executing 490+ verified MCP & A2A tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceReduces LLM context window overhead by proxying multiple MCP servers through a few efficient dispatch tools instead of registering hundreds of individual tool schemas. It supports multi-account routing and tool discovery for both CLI-based and persistent MCP server configurations.MIT
- AlicenseNot gradedqualityAmaintenanceAggregates tools from multiple upstream MCP servers and exposes them through 4 meta-tools, enabling LLMs to discover and use hundreds of tools without loading all schemas upfront.469 PyPI3Apache 2.0
- AlicenseNot gradedqualityBmaintenanceExposes only two meta-tools that discover and invoke backend MCP servers on demand, reducing context bloat while keeping all configured tools available.155 npm2MIT
- AlicenseNot gradedqualityCmaintenanceEnables clients to connect once and access the union of multiple backend MCP servers' tools through a single unified interface, with namespaced tool routing, capability search, and health isolation.MIT