An open API service indexing awesome lists of open source software.

https://github.com/yang1bai/claw-tsaver

A token-saving MCP proxy for OpenClaw users. Cuts tool call payloads by 90%+ via lazy expansion.
https://github.com/yang1bai/claw-tsaver

mcp openai python token-optimization

Last synced: 10 days ago
JSON representation

A token-saving MCP proxy for OpenClaw users. Cuts tool call payloads by 90%+ via lazy expansion.

Awesome Lists containing this project

README

          

# 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

```mermaid
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}
(only 104 tokens)
Note over U: model decides if it needs full text
U->>C: expand_content(handle)
C-->>U: full 11,507 tokens
```

## Real 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](https://docs.astral.sh/uv/) (one-time setup):

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

No 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):

```json
{
"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`:

```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.

```bash
uvx --from git+https://github.com/Yang1Bai/claw-tsaver claw-tsaver-dashboard
```

Open in your browser.

## Roadmap

- [x] **Module A**: lazy expansion proxy (this release)
- [x] **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 服务器之间的代理:
1. 拦截过大的响应(超过可配置的 token 阈值)
2. 将完整内容存储到本地 SQLite 数据库
3. 返回给模型一个**紧凑预览 + 按需扩展句柄**
4. 模型需要更多内容时,调用 `expand_content` 工具按需获取

### 快速安装

```bash
npm install -g claw-tsaver
# 在 OpenClaw 配置中添加为 MCP 服务器
```

### 开源协议

MIT License