MCP Compact
# MCP Compact
MCP Compact aggregates multiple upstream MCP servers into one stdio-only runtime with a single compact surface.
## What It Is
MCP Compact runs as one MCP server over `stdio` and exposes only `invoke` and `read`.
## Use From An MCP Client
MCP Compact runs as a stdio MCP server. It does not expose HTTP or `/mcp`.
Configure your MCP client to launch it like this:
```json
{
"mcpServers": {
"mcp_compact": {
"command": "uv",
"args": ["run", "mcp-compact", "config.example.json"]
}
}
}
```
If you want to start it manually, run:
```bash
uv run mcp-compact config.example.json
```
## Upstream Config
`config.example.json` is the config file consumed by `mcp-compact` itself:
```json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
}
}
}
```
All upstreams must use `stdio`.
## Test
```bash
uv run ruff check src/mcp_compact tests
uv run mypy src/mcp_compact
uv run pytest tests/ -q
```
TDQS
Scored across 2 tools
The two tools are clearly separated by purpose: invoke handles tool calls and read handles resource access. The descriptions provide explicit examples and modes to guide usage, though the generic proxy nature could occasionally blur the line between a tool and a resource.
Both tool names are single-word verbs in a consistent imperative style, making them predictable and easy to remember. There is no mixing of conventions or misleading synonyms.
With only two tools, the set is intentionally minimal but well-suited for a compact projection surface that forwards to a larger MCP ecosystem. While it feels thin compared to direct-integration servers, its purpose justifies the small count.
The server covers the core interaction patterns (invoking tools and reading resources) and includes validation/preview modes. However, it lacks an explicit discovery mechanism to list available servers, tools, or resource templates, which could be a significant gap for agents without prior knowledge.