Token导航 LogoToken导航TokenDH.com
Evaluation MCP Gen logo
开发工具stdio官方级别未说明来源级核验

Evaluation MCP Gen

MCP Server

MCPFlow-Evaluation是一个用于评估大型语言模型在再生MCP工具并在现有工作流中验证其功能的综合框架。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Python自动化测试开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

zoe-yyx

提供方

zoe-yyx

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

MCPFlow评估

一个全面的评估框架,用于测试LLM在再生MCP(模型上下文协议)工具方面的能力,并在现有工作流程中验证其功能。

概述

MCPFlow评估评估大型语言模型在给定工作流上下文时重新生成功能性MCP工具的能力。该框架采用了一种稳健的方法,侧重于多个评估指标: 语法正确性, 工具注册成功, 单个工具执行,以及 工作流集成成功.

主要特点

  • LLM驱动刀具再生:使用具有丰富工作流上下文的LLM重新生成MCP工具
  • 综合评价指标:从语法到工作流执行的多级验证
  • 单个工具测试:每个工具都经过独立测试,以进行准确评估
  • FastMCP集成:基于FastMCP框架,用于MCP服务器/客户端实现
  • 上下文感知生成:使用workflow.json、server.py、run_workflow.py和pyproject.toml作为上下文
  • 多数据集支持:在独立环境中处理多个数据集
  • 分层结果:有组织的输出结构,包括数据集级别和总体摘要
  • 详细日志记录:完成测试输出捕获,用于调试和分析

快速开始

1.安装

# Clone the repository
git clone 
cd MCPFlow-Evaluation

# Install dependencies using uv (recommended)
uv sync

# Or using pip
pip install -e .

2.配置

根据提供的示例创建配置文件:

cp config.yaml.example config.yaml

编辑 config.yaml 使用您的设置。以下是关键配置部分:

# Framework Configuration
framework_version: "1.0.0"
evaluation_id: "default-evaluation"
output_format: "json"

# Dataset Configuration
dataset_path: "dataset/example"  # Path to dataset directory
tasks: ['tools_generation']      # Evaluation tasks to run

# Logging Configuration
log_level: "INFO"
debug_mode: false
save_intermediate_results: false

# LLM Configuration (Required)
llm_config:
  provider: "openai"
  model_name: "gpt-4o"
  api_key: "YOUR_API_KEY_HERE"  # Replace with your actual API key
  base_url: "http://localhost:4000/v1"  # Or OpenAI API URL
  temperature: 0.2
  max_tokens: 2000
  timeout: 60.0
  retry_attempts: 2
  retry_delay: 1.0

# End-to-end Execution Configuration
e2e_config:
  execution_timeout: 30.0
  max_tool_generation: 5
  max_tool_generation_attempts: 2
  generated_module_name: "generated_tools"
  allow_parallel_execution: false
  error_handling_strategy: "continue"
  validation_level: "import"
  runner: "uv"  # Use uv for workflow execution

3.运行评估

测试评估系统:

# Run the MCP tool evaluation test
uv run python test/test_mcp_tool_evaluation.py

测试LLM连接:

# Verify LLM connectivity
uv run python test/test_llm_connection.py

建筑

核心组件

评估程序

  1. 上下文集合:从多个来源收集工作流上下文:

- workflow.json:工作流结构和步骤说明 - server.py:服务器实现和工具注册模式 - run_workflow.py:工具使用示例和执行上下文 - pyproject.toml:可用依赖关系和项目配置

  1. 刀具再生:使用LLM重新生成每个MCP工具,包括:

- 丰富的上下文提示 - 显式参数要求(无\*args/\*\*kwargs) - JSON可序列化返回值 - FastMCP兼容性

  1. 多级验证:

- 语法验证:使用Python检查生成的代码语法 compile() 函数 - 工具注册:使用FastMCP SDK在MCP服务器上注册重新生成的工具 - 单个工具测试:在独立的服务器会话中独立测试每个工具 - 工作流集成:运行原始工作流测试以验证端到端功能

  1. 结果管理:生成综合报告,包括:

- 单个工具测试结果和输出 - 数据集级摘要 - 总体评价统计 - 详细的错误日志和调试信息

数据集结构

数据集应遵循此结构(请参见 dataset/README.md 详细规格):

dataset/
├── example/
│   ├── workflow.json          # Workflow definition
│   ├── run_workflow.py        # Workflow execution script
│   ├── pyproject.toml         # Dependencies and project config
│   ├── uv.lock               # Dependency lock file
│   └── mcp_server/
│       ├── server.py          # FastMCP server implementation
│       └── tools/             # Tool implementations
│           ├── __init__.py
│           ├── add.py
│           ├── multiply.py
│           └── ...

所需文件

  • workflow.json:带有步骤描述和工具映射的工作流结构
  • run_workflow.py:使用FastMCP客户端的可执行工作流
  • mcp_server/server.py:注册工具的FastMCP服务器
  • **mcp_server/tools/*.py**:单个工具实施
  • pyproject.toml:项目依赖关系和配置
  • uv.lock:可复制环境的依赖锁定文件

工具要求

工具必须与FastMCP兼容:

def tool_name(param1: str, param2: int) -> dict:
    """Tool description"""
    # Implementation
    return {"result": "value"}

# TOOL_METADATA: {"name": "tool_name", "description": "...", "parameters": {...}}

重要:工具无法使用 *args**kwargs (FastMCP限制)。

结果结构

该框架按以下结构生成有组织的结果:

results/
├── dataset_name/
│   ├── evaluation_workflow_name.json    # Detailed workflow results
│   ├── summary.json                     # Dataset-level summary
│   ├── tool1.py                        # Regenerated tool files
│   ├── tool2.py
│   └── ...
└── overall_summary.json                 # Cross-dataset summary

结果文件

  • **evaluation_*.json**:每个工作流程的完整评估结果,包括:

- 单个工具测试结果和输出 - 语法验证结果 - 注册成功状态 - 执行测试日志 - 错误消息和调试信息

  • summary.json:数据集级统计包括:

- 每个验证级别的成功率 - 执行时间指标 - 逐个工具分解

  • overall_summary.json:
  • overall_summary.json:跨数据集汇总统计

评估指标

该框架提供了多个层面的全面评估:

1.语法正确率

  • 生成的具有有效Python语法的工具的百分比
  • 使用Python的内置验证 compile() 函数
  • 表示LLM生成语法正确代码的能力

2.刀具注册成功率

  • 成功向MCP服务器注册的工具百分比
  • 测试FastMCP兼容性和元数据正确性
  • 指示正确的工具接口实现

3.单个工具执行成功率

  • 单独成功执行的工具百分比
  • 每个工具都在自己的服务器会话中独立测试
  • 提供对单个工具功能的准确评估

4.工作流集成成功率

  • 使用重新生成的工具成功执行的工作流百分比
  • 测试端到端功能和工具交互
  • 表示生成的工具在实际场景中的实用性

示例结果

{
  "dataset_name": "example",
  "total_workflows": 1,
  "successful_workflows": 1,
  "total_tools": 5,
  "successful_tools": 5,
  "syntax_correct_tools": 5,
  "execution_success_rate": 1.0,
  "syntax_success_rate": 1.0,
  "average_execution_time": 12.60,
  "results": [
    {
      "workflow_id": "simple_math_operations_workflow",
      "workflow_name": "Simple Math Operations Workflow",
      "tools": [
        {
          "name": "add",
          "registration_success": true,
          "execution_success": true,
          "syntax_correct": true,
          "test_stderr": "... detailed test output ..."
        }
      ],
      "execution_success": true,
      "execution_time": 12.60
    }
  ]
}

控制台输出示例:

=== Evaluation Results ===
Dataset: example
Total workflows: 1
Successful workflows: 1
Total tools: 5
Tools with correct syntax: 5
Tools that passed registration: 5
Tools that passed individual tests: 5
Workflow success rate: 100.00%
Syntax correctness rate: 100.00%
Registration success rate: 100.00%
Individual test success rate: 100.00%
Average execution time: 12.60s

--- Workflow: Simple Math Operations Workflow ---
  Overall workflow success: True
  Tools regenerated: 5
    - add: ✓ Syntax OK | ✓ Registration OK | ✓ Individual Test OK
    - subtract: ✓ Syntax OK | ✓ Registration OK | ✓ Individual Test OK
    - multiply: ✓ Syntax OK | ✓ Registration OK | ✓ Individual Test OK
    - divide: ✓ Syntax OK | ✓ Registration OK | ✓ Individual Test OK
    - fetch_data: ✓ Syntax OK | ✓ Registration OK | ✓ Individual Test OK

发展

项目结构

MCPFlow-Evaluation/
├── core/                      # Core framework components
│   └── config.py             # Configuration management
├── tasks/                     # Main evaluation tasks
│   ├── mcp_tool_regenerator.py  # Tool regeneration logic
│   ├── mcp_tool_evaluator.py    # Dataset evaluation coordinator
│   └── result_storage.py        # Result persistence
├── utils/                     # Utility modules
│   ├── llm_interface.py      # LLM communication
│   ├── logger.py             # Logging utilities
│   ├── metrics.py            # Metrics calculation
│   └── json_encoder.py       # JSON serialization utilities
├── models/                    # Data models
│   └── workflow.py           # Workflow representations
├── test/                      # Test suite
│   ├── test_mcp_tool_evaluation.py  # Main evaluation test
│   └── test_llm_connection.py       # LLM connectivity test
├── dataset/                   # Evaluation datasets
│   └── example/              # Example workflow
├── results/                   # Evaluation results (generated)
│   └── example/              # Dataset-specific results
└── docs/                      # Documentation
    └── mcp_tool_evaluation.md # Detailed evaluation docs

运行测试

# Run main evaluation test
uv run python test/test_mcp_tool_evaluation.py

# Test LLM connection
uv run python test/test_llm_connection.py

# Run with specific configuration
uv run python test/test_mcp_tool_evaluation.py --config custom_config.yaml

添加新数据集

  1. 在下创建新目录 dataset/
  2. 遵循中指定的结构 dataset/README.md
  3. 确保所有必需的文件都存在并且格式正确
  4. 包含 pyproject.tomluv.lock 用于依赖关系管理
  5. 在添加到评估套件之前进行本地测试

配置选项

该框架支持通过以下方式进行广泛配置 config.yaml:

框架设置

  • framework_version:版本标识符
  • evaluation_id:评估运行的唯一标识符
  • output_format:结果输出格式(目前仅JSON)

数据集设置

  • dataset_path:数据集目录或特定数据集的路径
  • tasks:要执行的评估任务列表

LLM设置

  • provider:法学硕士提供者(openai、azure等)
  • model_name:要使用的具体模型
  • api_key:身份验证密钥
  • base_url:API终结点URL
  • temperature:生成随机性(0.0-1.0)
  • max_tokens:最大响应长度
  • timeout:请求超时(秒)
  • retry_attempts:重试尝试次数
  • retry_delay:重试之间的延迟

执行设置

  • execution_timeout:工作流执行超时
  • max_tool_generation:要生成的最大工具数
  • max_tool_generation_attempts:重试工具生成尝试
  • validation_level:验证深度(语法、导入、运行时、集成)
  • runner:执行环境(python或uv)
  • error_handling_strategy:如何处理错误(继续、停止、重试)

贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 按照现有模式进行更改
  4. 添加新功能的测试
  5. 更新文档
  6. 提交拉取请求

故障排除

常见问题

配置错误:

ValueError: Required configuration key 'api_key' is missing
  • 解决方案:确保所有必填字段都存在于您的 config.yaml

导入错误:

ModuleNotFoundError: No module named 'tasks'
  • 解决方案:使用 uv run 在适当的环境中执行脚本

LLM连接问题:

Error code: 400 - {'error': {'message': 'Invalid API key'}}
  • 解决方案:验证API密钥和LLM服务器配置

工具生成问题:

SyntaxError: invalid syntax in generated code
  • 解决方案:检查LLM模型功能并提示工程

紫外线环境问题:

uv: command not found
  • 解决方案:安装uv包管理器或在配置中使用python runner

调试模式

在配置中启用调试模式以进行详细日志记录:

debug_mode: true
log_level: "DEBUG"
save_intermediate_results: true

这将提供:

  • 详细的LLM请求/响应日志
  • 逐步执行跟踪
  • 中间文件保存
  • 增强的错误报告

性能优化

  • 并行执行:启用 allow_parallel_execution 为了更快的处理
  • 超时调整:调整 execution_timeout 基于工作流复杂性
  • 重试策略:配置 retry_attemptsretry_delay 可靠性
  • 验证级别:使用适当 validation_level 满足您的需求

安全考虑

  • API密钥:存储在配置文件中,从不存储在代码中
  • 配置文件:使用 . gitignore 排除敏感文件
  • 代码执行:生成的工具在隔离环境中运行
  • 输入验证:验证所有用户输入和配置参数

许可证

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

致谢

  • 用于MCP服务器实现的FastMCP框架
  • 用于Python环境管理的UV包管理器
  • OpenAI和其他LLM提供商提供工具生成功能

______________________________________________________________________

有关评估方法和实施细节的更多详细信息,请参阅 docs/mcp_tool_evaluation.md.

目录标签

目录标签

Python自动化测试开发工具LLM评估本地部署工具再生工作流验证MCP工具

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP