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%许可证
麻省理工学院
