Skip to main content
Glama
trac3r00

mcp-compressor

by trac3r00

mcp-compressor

MCP Compression Proxy service for PVE.

Wraps any existing MCP server and reduces tool-description token usage by exposing only a tiny discovery interface to the agent:

  • list_tools() — compact list of {name, brief_description}

  • get_tool_schema(tool_name) — full JSON schema + docs for one tool (cached)

  • invoke_tool(tool_name, arguments) — execute and return result

  • get_server_info() — metadata about connected upstream servers

Upstream tools are namespaced as mcp__<server>__<tool> to avoid collisions across servers.

Quick start

CLI / uvx mode (single upstream)

# stdio command upstream
uvx mcp-compressor "npx -y @modelcontextprotocol/server-filesystem /tmp"

# SSE URL upstream
uvx mcp-compressor "http://localhost:8080/sse" --server-name fetch --transport stdio

Service mode (multi-upstream)

Create config.yaml:

servers:
  - name: filesystem
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    cache_ttl: 300
    max_tools: 100

  - name: fetch
    url: http://localhost:8080/sse
    cache_ttl: 300
    max_tools: 50

cache_ttl: 300
max_tools: 100
log_level: INFO
host: 127.0.0.1
port: 8000
transport: sse

Run:

uvx mcp-compressor --config config.yaml --transport sse

Or install as a systemd service on PVE:

uv pip install -e .
mcp-compressor --config /etc/mcp-compressor.yaml --transport sse

Related MCP server: mcp-compressor

Configuration

Option

Env / CLI

Default

Description

servers

--config

[]

List of upstream MCP servers

cache_ttl

--cache-ttl

300

Schema cache TTL in seconds

max_tools

--max-tools

100

Safety cap per upstream server

transport

--transport

stdio

stdio, sse, or streamable-http

host

--host

127.0.0.1

Bind host for SSE/HTTP

port

--port

8000

Bind port for SSE/HTTP

log_level

--log-level

INFO

Log level

Each upstream server accepts either:

  • command + args + optional env for stdio MCP servers

  • url for SSE MCP servers

Hermes / Bob mcp.json example

{
  "mcpServers": {
    "compressor": {
      "command": "uvx",
      "args": [
        "mcp-compressor",
        "npx -y @modelcontextprotocol/server-filesystem /tmp"
      ]
    }
  }
}

For service mode:

{
  "mcpServers": {
    "compressor": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

How it works

  1. The proxy connects to every configured upstream MCP server on startup.

  2. list_tools returns a short, stable list of namespaced names and one-line descriptions.

  3. When the agent calls get_tool_schema, the proxy fetches the full schema for that single tool from the upstream server and caches it for cache_ttl seconds.

  4. invoke_tool forwards the call to the correct upstream server with the original tool name and returns the result.

This keeps the agent context small while preserving the full MCP contract.

Development

uv sync --extra dev
uv run pytest
uv run ruff check src tests
uv run mypy src

License

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    A configurable proxy that filters GitHub MCP server tools via YAML whitelist, reducing context consumption from 100+ tools to only the ones you need while providing meta-tools to discover available functionality.
    MIT
  • A
    license
    -
    quality
    A
    maintenance
    A proxy server that wraps existing MCP servers to significantly reduce token consumption by compressing tool descriptions into a two-step interface. It enables users to integrate extensive toolsets without exceeding context limits or incurring high API costs.
    105
    Apache 2.0
  • F
    license
    -
    quality
    C
    maintenance
    MCP proxy that bundles flat tool lists into hierarchical subcommand groups to reduce context token usage, supporting multi-server aggregation and auto-generated help from tool schemas.

View all related MCP servers

Related MCP Connectors

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • Search and browse every MCP server in the Model Context Protocol registry.

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/trac3r00/mcp-compressor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server