claw-tsaver
claw-tsaver
A token-saving MCP proxy for OpenClaw users. Cuts tool call payloads by 90%+ via lazy expansion.
Why
MCP tool calls often return thousands of tokens of HTML or JSON in a single response — but the model typically uses only 5% of it. The remaining 95% silently burns context window and increases cost. claw-tsaver sits between OpenClaw and your downstream MCP servers, intercepts oversized responses, and hands the model a compact preview + an on-demand handle instead.
How
sequenceDiagram
participant U as OpenClaw (Claude)
participant C as claw-tsaver proxy
participant F as fetch / puppeteer / etc.
U->>C: call_tool("fetch", url)
C->>F: forward call
F-->>C: 11,507 tokens of HTML
Note over C: tiktoken count > threshold
C->>C: store full content in SQLite
C-->>U: {preview_head, preview_tail, expand_handle}<br/>(only 104 tokens)
Note over U: model decides if it needs full text
U->>C: expand_content(handle)
C-->>U: full 11,507 tokensReal measurement
Test | Original tokens | Returned tokens | Saved |
fetch Wikipedia "Tokenization (data security)" | 11,507 | 104 | 99.1% |
Tested on OpenClaw + Claude Sonnet 4.6 + mcp-server-fetch, 2026-04-25.
Raw data: benchmarks/mvp-day1-fetch.jsonl.
Quick Start
1. Prerequisites
Install uv (one-time setup):
curl -LsSf https://astral.sh/uv/install.sh | shNo claw-tsaver install needed — uvx will fetch and run it on demand.
2. Configure downstream MCP servers
Edit ~/.claw-tsaver/config.json (first run of claw-tsaver-mcp will auto-create a template):
{
"downstream_servers": [
{"name": "fetch", "command": "uvx", "args": ["mcp-server-fetch"]}
],
"compression_threshold_tokens": 500
}3. Register with OpenClaw
Add this block at the top level of ~/.openclaw/openclaw.json:
"mcp": {
"servers": {
"claw-tsaver": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Yang1Bai/claw-tsaver",
"claw-tsaver-mcp"]
}
}
}Then restart OpenClaw gateway: openclaw gateway restart
Dashboard
Optional: a local web UI for real-time token savings stats.
uvx --from git+https://github.com/Yang1Bai/claw-tsaver claw-tsaver-dashboardOpen http://localhost:7878 in your browser.
Roadmap
Module A: lazy expansion proxy (this release)
Module D: local dashboard (this release)
Module B: tool routing (auto-load only relevant MCPs per turn)
Module C: conversation history compression (atomic fact cards)
License
MIT — see LICENSE file.
Contributing
Issues and PRs welcome.
🇨🇳 中文说明
什么是 claw-tsaver?
claw-tsaver 是一个为 OpenClaw 用户设计的 MCP 代理,通过懒加载扩展机制将工具调用的 token 消耗削减 90%+。
问题背景
MCP 工具调用(如 fetch、puppeteer)经常在单次响应中返回数千个 token 的 HTML 或 JSON,但模型通常只使用其中约 5% 的内容。剩余 95% 悄悄消耗上下文窗口并增加费用。
解决方案
claw-tsaver 作为 OpenClaw 与下游 MCP 服务器之间的代理:
拦截过大的响应(超过可配置的 token 阈值)
将完整内容存储到本地 SQLite 数据库
返回给模型一个紧凑预览 + 按需扩展句柄
模型需要更多内容时,调用
expand_content工具按需获取
快速安装
npm install -g claw-tsaver
# 在 OpenClaw 配置中添加为 MCP 服务器开源协议
MIT License
Maintenance
Tools
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/Yang1Bai/claw-tsaver'
If you have feedback or need assistance with the MCP directory API, please join our Discord server