MCP proxy that re-encodes JSON tool responses as GCF. Zero code changes.
Project description
gcf-proxy
MCP proxy that re-encodes JSON tool responses as GCF — the most token-efficient wire format for LLMs. Drop-in, zero code changes. A TOON/JSON alternative that saves 63-79% of tokens.
79% fewer tokens than JSON. 34% fewer than TOON. 100% LLM comprehension at scale.
Docs: gcformat.com · Proxy Guide · Playground · GCF vs TOON
Install
pip install gcf-proxy
Setup (one line change)
Before:
{"mcpServers": {"yours": {"command": "your-mcp-server"}}}
After:
{"mcpServers": {"yours": {"command": "gcf-proxy", "args": ["your-mcp-server"]}}}
Your server keeps outputting JSON. The LLM receives GCF. Nothing else changes.
Works with Claude Code, Claude Desktop, VS Code, Cursor, and any MCP client.
What it does
LLM ←── GCF ←── gcf-proxy ←── JSON ←── Your Server
- Spawns your MCP server as a subprocess
- Proxies stdin/stdout between client and server
- Detects JSON payloads in tool responses
- Re-encodes as GCF (graph profile for code intelligence, tabular profile for everything else)
- Non-convertible responses (text, HTML, errors) pass through unchanged
Savings
Tested on a real MCP tool response (10 symbols, 8 edges):
JSON 2,506 bytes ~626 tokens
GCF 916 bytes ~229 tokens
Savings: 63% fewer tokens
On a real agent-lsp blast_radius response (7 symbols, 47 callers):
JSON 6,515 bytes ~1,628 tokens
GCF 4,866 bytes ~1,216 tokens
Savings: 25% fewer tokens (generic encoding, no graph profile)
When to use
- You can't modify the server (third-party binary, another team's code)
- You want to test GCF savings without writing any code
- You want zero-effort adoption on any existing MCP server
For session deduplication (92.7% savings) and delta encoding (81.2% savings), use the GCF libraries directly.
Also available on
- npm:
npm install -g @blackwell-systems/gcf-proxy - Go:
go install github.com/blackwell-systems/gcf-proxy@latest
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gcf_proxy-0.1.0-py3-none-win_arm64.whl.
File metadata
- Download URL: gcf_proxy-0.1.0-py3-none-win_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbc94568289c623ac5443cf269efb53694fe3243d583346585386d1a69fdefdd
|
|
| MD5 |
371ba2c55ede5c2f02309ac3782e69ea
|
|
| BLAKE2b-256 |
6f042755b41f3130edf4c25e5b3d059ff8f4f97c287481b767da1843b854da6f
|
File details
Details for the file gcf_proxy-0.1.0-py3-none-win_amd64.whl.
File metadata
- Download URL: gcf_proxy-0.1.0-py3-none-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d84d61c5cce05d3b21c21d648cc149f04f594661b1fe72be61197e430af04439
|
|
| MD5 |
8ad35b923d09e9b10de1b905180aa78f
|
|
| BLAKE2b-256 |
29bcd2976b2400899933cfb006a7edb24363bf1438729d4a493235c743e98402
|
File details
Details for the file gcf_proxy-0.1.0-py3-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: gcf_proxy-0.1.0-py3-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8625bc420ad626882eb3ec8b5a2c7cbd1fff7f8570a5ef04f6082ccc59b49914
|
|
| MD5 |
421f92eca0c6d4a6c883b0843eddfcad
|
|
| BLAKE2b-256 |
e8a6874ea554d456d936731e8a564e8ed556f6f0c11f3c95aa60eb04d0891d36
|
File details
Details for the file gcf_proxy-0.1.0-py3-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: gcf_proxy-0.1.0-py3-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a04a4fe373e1b3b323baf56bc95a8393b94c738c893bb130e1c5458824277057
|
|
| MD5 |
5371a66e8f14f7b6c4744eb2b7052af4
|
|
| BLAKE2b-256 |
e368ca4999bd4739b4ef83044251a2dc1c18776bcfc4df53117dd28c26b52988
|
File details
Details for the file gcf_proxy-0.1.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: gcf_proxy-0.1.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55670c83a75791c4715abce067cb8a8e5de266055f3ca8eb36e8b7bdc5ef5f52
|
|
| MD5 |
2f3e86aa530861b672b281886a9964f0
|
|
| BLAKE2b-256 |
010612a25474917a00bdf35fd71eed1bed0751c0798043763610d477740cfc26
|
File details
Details for the file gcf_proxy-0.1.0-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: gcf_proxy-0.1.0-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fedb97097cd58bca5635ade88585cd7bb1ee9523c8c40403adf0b60c9e28630e
|
|
| MD5 |
742fbdd5f9ccaae9ac8ed3ac11bd63a1
|
|
| BLAKE2b-256 |
39c2c1d4f42609578c0e5c26f0499d274110ef610a0f141cee6aa3d6eef49358
|