gcf-proxy 0.1.0__py3-none-win_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gcf_proxy/__init__.py +3 -0
- gcf_proxy/__main__.py +34 -0
- gcf_proxy/bin/gcf-proxy +0 -0
- gcf_proxy/bin/gcf-proxy.exe +0 -0
- gcf_proxy-0.1.0.dist-info/METADATA +98 -0
- gcf_proxy-0.1.0.dist-info/RECORD +9 -0
- gcf_proxy-0.1.0.dist-info/WHEEL +5 -0
- gcf_proxy-0.1.0.dist-info/entry_points.txt +2 -0
- gcf_proxy-0.1.0.dist-info/top_level.txt +1 -0
gcf_proxy/__init__.py
ADDED
gcf_proxy/__main__.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Entry point for `python -m gcf_proxy` and `gcf-proxy` CLI."""
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import sys
|
|
5
|
+
import subprocess
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _find_binary():
|
|
9
|
+
"""Locate the gcf-proxy binary bundled in this package."""
|
|
10
|
+
pkg_dir = os.path.dirname(os.path.abspath(__file__))
|
|
11
|
+
names = ["gcf-proxy.exe", "gcf-proxy"] if sys.platform == "win32" else ["gcf-proxy"]
|
|
12
|
+
for name in names:
|
|
13
|
+
path = os.path.join(pkg_dir, "bin", name)
|
|
14
|
+
if os.path.isfile(path):
|
|
15
|
+
return path
|
|
16
|
+
return None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def main():
|
|
20
|
+
binary = _find_binary()
|
|
21
|
+
if binary is None:
|
|
22
|
+
print(
|
|
23
|
+
"gcf-proxy: binary not found. This platform may not be supported.\n"
|
|
24
|
+
"Install from https://github.com/blackwell-systems/gcf-proxy/releases",
|
|
25
|
+
file=sys.stderr,
|
|
26
|
+
)
|
|
27
|
+
sys.exit(1)
|
|
28
|
+
|
|
29
|
+
result = subprocess.run([binary] + sys.argv[1:])
|
|
30
|
+
sys.exit(result.returncode)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
if __name__ == "__main__":
|
|
34
|
+
main()
|
gcf_proxy/bin/gcf-proxy
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gcf-proxy
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: MCP proxy that re-encodes JSON tool responses as GCF. Zero code changes.
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://github.com/blackwell-systems/gcf-proxy
|
|
7
|
+
Project-URL: Documentation, https://gcformat.com/
|
|
8
|
+
Project-URL: Repository, https://github.com/blackwell-systems/gcf-proxy
|
|
9
|
+
Keywords: gcf,mcp,proxy,llm,tokens,json,wire-format,graph-compact-format,toon-alternative,agent,ai
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
14
|
+
Requires-Python: >=3.8
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
# gcf-proxy
|
|
18
|
+
|
|
19
|
+
MCP proxy that re-encodes JSON tool responses as [GCF](https://gcformat.com/) — the most token-efficient wire format for LLMs. Drop-in, zero code changes. A TOON/JSON alternative that saves 63-79% of tokens.
|
|
20
|
+
|
|
21
|
+
**79% fewer tokens than JSON. 34% fewer than TOON. 100% LLM comprehension at scale.**
|
|
22
|
+
|
|
23
|
+
Docs: [gcformat.com](https://gcformat.com/) · [Proxy Guide](https://gcformat.com/guide/proxy.html) · [Playground](https://gcformat.com/playground.html) · [GCF vs TOON](https://gcformat.com/guide/vs-toon.html)
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pip install gcf-proxy
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Setup (one line change)
|
|
32
|
+
|
|
33
|
+
**Before:**
|
|
34
|
+
```json
|
|
35
|
+
{"mcpServers": {"yours": {"command": "your-mcp-server"}}}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**After:**
|
|
39
|
+
```json
|
|
40
|
+
{"mcpServers": {"yours": {"command": "gcf-proxy", "args": ["your-mcp-server"]}}}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Your server keeps outputting JSON. The LLM receives GCF. Nothing else changes.
|
|
44
|
+
|
|
45
|
+
Works with Claude Code, Claude Desktop, VS Code, Cursor, and any MCP client.
|
|
46
|
+
|
|
47
|
+
## What it does
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
LLM ←── GCF ←── gcf-proxy ←── JSON ←── Your Server
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
1. Spawns your MCP server as a subprocess
|
|
54
|
+
2. Proxies stdin/stdout between client and server
|
|
55
|
+
3. Detects JSON payloads in tool responses
|
|
56
|
+
4. Re-encodes as GCF (graph profile for code intelligence, tabular profile for everything else)
|
|
57
|
+
5. Non-convertible responses (text, HTML, errors) pass through unchanged
|
|
58
|
+
|
|
59
|
+
## Savings
|
|
60
|
+
|
|
61
|
+
Tested on a real MCP tool response (10 symbols, 8 edges):
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
JSON 2,506 bytes ~626 tokens
|
|
65
|
+
GCF 916 bytes ~229 tokens
|
|
66
|
+
|
|
67
|
+
Savings: 63% fewer tokens
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
On a real agent-lsp blast_radius response (7 symbols, 47 callers):
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
JSON 6,515 bytes ~1,628 tokens
|
|
74
|
+
GCF 4,866 bytes ~1,216 tokens
|
|
75
|
+
|
|
76
|
+
Savings: 25% fewer tokens (generic encoding, no graph profile)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## When to use
|
|
80
|
+
|
|
81
|
+
- You can't modify the server (third-party binary, another team's code)
|
|
82
|
+
- You want to test GCF savings without writing any code
|
|
83
|
+
- You want zero-effort adoption on any existing MCP server
|
|
84
|
+
|
|
85
|
+
For session deduplication (92.7% savings) and delta encoding (81.2% savings), use the [GCF libraries](https://gcformat.com/ecosystem/implementations.html) directly.
|
|
86
|
+
|
|
87
|
+
## Also available on
|
|
88
|
+
|
|
89
|
+
- npm: `npm install -g @blackwell-systems/gcf-proxy`
|
|
90
|
+
- Go: `go install github.com/blackwell-systems/gcf-proxy@latest`
|
|
91
|
+
|
|
92
|
+
## Links
|
|
93
|
+
|
|
94
|
+
- [Full Setup Guide](https://gcformat.com/guide/proxy.html)
|
|
95
|
+
- [GCF Specification](https://gcformat.com/reference/spec.html)
|
|
96
|
+
- [GCF vs TOON](https://gcformat.com/guide/vs-toon.html)
|
|
97
|
+
- [Playground](https://gcformat.com/playground.html)
|
|
98
|
+
- [GitHub](https://github.com/blackwell-systems/gcf-proxy)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
gcf_proxy/__init__.py,sha256=m19HWzImP7q27mPT9rfel3IxkrfbPq3uJs06F0L-Yy8,94
|
|
2
|
+
gcf_proxy/__main__.py,sha256=p_hS-zjAJIbrwGyep5Di4Num3OItMFFkQan5svuvqHg,912
|
|
3
|
+
gcf_proxy/bin/gcf-proxy,sha256=uF1LOgR1aLkeWjFm5c289kLHRluzPrrreA2MR4MV3yA,2293922
|
|
4
|
+
gcf_proxy/bin/gcf-proxy.exe,sha256=9fT98b4zp3F1HwX_eYw3FbavNNldkkt42UAgHAx-zBM,2350592
|
|
5
|
+
gcf_proxy-0.1.0.dist-info/METADATA,sha256=fGAuQiLh2KoukRHVOa6nRZ-mZE_8fE23GvGqnAcmi0o,3257
|
|
6
|
+
gcf_proxy-0.1.0.dist-info/WHEEL,sha256=84gBEa4fGSDR6CJj9KMeLIZ46AIp14gh61YGBn-qQNM,97
|
|
7
|
+
gcf_proxy-0.1.0.dist-info/entry_points.txt,sha256=5pvH_BpGkA4uLJfEqvr8mECISeMUNPCQR68NlNEtgWE,54
|
|
8
|
+
gcf_proxy-0.1.0.dist-info/top_level.txt,sha256=m77ZdgC0PEweaEArCCDXNDzDS5RRrTyGFPttWPf2byI,10
|
|
9
|
+
gcf_proxy-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gcf_proxy
|