使用说明
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服务器语言
- 性能影响分析