mcp编码器工作台
一个基于Rust的基准测试工具,用于衡量LLM辅助开发中MCP(模型上下文协议)服务器的有效性。比较使用Claude Code时不同MCP服务器对令牌使用、成本和任务完成的影响。
特性
- MCP服务器基准测试:将基线Claude Code性能与MCP增强场景进行比较
- 并行执行:以可配置的并发性同时运行多个基准容器
- 多运行时支持:适用于Docker和Podman(自动检测)
- 实时进度:执行过程中工具调用和MCP使用的实时流媒体
- 统计分析:置信区间、显著性检验(Welch t检验)、效应大小(Cohen d检验)
- 多种输出格式:JSON、CSV、Markdown(带图表)、HTML(带SVG可视化)、终端表
- 工作区隔离:每次运行都会获得一个新的工作区副本,以确保可重复性
- 结构化日志记录:基于跟踪的日志记录到文件和控制台
安装
cargo install --path .或者从源代码构建:
cargo build --release需求
- Docker或Podman
- 锈蚀1.75+(用于建筑)
ANTHROPIC_API_KEY环境变量
快速开始
1.初始化配置
# Basic configuration
mcp-coder-bench init > mcp-coder-bench.yaml
# With Boarder MCP server example
mcp-coder-bench init --with-boarder > mcp-coder-bench.yaml2.验证配置
# Check config, workspace, and Docker connectivity
mcp-coder-bench validate
# Also verify container image exists
mcp-coder-bench validate --check-image3.运行基准
# Run with default configuration
mcp-coder-bench run
# Run with custom settings
mcp-coder-bench run -p 4 -n 5 # 4 parallel containers, 5 runs each
# Run a single scenario
mcp-coder-bench run --scenario baseline
# Dry-run to validate without executing
mcp-coder-bench run --dry-run4.分析结果
# Terminal table output
mcp-coder-bench analyze results/20260123/
# With statistical analysis
mcp-coder-bench analyze results/20260123/ --stats
# Export as Markdown with charts
mcp-coder-bench analyze results/20260123/ --format markdown --stats -o report.md
# Export as HTML with SVG visualizations
mcp-coder-bench analyze results/20260123/ --format html -o report.html
# Exclude outliers from analysis
mcp-coder-bench analyze results/20260123/ --exclude-outliers5.比较场景
# Basic comparison
mcp-coder-bench compare results/baseline results/with-mcp
# With significance testing
mcp-coder-bench compare results/baseline results/with-mcp --significance
# Multi-scenario comparison
mcp-coder-bench compare results/v1 results/v2 results/v3 --format markdown配置
配置文件示例:
name: "MCP Benchmark"
scenarios:
- name: "baseline"
description: "No MCP servers"
mcp_config: {}
- name: "with-boarder"
description: "With Boarder MCP server"
mcp_config:
mcpServers:
boarder:
command: "/usr/local/bin/boarder"
args: ["mcp"]
task:
prompt_file: "prompts/task.md"
workspace: "test-repo/"
timeout_seconds: 600
reset_strategy: "copy" # copy, git, or none
execution:
runs_per_scenario: 3
parallelism: 2
container_runtime: "auto"
container:
image: "mcp-coder-bench:latest" # Optional custom image
builder: "docker" # Optional: docker, podman, or auto
output:
directory: "results/"
formats: ["json", "markdown"]工作区重置策略
- 复制:为每次运行创建独立的工作区副本(建议重复使用)
- 版本控制系统:使用重置工作区
git checkout和git clean - 无:工作区在运行之间保持不变(对增量任务有用)
命令
run
执行基准场景。
mcp-coder-bench run [OPTIONS]
Options:
-c, --config Configuration file [default: mcp-coder-bench.yaml]
-p, --parallelism Number of parallel containers [default: 1]
-n, --runs Number of runs per scenario
-s, --scenario Run only a specific scenario
-o, --output Output directory for results
--runtime Container runtime (auto, docker, podman) [default: auto]
--rebuild Rebuild container image
--dry-run Validate without running
-v, --verbose Verbose outputanalyze
分析基准运行的结果。
mcp-coder-bench analyze [OPTIONS]
Options:
-f, --format Output format (json, csv, markdown, html, table) [default: table]
-o, --output Output file (stdout if not specified)
--stats Include statistical analysis
--exclude-outliers Exclude outlier runs from analysis
--include-raw Include raw output in resultscompare
比较基准结果集。
mcp-coder-bench compare ... [OPTIONS]
Options:
-f, --format Output format (json, csv, markdown, html, table) [default: table]
-o, --output Output file (stdout if not specified)
--significance Include statistical significance testing
--confidence Confidence level for tests [default: 0.95]validate
在不运行基准测试的情况下验证配置。
mcp-coder-bench validate [OPTIONS]
Options:
-c, --config Configuration file [default: mcp-coder-bench.yaml]
--runtime Container runtime [default: auto]
--check-image Also verify container image exists
-v, --verbose Verbose outputinit
生成示例配置文件。
mcp-coder-bench init [OPTIONS]
Options:
-o, --output Output file (stdout if not specified)
--with-boarder Include example Boarder MCP configuration收集的指标
- 令牌使用:输入、输出、缓存创建和缓存读取令牌
- 成本:根据克劳德定价估算的美元成本
- 工具调用:使用所有工具,MCP工具单独跟踪
- 墙上时间:实际执行时间
- 成功率:任务完成状态
统计特征
- 置信区间:令牌使用和成本的95%置信区间(小样本的t分布)
- 显著性检验:Welch比较情景的t检验
- 效应量:带标签的Cohen d(可忽略/小/中/大)
- 异常检测:基于IQR的异常值识别和过滤
- 分布分析:柱状图和百分位数
输出示例
终端表
╭──────────────┬──────┬────────────┬──────────┬──────────┬─────────╮
│ Scenario │ Runs │ Avg Tokens │ Avg Cost │ Avg Time │ Success │
├──────────────┼──────┼────────────┼──────────┼──────────┼─────────┤
│ baseline │ 5 │ 125.3K │ $1.45 │ 342.1s │ 100% │
│ with-boarder │ 5 │ 98.7K │ $1.12 │ 287.3s │ 100% │
╰──────────────┴──────┴────────────┴──────────┴──────────┴─────────╯MCP工具检测
MCP Tool Usage:
mcp__boarder__cut_from_source - 2 calls
mcp__boarder__clear_buffer - 1 call日志记录
日志被写入 ~/.mcp-coder-bench/logs/ 随着旋转。集 RUST_LOG 对于控制台输出:
RUST_LOG=debug mcp-coder-bench run许可证
MIT许可证-请参阅 许可证 了解详情。
贡献
欢迎投稿!请确保:
- 所有测试均通过(
cargo test) - 代码已格式化(
cargo fmt) - 没有刺耳的警告(
cargo clippy)
