MCP令牌审计工具

一款全面的工具,用于审计模型上下文协议(MCP)服务器的令牌使用情况,识别工具定义、描述和提示中的潜在冗余问题,适用于多语言开发环境。

  • by NERVsystems
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 nervsystems/mcp-audit

使用说明

MCP令牌审计工具

一个全面的工具,用于审计模型上下文协议(MCP)服务器的令牌使用情况,并识别工具定义、描述和提示中的潜在膨胀。

概述

该工具分析以不同语言(Go、TypeScript、Python)实现的MCP服务器,并生成有关令牌使用情况的详细报告,以帮助识别优化机会。

特性

  • 多语言支持:分析Go、Types/Node.js和Python MCP服务器
  • 令牌估计:使用每个令牌约4个字符估计令牌使用量(技术内容保守)
  • Bloat检测:标识冗长的描述、过多的参数和较大的提示
  • 详细报告:生成JSON和人类可读的markdown报告
  • 优化建议:提供减少令牌使用的具体建议

什么被审计

工具定义

  • 工具名称和说明
  • 参数名称、类型和描述
  • JSON模式定义
  • 输入/输出模式

提示模板

  • 系统提示和说明
  • 模板字符串和格式
  • 示例内容和样本

潜在的Bloat问题

  • 详细的工具描述(>100个标记)
  • 每个工具的参数太多(>10)
  • 详细的参数描述(>20个标记)
  • 大型提示模板(>200个令牌)

用法

# Build the tool
go build -o mcp-audit

# Run audit on NERV systems directory
./mcp-audit /path/to/NERVsystems

# View reports
cat mcp-audit-report.md
cat mcp-audit-report.json

支持的MCP服务器

  • takmcp (Go)-TAK网络集成
  • osmmcp (Go)-OpenStreetMap操作
  • examcp (TypeScript)-Exa AI搜索功能
  • aismcp (Python)-AIS海事数据处理

报告结构

JSON报告

  • 完整的机器可读审计数据
  • 逐个工具令牌细分
  • 参数级分析
  • Bloat问题分类

Markdown报告

  • 执行摘要
  • 服务器细分
  • 顶级代币消费工具
  • 优化建议

令牌估计方法

  • 每个令牌使用约4个字符(对技术内容的保守估计)
  • 包括作为上下文发送到AI模型的所有内容:
    • 工具名称和说明
    • 参数模式和描述
    • 提示模板和系统说明
  • 不包括动态响应内容或运行时上下文

优化建议

高影响力

  • 将工具描述保持在50个以内
  • 将参数描述限制在10个以内
  • 考虑将复杂的工具分解为更简单的工具
  • 使用动态提示生成与大型静态模板

中等影响

  • 将相关参数组合到对象中
  • 尽可能使用枚举而不是冗长的描述
  • 移除多余或很少使用的工具
  • 优化JSON模式定义

建筑

该工具对每种语言使用不同的解析策略:

  • 去:使用正则表达式回退进行AST解析
  • TypeScript:基于正则表达式的MCP SDK模式提取
  • python:装饰器和文档字符串的模式匹配

未来的增强功能

  • 与实际MCP协议自检集成
  • 实时令牌使用监控
  • 自动优化建议
  • 支持其他MCP服务器语言
  • 性能影响分析