MCP服务器评估工具

一个使用Azure AI Foundry测试MCP(Model Context Protocol)服务器的全面评估管道,评估工具调用准确性、响应质量和代理行为,并将结果发布到Foundry门户。

  • by kewear
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kewear/MCP-Server-Evaluations

使用说明

MCP服务器评估

使用Azure AI Foundry测试MCP(模型上下文协议)服务器的综合评估管道。该项目评估MCP服务器的工具调用准确性、响应质量和代理行为——将结果直接发布到Foundry门户。

概述

此管道评估通过Azure Logic Apps连接到Salesforce CRM的MCP服务器,提供4个工具:

工具 说明
Create_record 在Salesforce中创建联系人
Update_record_V3 在Salesforce中更新商机
Get_Account_records_from_Salesforce 检索所有帐户记录
Get_Opportunity_records_from_Salesforce 检索所有Opportunity记录

评估包括 21个测试查询 分为5类:

  • 工具选择 --代理是否为任务选择了正确的工具?
  • 参数提取 --参数是否从自然语言中正确解析?
  • 对抗的 --代理如何处理提示注入、SQL注入和范围外请求?
  • 多步骤 --代理可以链接多个工具调用来完成复杂的任务吗?
  • 质量 --代理人是否准确回答知识问题,而不需要不必要的工具调用?

建筑

┌─────────────────────┐     ┌──────────────────────┐     ┌─────────────────────┐
│  01_run_test_queries │────▶│ 02_convert_and_eval  │────▶│ 03_batch_evaluate   │
│  (Assistants API)   │     │ (Local Evaluators)    │     │ (Foundry Portal)    │
└─────────────────────┘     └──────────────────────┘     └─────────────────────┘
         │                                                          │
         │                  ┌──────────────────────┐               │
         └─────────────────▶│ 04_tool_eval         │◀──────────────┘
                            │ (Responses API +     │
                            │  Tool Evaluators)    │
                            └──────────────────────┘
                                      │
                                      ▼
                            ┌──────────────────────┐
                            │   MCP Server         │
                            │ (Azure Logic Apps)   │
                            └──────────────────────┘

脚本

01_run_test_queries.py --测试查询运行器

使用与MCP服务器匹配的功能工具,通过Azure AI代理(助理API)运行21个测试查询。工具调用会被拦截并转发到真实的MCP服务器,或者在未设置API密钥的情况下进行模拟。

输出: test_run_results.json

02_convert_and_evaluate.py --本地评估运行器

使用将代理线程转换为计算格式 AIAgentConverter,然后运行 11名当地铸造厂评估员 对于深度诊断:

类别 评估员
工具 tool_call_acurity、tool_call_success、tool_output_utilization
质量 相关性、连贯性、流畅性、基础性
代理 任务遵守、意图解决、响应完整性
安全 内容安全(暴力、自残、性、仇恨)

输出: eval_results_detailed.json

03_batch_evaluate_to_foundry.py --质量评估→ 铸造门户

向Foundry v2 OpenAI Evals API提交评估数据(client.evals.create())有6名质量/代理评估员在运行 服务器端。结果显示在Foundry门户的Build下→ 评价。

输出: batch_eval_results.json, product_review_summary.json

04_tool_eval_to_foundry.py --工具规避→ 铸造门户

通过重新运行查询 响应API 与指定代理人(PromptAgentDefinition),捕获完整的工具调用跟踪。评估方式 builtin.tool_call_accuracy 它可以完全查看工具选择、参数和结果。

输出: tool_eval_results.json

为什么是两个Foundry脚本? 质量评估人员(连贯性、相关性等)通过 custom 数据源。工具评估人员需要通过以下方式获得完整的对话跟踪 azure_ai_responses 数据源-需要Responses API而不是Assistants API。

设置

先决条件

  • Python 3.10+
  • 一 Azure AI Foundry 使用部署的模型进行项目(例如。, gpt-4.1)
  • Azure CLI已登录(az login)--脚本使用 DefaultAzureCredential

安装

pip install -r requirements.txt

配置

cp .env.example .env
# Edit .env with your Foundry project endpoint and deployment name
变量 描述
AZURE_AI_PROJECT Foundry项目端点(来自门户概述页面)
AZURE_ENDPOINT Azure OpenAI端点
AZURE_DEPLOYMENT_NAME 模型部署名称(例如。, gpt-4.1)
MCP_API_KEY (可选) MCP服务器API密钥。如果未设置,工具调用将返回模拟Salesforce数据

用法

按顺序运行脚本:

# Step 1: Run test queries through the agent
python 01_run_test_queries.py

# Step 2: Run local evaluators for detailed diagnostics
python 02_convert_and_evaluate.py

# Step 3: Publish quality evaluations to Foundry portal
python 03_batch_evaluate_to_foundry.py

# Step 4: Publish tool evaluations to Foundry portal
python 04_tool_eval_to_foundry.py

铸造评估器映射

评估员 铸造厂内置名称 类型 离线/在线
连贯性 builtin.coherence 质量 离线
相关性 builtin.relevance 质量 离线
流利度 builtin.fluency 质量 离线
基础性 builtin.groundedness 质量 离线
任务依从性 builtin.task_adherence 代理人 两者都有
意图解决 builtin.intent_resolution 代理人 两者都有
工具调用准确性 builtin.tool_call_accuracy 工具 离线
内容安全 ContentSafetyEvaluator 安全 两者皆有

样本结果

Quality Evaluators (Script 03):
  coherence            100%
  relevance             95%
  fluency              100%
  groundedness         100%

Tool Evaluators (Script 04):
  tool_call_accuracy   100%
  intent_resolution     95%
  task_adherence        90%

许可证

麻省理工学院