Token导航 LogoToken导航

MCP Server · 开发工具

pymcpevals (Akshay5995)

PyMCPEvals是一个专注于MCP(Model Context Protocol)服务器能力的评估框架,用于自动化测试工具实现、参数验证、错误处理和多轮状态管理,适用于开发团队进行CI/CD集成和回归测试。

stdio官方级别未说明来源级核验工具 0
Python自动化测试开发工具

快速开始

作者 / 组织
akshay5995
提供方
akshay5995

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

pymcpevals (Akshay5995) 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install pymcpevals

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

PyMCPEvals

⚠️ 仍在开发中 -API可能会发生变化。生产中请谨慎使用。

MCP(模型上下文协议)服务器的以服务器为中心的评估框架。

🚀 测试您的MCP服务器功能,而不是LLM对话模式。

“我的MCP服务器的工具是否正常工作并按预期使用?”

PyMCPEvals将您的 控制 (服务器)从你 不能 (LLM行为):

✅ 你控制什么(我们测试一下)

  • 工具实施正确性
  • 工具参数验证
  • 错误处理和恢复
  • 工具结果格式化
  • 多转弯状态管理

❌ 你无法控制的事情(我们忽略了这一点)

  • LLM对话模式
  • LLM如何选择使用工具
  • LLM响应格式
  • LLM是否提供中间响应

关键痛点已解决

  • 🚫 手动工具测试:自动断言验证确切的工具调用
  • ❓ 多步故障:跨对话回合跟踪工具链
  • 🐛 无声工具错误:未调用预期工具时的即时反馈
  • 📊 CI/CD集成:用于自动化测试管道的JUnitXML输出

快速开始

pip install pymcpevals
pymcpevals init                    # Create template config
pymcpevals run evals.yaml         # Run evaluations

配置示例

model:
  provider: openai
  name: gpt-4

server:
  command: ["python", "my_server.py"]

evaluations:
  - name: "weather_check"
    prompt: "What's the weather in Boston?"
    expected_tools: ["get_weather"]  # ✅ Validates tool usage
    expected_result: "Should call weather API and return conditions"
    threshold: 3.5
    
  - name: "multi_step"
    turns:
      - role: "user"
        content: "What's the weather in London?"
        expected_tools: ["get_weather"]
      - role: "user"  
        content: "And in Paris?"
        expected_tools: ["get_weather"]
    expected_result: "Should provide weather for both cities"
    threshold: 4.0

输出:通过/失败状态、工具验证、执行指标和以服务器为中心的评分。

运作原理

  1. 连接 通过FastMCP连接到您的MCP服务器
  2. 执行 提示和跟踪工具调用
  3. 验证 预期的工具被称为(即时反馈)
  4. 评估 服务器性能(忽略LLM样式)
  5. 报告 具有可操作见解的结果

是什么让这与众不同

精确的工具断言:与判断LLM反应的传统评估不同,PyMCPEvals验证:

  • ✅ 精确的工具调用: assert_tools_called(result, ["add", "multiply"])
  • ✅ 工具执行成功: assert_no_tool_errors(result)
  • ✅ 多转弯轨迹:跨对话步骤的测试工具链接
  • ✅ 即时故障检测:无需对明显故障进行昂贵的法学硕士评估

用法

命令行界面

# Basic usage
pymcpevals run evals.yaml

# Override server/model
pymcpevals run evals.yaml --server "node server.js" --model gpt-4

# Different outputs
pymcpevals run evals.yaml --output table    # Simple table
pymcpevals run evals.yaml --output json     # Full JSON
pymcpevals run evals.yaml --output junit    # CI/CD format

Pytest集成

from pymcpevals import (
    assert_tools_called, 
    assert_evaluation_passed,
    assert_min_score,
    assert_no_tool_errors,
    ConversationTurn
)

# Simple marker-based test
@pytest.mark.mcp_eval(
    prompt="What is 15 + 27?",
    expected_tools=["add"],
    min_score=4.0
)
async def test_basic_addition(mcp_result):
    assert_evaluation_passed(mcp_result)
    assert_tools_called(mcp_result, ["add"])
    assert "42" in mcp_result.server_response

# Multi-turn trajectory testing
async def test_math_sequence(mcp_evaluator):
    turns = [
        ConversationTurn(role="user", content="What is 10 + 5?", expected_tools=["add"]),
        ConversationTurn(role="user", content="Now multiply by 2", expected_tools=["multiply"])
    ]
    result = await mcp_evaluator.evaluate_trajectory(turns, min_score=4.0)
    
    # Rich assertions
    assert_evaluation_passed(result)
    assert_tools_called(result, ["add", "multiply"])
    assert_no_tool_errors(result)
    assert_min_score(result, 4.0, dimension="accuracy")
    assert "30" in str(result.conversation_history)

# Run with: pytest -m mcp_eval

例子

看看 examples/ 目录:

  • calculator_server.py -用于测试的简单MCP服务器
  • local_server_basic.yaml -基本评估配置示例
  • trajectory_evaluation.yaml -多回合对话示例
  • test_simple_plugin_example.py -Pytest集成示例

运行示例:

# Test with the example calculator server
pymcpevals run examples/local_server_basic.yaml

# Run pytest examples
cd examples && pytest test_simple_plugin_example.py

安装

pip install pymcpevals

环境设置

export OPENAI_API_KEY="sk-..."        # or ANTHROPIC_API_KEY
export GEMINI_API_KEY="..."           # for Gemini models

输出格式

表视图(默认)

┌──────────────────────────────────────────┬────────┬─────┬──────┬─────┬──────┬──────┬──────┬───────┐
│ Name                                     │ Status │ Acc │ Comp │ Rel │ Clar │ Reas │ Avg  │ Tools │
├──────────────────────────────────────────┼────────┼─────┼──────┼─────┼──────┼──────┼──────┼───────┤
│ What is 15 + 27?                         │ PASS   │ 4.5 │ 4.2  │ 5.0 │ 4.8  │ 4.1  │ 4.52 │ ✓     │
│ What happens if I divide 10 by 0?        │ PASS   │ 4.0 │ 4.1  │ 4.5 │ 4.2  │ 3.8  │ 4.12 │ ✓     │
│ Multi-turn test                          │ PASS   │ 4.2 │ 4.5  │ 4.8 │ 4.1  │ 4.3  │ 4.38 │ ✓     │
└──────────────────────────────────────────┴────────┴─────┴──────┴─────┴──────┴──────┴──────┴───────┘

Summary: 3/3 passed (100.0%) - Average: 4.34/5.0

详细视图(--输出详细)

┌─────────────────────────┬────────┬──────┬────────────────────┬────────────────────┬────────┬────────┬──────────────────────────────┐
│ Test                    │ Status │ Score│ Expected Tools     │ Tools Used         │ Time   │ Errors │ Notes                        │
├─────────────────────────┼────────┼──────┼────────────────────┼────────────────────┼────────┼────────┼──────────────────────────────┤
│ What is 15 + 27?        │ PASS   │ 4.5  │ add                │ add                │ 12ms   │ 0      │ OK                           │
│ What happens if I div...│ PASS   │ 4.1  │ divide             │ divide             │ 8ms    │ 1      │ Handled error correctly      │
│ Multi-turn test         │ PASS   │ 4.4  │ add, multiply      │ add, multiply      │ 23ms   │ 0      │ Tool chaining successful     │
└─────────────────────────┴────────┴──────┴────────────────────┴────────────────────┴────────┴────────┴──────────────────────────────┘

🔧 Tool Execution Details:
• add: Called 2 times, avg 10ms, 100% success rate
• divide: Called 1 time, 8ms, handled error gracefully  
• multiply: Called 1 time, 13ms, 100% success rate

Summary: 3/3 passed (100.0%) - Average: 4.33/5.0

关键利益

面向MCP服务器开发人员

  • 🎯 以服务器为中心的测试:测试服务器功能,而不是LLM行为
  • ✅ 即时工具验证:如果调用了错误的工具,请立即获得反馈(不需要LLM)
  • 🔧 工具执行见解:查看成功率、时间和错误处理
  • 🔄 多回合验证:测试工具链和状态管理
  • 📊 能力评分:LLM判断服务器工具性能,忽略对话风格
  • 🛠️ 易于集成:通过FastMCP与任何MCP服务器配合使用

对于开发团队

  • 🚀 CI/CD集成:用于自动化测试管道的JUnitXML输出
  • 📈 进度跟踪:通过一致的评分监控随时间的改进
  • 🔄 回归测试:确保新更改不会破坏现有功能
  • ⚖️ 模型比较:跨不同LLM提供商进行测试

致谢

如果你在Node.js环境中工作,一定要查看原始版本 mcp评估 该项目还包括GitHub Action集成和监控功能。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 确保所有测试通过
  5. 提交拉取请求

许可证

MIT-请参阅许可证文件。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

MCP服务器Python本地部署自动化测试工具验证多轮对话测试CI/CD集成

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
pymcpevals (Akshay5995)

MCP World · 本页

0stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

pymcpevals (Akshay5995) 怎么安装?

公开资料给出的安装命令是 pip install pymcpevals,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

pymcpevals (Akshay5995) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

pymcpevals (Akshay5995) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

pymcpevals (Akshay5995) 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

pymcpevals (Akshay5995) 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP