返回市场
令牌优化器mcp

令牌优化器mcp

作者:ooples6 星标更新:2025-11-19

项目介绍

Token Optimizer MCP

通过缓存、压缩和智能工具替换来优化Claude Code和Claude Desktop中的令牌使用

概述

Token Optimizer MCP是一个模型上下文协议(MCP)服务器,通过智能缓存、压缩和智能工具替换,将上下文窗口的使用减少60-90%。通过在SQLite中外部存储压缩内容并提供标准工具的优化替代方案,该服务器帮助您最大化可用的上下文窗口。

生产结果:在超过38,000次操作的真实使用中,实现了60-90%的令牌减少。

主要特性

  • 智能工具替换:自动优化读取、grep、glob等操作
  • 上下文窗口优化:外部存储内容以释放上下文空间
  • 高压缩率:Brotli压缩(典型情况下2-4倍,重复内容最高可达82倍)
  • 持久缓存:基于SQLite的缓存,跨会话持久化
  • 准确的令牌计数:使用tiktoken进行精确的令牌测量
  • 61种专用工具:文件操作、API缓存、数据库优化、监控等
  • 零外部依赖:完全离线操作
  • 生产就绪:使用TypeScript构建以确保可靠性

安装

快速安装(推荐)

Windows

# 以管理员身份运行PowerShell,然后执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# 全局安装(钩子自动安装!)
npm install -g @ooples/token-optimizer-mcp

macOS / Linux

# 全局安装(钩子自动安装!)
npm install -g @ooples/token-optimizer-mcp

就这样!安装脚本会自动完成以下步骤:

  1. ✅ 通过npm全局安装token-optimizer-mcp
  2. ✅ 自动检测并配置所有已安装的AI工具(如Claude Desktop、Cursor、Cline等)
  3. ✅ 在每次工具调用时设置自动令牌优化
  4. ✅ 配置工作区信任和执行权限

结果:所有操作实现60-90%的令牌减少!

注意:如果跳过了自动安装(例如,在CI环境中),可以手动运行安装程序:

  • Windows: powershell -ExecutionPolicy Bypass -File install-hooks.ps1
  • macOS/Linux: bash install-hooks.sh

手动配置

对于详细的平台特定安装说明,请参阅docs/HOOKS-INSTALLATION.md

可用工具(总计65个)

核心缓存与优化(8个工具)

<details> <summary>点击展开</summary>
  • optimize_text - 压缩并缓存文本(主要工具用于减少令牌)
  • get_cached - 获取之前缓存的文本
  • compress_text - 使用Brotli压缩文本
  • decompress_text - 解压Brotli压缩的文本
  • count_tokens - 使用tiktoken计数令牌(GPT-4分词器)
  • analyze_optimization - 分析文本并获取优化建议
  • get_cache_stats - 查看缓存命中率和压缩比率
  • clear_cache - 清除所有缓存数据

使用示例

// 缓存大量内容以从上下文窗口中移除
optimize_text({
  text: "大型API响应或文件内容...",
  key: "api-response-key",
  quality: 11
})
// 结果:60-90%令牌减少
</details>

智能文件操作(10个工具)

<details> <summary>点击展开</summary>

标准文件工具的优化替代方案,具有智能缓存和基于差异的更新:

  • smart_read - 通过缓存和差异减少80%令牌的文件读取
  • smart_write - 带有验证和更改跟踪的文件写入
  • smart_edit - 基于行的文件编辑,仅输出差异(90%减少)
  • smart_grep - 文件内容搜索,仅输出匹配项(80%减少)
  • smart_glob - 文件模式匹配,仅返回路径(75%减少)
  • smart_diff - Git差异,仅输出差异(85%减少)
  • smart_branch - Git分支列表,结构化的JSON(60%减少)
  • smart_log - Git提交历史记录,智能过滤(75%减少)
  • smart_merge - Git合并管理,冲突分析(80%减少)
  • smart_status - Git状态,仅输出状态(70%减少)

使用示例

// 自动缓存地读取文件
smart_read({ path: "/path/to/file.ts" })
// 第一次读取:完整内容
// 后续读取:仅差异(80%减少)
</details>

API及数据库操作(10个工具)

<details> <summary>点击展开</summary>

对外部数据源的智能缓存和优化:

  • smart_api_fetch - 带有缓存和重试逻辑的HTTP请求(缓存命中时减少83%)
  • smart_cache_api - API响应缓存,带有TTL/ETag/事件驱动策略
  • smart_database - 数据库查询,带有连接池和缓存(减少83%)
  • smart_sql - SQL查询分析,带有优化建议(减少83%)
  • smart_schema - 数据库模式分析,带有智能缓存
  • smart_graphql - GraphQL查询优化,带有复杂性分析(减少83%)
  • smart_rest - REST API分析,带有端点发现(减少83%)
  • smart_orm - ORM查询优化,带有N+1检测(减少83%)
  • smart_migration - 数据库迁移跟踪(减少83%)
  • smart_websocket - WebSocket连接管理,带有消息跟踪

使用示例

// 自动缓存地获取API
smart_api_fetch({
  method: "GET",
  url: "https://api.example.com/data",
  ttl: 300
})
// 缓存响应:95%令牌减少
</details>

构建与测试操作(10个工具)

<details> <summary>点击展开</summary>

带有智能缓存的开发工作流优化:

  • smart_build - 带有差异变化检测的TypeScript构建
  • smart_test - 测试执行,增量测试选择
  • smart_lint - ESLint,增量分析和自动修复
  • smart_typecheck - TypeScript类型检查,带有缓存
  • smart_install - 包安装,带有依赖分析
  • smart_docker - Docker操作,带有层分析
  • smart_logs - 日志聚合,带有模式过滤
  • smart_network - 网络诊断,带有异常检测
  • smart_processes - 进程监控,带有资源跟踪
  • smart_system_metrics - 系统资源监控,带有性能建议

使用示例

// 带有缓存地运行测试
smart_test({
  onlyChanged: true,  // 仅测试更改的文件
  coverage: true
})
</details>

高级缓存(10个工具)

<details> <summary>点击展开</summary>

企业级缓存策略,减少87-92%的令牌:

  • smart_cache - 多级缓存(L1/L2/L3),带有6种驱逐策略(减少90%)
  • cache_warmup - 智能预热缓存,支持计划(减少87%)
  • cache_analytics - 实时仪表板和趋势分析(减少88%)
  • cache_benchmark - 性能测试和策略比较(减少89%)
  • cache_compression - 6种压缩算法,自适应选择(减少89%)
  • cache_invalidation - 依赖跟踪和基于模式的失效(减少88%)
  • cache_optimizer - 基于机器学习的建议和瓶颈检测(减少89%)
  • cache_partition - 分片和一致性哈希(减少87%)
  • cache_replication - 分布式复制,带有冲突解决(减少88%)
  • predictive_cache - 基于机器学习的预测缓存,带有ARIMA/LSTM(减少91%)

使用示例

// 配置多级缓存
smart_cache({
  operation: "configure",
  evictionStrategy: "LRU",
  l1MaxSize: 1000,
  l2MaxSize: 10000
})
</details>

监控与仪表板(7个工具)

<details> <summary>点击展开</summary>

通过智能缓存实现全面监控,减少88-92%的令牌:

  • alert_manager - 多通道警报(电子邮件、Slack、Webhook),带有路由(减少89%)
  • metric_collector - 时间序列指标,支持多源(减少88%)
  • monitoring_integration - 外部平台集成(Prometheus、Grafana、Datadog)(减少87%)
  • custom_widget - 仪表板小部件,带有模板缓存(减少88%)
  • data_visualizer - 交互式可视化,带有SVG优化(减少92%)
  • health_monitor - 系统健康检查,带有状态压缩(减少91%)
  • log_dashboard - 日志分析,带有模式检测(减少90%)

使用示例

// 创建警报
alert_manager({
  operation: "create-alert",
  alertName: "high-cpu-usage",
  channels: ["slack", "email"],
  threshold: { type: "above", value: 80 }
})
</details>

系统操作(6个工具)

<details> <summary>点击展开</summary>

带有智能缓存的系统级操作:

  • smart_cron - 计划任务管理(cron/Windows任务计划程序)(减少85%)
  • smart_user - 跨平台用户和权限管理(减少86%)
  • smart_ast_grep - 带有AST索引的结构化代码搜索(减少83%)
  • get_session_stats - 会话级别的令牌使用统计信息
  • analyze_project_tokens - 整个项目范围内的令牌分析和成本估算
  • optimize_session - 压缩当前会话中的大文件操作

使用示例

// 查看会话令牌使用情况
get_session_stats({})
// 结果:按工具详细分解的令牌使用情况
</details>

工作原理

令牌分析(4个工具)

<details> <summary>点击展开</summary>

细粒度的令牌使用分析,用于定位优化机会:

  • get_hook_analytics - 按钩子阶段(PreToolUse、PostToolUse等)分解令牌使用情况
  • get_action_analytics - 按工具/动作(读取、写入、grep等)分解令牌使用情况
  • get_mcp_server_analytics - 按MCP服务器(token-optimizer、文件系统等)分解令牌使用情况
  • export_analytics - 导出JSON或CSV格式的分析数据,带有过滤

使用示例

// 获取每个钩子分析
get_hook_analytics({
  startDate: "2025-01-01T00:00:00Z",
  endDate: "2025-12-31T23:59:59Z"
})
// 结果:显示哪些钩子消耗了最多的令牌

// 获取每个动作分析
get_action_analytics({})
// 结果:显示哪些工具使用了最多的令牌

// 以CSV格式导出分析数据
export_analytics({
  format: "csv",
  hookPhase: "PreToolUse"
})
// 结果:按PreToolUse钩子过滤的CSV导出

主要特性

  • 按钩子阶段跟踪(PreToolUse、PostToolUse、SessionStart等)
  • 按动作跟踪(读取、写入、count_tokens等)
  • 按MCP服务器跟踪(token-optimizer、文件系统、GitHub等)
  • 日期范围过滤
  • JSON和CSV导出
  • 基于SQLite的持久存储
  • 零性能影响(异步批量写入)
</details>

全局钩子系统(7阶段优化)

当全局钩子被安装后,token-optimizer-mcp会在每次工具调用时自动运行:

┌─────────────────────────────────────────────────────────────┐
│ 阶段1:PreToolUse - 工具替换                                 │
│ ├─ 读取   → smart_read   (减少80%令牌)                    │
│ ├─ grep   → smart_grep   (减少80%令牌)                    │
│ └─ glob   → smart_glob   (减少75%令牌)                    │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│ 阶段2:输入验证 - 缓存查找                                  │
│ └─ get_cached 检查操作是否已经完成                         │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│ 阶段3:PostToolUse - 输出优化                               │
│ ├─ 对大型输出使用 optimize_text                             │
│ └─ 对重复内容使用 compress_text                             │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│ 阶段4:会话跟踪                                             │
│ └─ 将所有操作日志到 operations-{sessionId}.csv             │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│ 阶段5:UserPromptSubmit - 提示优化                          │
│ └─ 在发送到API之前优化用户提示                              │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│ 阶段6:PreCompact - 预压缩优化                              │
│ └─ 在Claude Code压缩对话之前进行优化                        │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│ 阶段7:指标与报告                                           │
│ └─ 跟踪令牌减少指标并生成报告                              │
└─────────────────────────────────────────────────────────────┘

生产性能

基于超过38,000次真实使用中的操作:

工具类别平均令牌减少缓存命中率
文件操作60-90%>80%
API响应83-95%>75%
数据库查询83-90%>70%
构建/测试输出70-85%>65%

每会话节省:300K-700K令牌(价值$0.90-$2.10,按$3/M令牌计算)

使用示例

基础缓存

// 缓存大量内容以从上下文窗口中移除
const result = await optimize_text({
  text: "大型API响应或文件内容...",
  key: "cache-key",
  quality: 11
});
// 结果:原始令牌被移除,仅保留缓存键(约50个令牌)

// 后续检索
const cached = await get_cached({ key: "cache-key" });
// 结果:恢复完整的原始内容

智能文件读取

// 第一次读取:完整内容
await smart_read({ path: "/src/app.ts" });

// 后续读取:仅差异(减少80%)
await smart_read({ path: "/src/app.ts" });

API缓存

// 第一次请求:获取并缓存
await smart_api_fetch({
  method: "GET",
  url: "https://api.example.com/data",
  ttl: 300
});

// 后续请求:使用缓存(减少95%)
await smart_api_fetch({
  method: "GET",
  url: "https://api.example.com/data"
});

会话分析

// 查看当前会话的令牌使用情况
await get_session_stats({});
// 结果:按工具、操作和节省情况细分

// 分析整个项目
await analyze_project_tokens({
  projectPath: "/path/to/project"
});
// 结果:成本估算和优化机会

技术栈

  • 运行时:Node.js 20+
  • 语言:TypeScript
  • 数据库:SQLite(better-sqlite3)
  • 令牌计数:tiktoken(GPT-4分词器)
  • 压缩:Brotli(内置Node.js)
  • 缓存:多级LRU/LFU/FIFO缓存
  • 协议:MCP SDK(@modelcontextprotocol/sdk)

支持的AI工具

自动安装程序检测并配置token-optimizer-mcp:

  • Claude Code - 带有全局钩子集成的CLI
  • Claude Desktop - 原生桌面应用程序
  • Cursor IDE - 以AI为中心的代码编辑器
  • Cline - VS Code扩展(以前称为Claude Dev)
  • GitHub Copilot - 带有MCP支持的VS Code
  • Windsurf IDE - AI驱动