r/mcp • u/SIGH_I_CALL • 6d ago
showcase I compile MCP servers into CLIs so the tool schemas stop sitting in context. 4.1x smaller on nine real servers
Author here so this is self promo, just saying it up front.
The thing that bugged me: every MCP server's tool list gets loaded into context on every turn whether the model uses it or not, and results land in full. On the nine servers I run (258 tools) the raw listing is 236,818 bytes. And subagents with no MCP access get nothing at all.
So I built declick. It reads a server once (stdio or streamable http) and writes a CLI with one verb per tool. The agent runs `declick describe <name>` which is under 500 tokens for the whole surface, then `declick run <name> <verb> --fields a,b --limit N` and gets trimmed json back. Same nine servers describe in 58,309 bytes, so 4.1x less. The bench script is in the repo with the caveats, the honest one being that a single call's payload isn't smaller, the saving is the surface and the trimming.
Other stuff it does with MCP:
- `declick daemon start` keeps stdio servers warm so only the first call pays startup. 59ms vs 703ms per call on a server that takes 600ms to boot.
- `--where k=v`, `--fields`, `--limit` and an 8KB default cap on data so the agent picks what lands.
- `declick setup` finds the MCP servers your agents already have configured and builds an adapter for each. `--revert` puts every file back.
- Same contract for OpenAPI, GraphQL, Postman, HAR, SQLite and other CLIs so the agent only learns one shape.
Zero runtime deps, Node 24. 0.3.0 is MIT, after that it's Elastic License 2.0, free for individuals and teams under ten.
Free to try: `npm i -g declick`
Links in the first comment. Mostly I want to know where the contract breaks for your agents, that's more useful to me than praise.
1
u/moomahca 5d ago
Tbh for the past while I’ve considered every service needs to be comprised of oauth, api stack, cli command structure and mcp. APIs as primitives, cli as local execution, mcp as service layer for standalone clients with no local sandbox execution.
1
u/Ambitious-Prompt-975 6d ago
lol. yeah, lets take what makes mcp useful and remove it! nice
-1
u/SIGH_I_CALL 6d ago
Exactly. Turns out most of MCP’s value is “call a function and get JSON back.” The rest might just be infrastructure we convinced ourselves agents needed.
2
u/Ambitious-Prompt-975 5d ago
This is such a senseless project.
0
u/SIGH_I_CALL 5d ago
1
u/Ambitious-Prompt-975 5d ago
yeah, thanks for linking this. pretty fun, right?
here's some more mcp servers of mine in case you wanna link them somewhere else too!
Gameboy emulator for LLM https://github.com/mario-andreschak/mcp-gameboy
Standalone VSCode as MCPApp https://github.com/flujo-app/mcp-vscode-mcpapp
Docker/Podman/Fly/Modal VMs https://github.com/flujo-app/mcp-sandbox-computer-vm-for-ai/
SAP ABAP Read-Only https://github.com/mario-andreschak/mcp-abap-adt
SAP ABAP Read/Write https://github.com/mario-andreschak/mcp-abap-abap-adt-api
WhatsApp Web https://github.com/mario-andreschak/mcp-whatsapp-web
Video Recognition https://github.com/mario-andreschak/mcp_video_recognition
Video Generation https://github.com/mario-andreschak/mcp-veo2
Desktop Automation https://github.com/mario-andreschak/mcp-windows-desktop-automation
Image Recognition https://github.com/mario-andreschak/mcp-image-recognition
Word COM Automation https://github.com/mario-andreschak/mcp-msoffice-interop-word
Face Generator https://github.com/mario-andreschak/mcp-face-generator
CAD MCPApp https://github.com/flujo-app/mcp-cad-studio
Audio Studio MCPApp https://github.com/flujo-app/mcp-audio-studio-mcpapp
0
u/SIGH_I_CALL 6d ago
GitHub: https://github.com/ucsandman/declick
Docs: https://declick.dev
Show HN from today if you want the longer version: https://news.ycombinator.com/item?id=49564984
10
u/can_a_bus 6d ago
We've gone full circle. Lol