Skip to content

Quickstart

This quickstart uses a local MCP server command. Replace it with any stdio MCP server command or a remote streamable HTTP MCP URL.

Start a compressed MCP proxy

mcp-compressor -c medium -- python server.py

MCP clients connected to this process see compressed tools instead of the full backend tool list.

from mcp_compressor import CompressorClient

with CompressorClient(
    servers={"local": {"command": "python", "args": ["server.py"]}},
    compression_level="medium",
) as proxy:
    print([tool.name for tool in proxy.tools])
    result = proxy.invoke("myTool", {"arg": "value"})
    print(result)
import { CompressorClient } from "@atlassian/mcp-compressor";

const client = new CompressorClient({
  servers: { local: { command: "python", args: ["server.py"] } },
  compressionLevel: "medium",
});

const proxy = await client.connect();
try {
  console.log(proxy.tools.map((tool) => tool.name));
  console.log(await proxy.invoke("myTool", { arg: "value" }));
} finally {
  proxy.close();
}
use mcp_compressor::compression::CompressionLevel;
use mcp_compressor::sdk::{CompressorClient, ServerConfig};
use serde_json::json;

let proxy = CompressorClient::builder()
    .server("local", ServerConfig::command("python").arg("server.py"))
    .compression_level(CompressionLevel::Medium)
    .build()
    .connect()
    .await?;

let result = proxy.invoke("myTool", json!({ "arg": "value" })).await?;

Remote MCP server

For a remote streamable HTTP backend, pass a URL. If the server requires OAuth and no explicit Authorization header is provided, mcp-compressor starts the OAuth flow.

mcp-compressor -c medium -- https://mcp.example.com/v1/mcp
with CompressorClient(
    servers={"remote": {"url": "https://mcp.example.com/v1/mcp"}},
    compression_level="medium",
) as proxy:
    print(proxy.tools)
const proxy = await new CompressorClient({
  servers: { remote: { url: "https://mcp.example.com/v1/mcp" } },
  compressionLevel: "medium",
}).connect();
let proxy = CompressorClient::builder()
    .server("remote", ServerConfig::url("https://mcp.example.com/v1/mcp"))
    .compression_level(CompressionLevel::Medium)
    .build()
    .connect()
    .await?;