TOON上下文MCP服务器
MCP(模型上下文协议)服务器 自动提供TOON格式上下文 编码代理,使 透明减少30-60%的代币 对于没有任何工作流更改的结构化数据。
这是什么?
此MCP服务器拦截来自编码代理的文件请求,并自动将数据文件转换为 TOON格式 当有益时。当您引用JSON文件时,服务器:
- 分析 数据结构
- 转换 如果TOON可以节省令牌(对于表格数据,通常为30-60%)
- 缓存 TOON版本供将来使用
- 倒退 如果TOON没有好处,则转换为原始格式
魔法? 你永远不会想到它。正常参考文件,得到自动令牌优化。
快速开始
1.安装
cd toon-context-mcp
./setup.sh或手动:
cd toon-context-mcp
npm install
npm run build2.配置您的MCP客户端
对于Cline(VSCode扩展)
添加到您的Cline MCP配置中:
{
"mcpServers": {
"toon-context": {
"command": "node",
"args": ["/absolute/path/to/toon-context-mcp/build/index.js"],
"env": {
"TOON_THRESHOLD": "0.7",
"AUTO_CONVERT": "true"
}
}
}
}Zed编辑
添加到 ~/.config/zed/settings.json:
{
"context_servers": {
"toon-context": {
"command": "node",
"args": ["/absolute/path/to/toon-context-mcp/build/index.js"]
}
}
}对于其他MCP客户端
服务器遵循标准MCP协议。用途:
- 命令:
node - Args:
["/path/to/toon-context-mcp/build/index.js"] - 运输: 标准
3.测试它
# Interactive testing tool
cd toon-context-mcp
npm run inspector
# Or run the test suite
cd ..
./TEST_MCP_SERVER.sh4.使用它
请正常使用您的编码代理!引用数据文件时:
"Analyze data/users.json and find inactive users"如果有利,服务器会自动将其优化为TOON,透明地为您节省30-60%的令牌。
示例:真正的代币节省
之前(JSON-220令牌):
{
"users": [
{ "id": 1, "name": "Alice", "email": "alice@example.com", "role": "admin", "status": "active" },
{ "id": 2, "name": "Bob", "email": "bob@example.com", "role": "user", "status": "active" },
...
]
}之后(TOON-84个代币,节省61.8%):
users[5]{id,name,email,role,status,created}:
1,Alice Johnson,alice@example.com,admin,active,2024-01-15
2,Bob Smith,bob@example.com,user,active,2024-02-20
...您的工作流程: 没有变化。服务器自动处理一切。
运作原理
智能格式选择
服务器分析每个文件并选择最佳格式:
| 数据结构 | 格式 | 原因 |
|---|---|---|
| 对象的统一数组 | 卡通 | 代币节省30-60% |
| 纯平板桌 | CSV | 对于简单的桌子最有效 |
| 深度嵌套(≥4级) | JSON | 更适合复杂结构 |
| 非统一数据 | JSON | 更灵活的格式 |
自动缓存
- 首次访问: 分析和转换文件,创建
.toon文件 - 后续访问: 返回缓存
.toon文件(如果是最新的) - 文件已修改: 源更改时自动重新转换
文件排除
系统文件会自动排除:
package.json,tsconfig.json,配置文件- IDE设置文件
- 锁定文件
MCP工具
服务器提供4个MCP工具:
1.get_optimized_file_context
透明优化的主要工具。
返回优化的文件内容(如果有益,则返回TOON,否则返回原始内容)以及令牌节省统计信息。
2.分析数据效率
分析TOON转换是否有益。
返回有关数据结构和估计令牌节省的详细指标。
3.batch_convert_目录
转换目录中所有符合条件的文件。
同时处理多个文件并返回转换摘要。
4.get_conversion_metrics
获取比较格式的详细指标。
提供令牌比较,而无需实际转换。
看 MCP_SERVER.md 获取详细的工具文档。
配置
环境变量
在MCP客户端配置中设置这些:
| 变量 | 默认值 | 描述 |
|---|---|---|
TOON_THRESHOLD | 0.7 | TOON转换的最低表格资格(0-1) |
AUTO_CONVERT | true | 是否自动转换文件 |
CACHE_DIR | ./.toon缓存 | 缓存toon文件的目录 |
阈值指南
- 0.5-0.6:激进(可能转换混合数据)
- 0.7 (默认):平衡妥协
- 0.8-0.9:保守(只有高度统一的数据)
- 1.0:严格(仅100%均匀阵列)
测试
运行测试套件
./TEST_MCP_SERVER.sh运行17个测试,涵盖:
- 数据分析准确性
- 文件优化
- 缓存行为
- 代币节省计算
- 文件排除
交互式检查器
cd toon-context-mcp
npm run inspector使用您自己的文件交互式测试服务器工具。
演出
| 度量 | 值 |
|---|---|
| 转换时间 | 典型JSON文件为10-50ms |
| 缓存查找 | 缓存的TOON文件小于1ms |
| 内存使用 | 最小(不需要流媒体) |
| 代币节省 | 统一表格数据为30-60% |
真实世界结果
根据样本数据测试:
| 文件 | 原始代币 | TOON代币 | 节省 |
|---|---|---|---|
| users.json(5个项目) | 220 | 84 | 61.8% |
| users.json(100个项目) | 3171 | 1245 | 60.7% |
| products.json(50个项目) | 1856 | 798 | 57.0% |
项目结构
toon-context-mcp/
├── src/
│ ├── index.ts # Main MCP server
│ ├── inspector.ts # Interactive testing tool
│ ├── file-handler.ts # File operations & conversion logic
│ ├── data-analyzer.ts # Data structure analysis
│ └── toon-utils.ts # TOON encoding/decoding
├── build/ # Compiled JavaScript
├── examples/ # Test data
├── config/ # Example configurations
├── setup.sh # Setup script
├── README.md # Server documentation
└── package.json # Dependencies用例
非常适合
✅ 对象的统一数组 -相同的字段,原始值\ ✅ 大型表格数据集 -用户列表、产品目录、分析数据\ ✅ API响应 -一致的结构化数据\ ✅ 数据库导出 -表状数据结构
不适合
❌ 深度嵌套对象 -复杂的分层数据\ ❌ 非统一数据 -混合结构\ ❌ 小型数据集 -开销不值得(\<10项)\ ❌ 配置文件 -已自动排除
故障排除
服务器未启动
cd toon-context-mcp
rm -rf node_modules package-lock.json
npm install
npm run build文件不转换
- 检查阈值:
TOON_THRESHOLD=0.7 - 分析文件:
npm run inspector→ 选项2 - 验证数据是否一致(≥70%表格)
- 检查文件是否被排除(系统文件)
缓存文件已过期
源文件更改时,缓存会自动失效。要强制刷新,请执行以下操作:
rm path/to/file.toon代理未使用服务器
- 验证MCP配置是否正确
- 检查服务器路径是否为绝对路径
- 重新启动MCP客户端
- 检查服务器日志(stderr)
文档
- MCP_SERVER.md -详细的MCP服务器指南及示例
- toon上下文mcp/README.md -技术文件
- TOON格式规范 -官方TOON规范
- 模型上下文协议 -MCP规范
为什么是TOON?
TOON(面向令牌的对象表示法)是一种针对LLM令牌效率进行优化的格式。对于统一的表格数据,它消除了重复的键,与JSON相比,令牌计数减少了30-60%。
主要优势:
- 📉 降低成本 -更少的代币=更低的API成本
- 🚀 更长的上下文 -在上下文窗口中容纳更多数据
- ⚡ 更快的响应 -需要处理的数据更少
- 🧠 更好的性能 -更高效的数据表示
许可证
MIT许可证-请参阅 许可证 文件
