令牌分析工具

一个强大的CLI工具,用于分析和计算Model Context Protocol (MCP)服务器的令牌使用情况和成本影响。

  • by paryan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 paryan/mcp-token-analyzer

使用说明

MCP令牌分析器

一个强大的CLI工具,用于分析令牌使用情况和成本影响 模型上下文协议(MCP) 服务器。

🎯 这是什么?

MCP服务器向AI助手公开工具、资源和提示。其中每一个都会将令牌添加到您的上下文窗口中,这意味着:

  • 成本增加 -代币越多=API账单越高
  • 上下文限制 -来自MCP服务器的令牌将计入模型的上下文窗口
  • 性能影响 -较大的上下文可能会减缓推理速度

此工具可帮助您 准确了解有多少代币 您的MCP服务器添加和 要花多少钱 跨不同的AI提供商。

✨ 特性

  • 🔍 分析任何MCP服务器 -支持stdio传输(SSE即将推出)
  • 📊 详细的代币细分 -按工具、资源和提示查看令牌
  • 💰 成本估算 -计算OpenAI、Anthropic、谷歌等的成本
  • 🎨 漂亮的CLI输出 -具有表格和颜色的丰富终端UI
  • 📤 导出选项 -将结果保存为JSON以供进一步分析
  • 🐍 纯Python -适用于Linux、macOS和Windows

📦 安装

独立脚本(最简单)

下载并运行-无需安装:

curl -O https://raw.githubusercontent.com/yourusername/mcp-token-analyzer/main/mcp-analyze.py
python3 mcp-analyze.py npx @modelcontextprotocol/server-filesystem /tmp

第一次运行时,脚本会自动设置一个虚拟环境(一次性设置约10秒)。

来自PyPI(发布时)

pip install mcp-token-analyzer

来源

git clone https://github.com/yourusername/mcp-token-analyzer.git
cd mcp-token-analyzer
pip install -e .

开发安装

git clone https://github.com/yourusername/mcp-token-analyzer.git
cd mcp-token-analyzer
pip install -e ".[dev]"

🚀 快速开始

分析一个流行的MCP服务器:

python3 mcp-analyze.py npx shadcn-ui-mcp-server

使用参数分析文件系统服务器:

python3 mcp-analyze.py npx @modelcontextprotocol/server-filesystem /tmp

显示每个项目的详细细分:

python3 mcp-analyze.py npx shadcn-ui-mcp-server --detailed

将结果导出为JSON格式:

python3 mcp-analyze.py npx server-name --json > results.json

将结果保存到文件:

python3 mcp-analyze.py npx server-name --save results.json

📖 用法

基本分析

python3 mcp-analyze.py <command> [args...]

例子:

python3 mcp-analyze.py npx @modelcontextprotocol/server-memory

输出:

╭─────────────────────────────────────────────────╮
│              📊 Token Summary                   │
├─────────────────────────────────────────────────┤
│ Total Tokens          1,234                     │
│ Tools                 800                       │
│ Resources             234                       │
│ Prompts               200                       │
╰─────────────────────────────────────────────────╯

💰 Cost Impact (per API call)

OpenAI
┌────────────────┬─────────────┬──────────────┐
│ Model          │ Input Cost  │ Output Cost  │
├────────────────┼─────────────┼──────────────┤
│ GPT-4o         │ $0.0031     │ $0.0123      │
│ GPT-4o mini    │ $0.0002     │ $0.0007      │
│ GPT-4 Turbo    │ $0.0123     │ $0.0370      │
└────────────────┴─────────────┴──────────────┘

选项

  • --detailed, -d -显示每个项目的详细细分
  • --json -以JSON格式输出结果
  • --save <file>, -s <file> -将结果保存到文件
  • --version, -v -显示版本并退出
  • --help -显示帮助消息

测试本地MCP服务器

您可以通过指定运行命令来分析任何MCP服务器:

# Python MCP server
python3 mcp-analyze.py python path/to/your_server.py

# Python MCP server with uv
python3 mcp-analyze.py uv run your-mcp-server

# Node.js MCP server
python3 mcp-analyze.py node path/to/server.js

# TS MCP server
python3 mcp-analyze.py npx tsx ~/MCP/src/index.ts

# Any executable MCP server
python3 mcp-analyze.py ./my-mcp-server --some-arg

示例

用详细的输出进行分析:

python3 mcp-analyze.py npx shadcn-ui-mcp-server --detailed

将分析保存为JSON格式:

python3 mcp-analyze.py npx server-name --json --save analysis.json

分析GitHub MCP服务器:

python3 mcp-analyze.py npx @modelcontextprotocol/server-github

🔧 程序化使用

您还可以将分析器用作Python库:

import asyncio
from mcp_analyzer import MCPAnalyzer, TransportConfig

async def main():
    # Create analyzer
    analyzer = MCPAnalyzer()

    # Configure transport
    config = TransportConfig(
        type="stdio",
        command="npx",
        args=["shadcn-ui-mcp-server"]
    )

    # Run analysis
    result = await analyzer.analyze(config)

    print(f"Total tokens: {result.total_tokens}")
    print(f"Tools: {result.breakdown.tools}")
    print(f"Resources: {result.breakdown.resources}")
    print(f"Prompts: {result.breakdown.prompts}")

asyncio.run(main())

成本计算

from mcp_analyzer import calculate_all_costs, format_cost

# Calculate costs for 1000 tokens
estimates = calculate_all_costs(1000)

for estimate in estimates:
    print(f"{estimate.provider} - {estimate.model_name}:")
    print(f"  Input: {format_cost(estimate.input_cost)}")
    print(f"  Output: {format_cost(estimate.output_cost)}")

🏗️ 运作原理

  1. 连接到MCP服务器 -使用官方MCP Python SDK通过stdio连接
  2. 列出所有项目 -检索服务器公开的所有工具、资源和提示
  3. 计算代币 -使用tiktoken(OpenAI的标记器)计算每个项目的标记
  4. 估计成本 -根据主要供应商的当前定价计算成本

🤝 贡献

欢迎投稿!以下是如何开始:

  1. 复刻仓库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 运行测试(pytest)
  5. 格式代码(black . && ruff check .)
  6. 提交您的更改(git commit -m 'Add amazing feature')
  7. 推到分支(git push origin feature/amazing-feature)
  8. 打开拉取请求

开发设置

# Clone the repo
git clone https://github.com/yourusername/mcp-token-analyzer.git
cd mcp-token-analyzer

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black .
ruff check .

# Type check
mypy mcp_analyzer

📝 定价数据

定价基于当前费率(截至2025年11月):

  • OpenAI:GPT-5.1、GPT-5迷你、GPT-5-纳米、GPT-4o、o1
  • Anthropic:克劳德十四行诗4.5,克劳德作品4.5,克劳德俳句3.5
  • 谷歌:双子座2.5 Pro、双子座2.5 Flash、双子座3 Pro

定价数据保存在 mcp_analyzer/cost.py (或直接在 mcp-analyze.py 对于独立脚本)。

🛣️ 路线图

  • []苏格兰和南方能源公司运输支持
  • []用于分析的Web UI
  • []代币可视化图表
  • []历史成本跟踪
  • []比较模式(比较多台服务器)
  • []自定义定价配置文件
  • []与流行的AI框架集成

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

🔗 链接

💬 支持

  • 打开一个 问题 用于错误报告或功能请求
  • 如果你觉得这个项目有用,就给它标上星号!

由...制作❤️ 面向人工智能开发社区