Model Context Protocol (MCP) 与 Azure AI Foundry 集成 本指南演示如何将 Model Context Protocol (MCP) 服务器与 Azure AI Foundry 代理集成,实现强大的工具编排和企业级 AI 功能。 介绍 Model Context Protocol (MCP) 是一种开放标准,使 AI 应用能够安全地连接到外部数据源和工具。与 Azure AI Foundry 集成后,MCP 允许代理以标准化方式访问和交互各种外部服务、API 和数据源。 此集成结合了 MCP 工具生态的灵活性与 Azure AI Foundry 强大的代理框架,提供具备广泛定制能力的企业级 AI 解决方案。
本指南演示如何将 Model Context Protocol (MCP) 服务器与 Azure AI Foundry 代理集成,实现强大的工具编排和企业级 AI 功能。
Model Context Protocol (MCP) 是一种开放标准,使 AI 应用能够安全地连接到外部数据源和工具。与 Azure AI Foundry 集成后,MCP 允许代理以标准化方式访问和交互各种外部服务、API 和数据源。
此集成结合了 MCP 工具生态的灵活性与 Azure AI Foundry 强大的代理框架,提供具备广泛定制能力的企业级 AI 解决方案。
Note: 如果您想在 Azure AI Foundry Agent Service 中使用 MCP,目前仅支持以下区域:westus、westus2、uaenorth、southindia 和 switzerlandnorth
完成本指南后,您将能够:
开始前,请确保您具备:
Model Context Protocol 是 AI 应用连接外部数据源和工具的标准化方式。主要优势包括:
首先,配置环境变量和依赖项:
import os import time import json from azure.ai.agents.models import MessageTextContent, ListSortOrder from azure.ai.projects import AIProjectClient from azure.identity import DefaultAzureCredential ### 1. Initialize the AI Project Client ```python project_client = AIProjectClient( endpoint="https://your-project-endpoint.services.ai.azure.com/api/projects/your-project", credential=DefaultAzureCredential(), )
Configure an agent with MCP server integration:
with project_client: agent = project_client.agents.create_agent( model="gpt-4.1-nano", name="mcp_agent", instructions="你是一个乐于助人的助手。使用提供的工具回答问题,务必引用你的信息来源。", tools=[ { "type": "mcp", "server_label": "microsoft_docs", "server_url": "https://learn.microsoft.com/api/mcp", "require_approval": "never" } ], tool_resources=None ) print(f"已创建代理,代理 ID: {agent.id}")
When configuring MCP tools for your agent, you can specify several important parameters:
mcp_tool = { "type": "mcp", "server_label": "unique_server_name", # MCP 服务器的标识符 "server_url": "https://api.example.com/mcp", # MCP 服务器端点 "require_approval": "never" # 审批策略:目前仅支持 "never" }
Here's a complete example that demonstrates creating an agent with MCP integration and processing a conversation:
import time import json import os from azure.ai.agents.models import MessageTextContent, ListSortOrder from azure.ai.projects import AIProjectClient from azure.identity import DefaultAzureCredential def create_mcp_agent_example(): project_client = AIProjectClient( endpoint="https://your-endpoint.services.ai.azure.com/api/projects/your-project", credential=DefaultAzureCredential(), ) with project_client: # 创建带 MCP 工具的代理 agent = project_client.agents.create_agent( model="gpt-4.1-nano", name="documentation_assistant", instructions="你是专注于微软文档的乐于助人的助手。使用 Microsoft Learn MCP 服务器搜索准确、最新的信息。始终引用你的信息来源。", tools=[ { "type": "mcp", "server_label": "mslearn", "server_url": "https://learn.microsoft.com/api/mcp", "require_approval": "never" } ], tool_resources=None ) print(f"已创建代理,代理 ID: {agent.id}") # 创建对话线程 thread = project_client.agents.threads.create() print(f"已创建线程,线程 ID: {thread.id}") # 发送消息 message = project_client.agents.messages.create( thread_id=thread.id, role="user", content=".NET MAUI 是什么?它与 Xamarin.Forms 有何区别?", ) print(f"已创建消息,消息 ID: {message.id}") # 运行代理 run = project_client.agents.runs.create(thread_id=thread.id, agent_id=agent.id) # 轮询等待完成 while run.status in ["queued", "in_progress", "requires_action"]: time.sleep(1) run = project_client.agents.runs.get(thread_id=thread.id, run_id=run.id) print(f"运行状态:{run.status}") # 检查运行步骤和工具调用 run_steps = project_client.agents.run_steps.list(thread_id=thread.id, run_id=run.id) for step in run_steps: print(f"运行步骤:{step.id},状态:{step.status},类型:{step.type}") if step.type == "tool_calls": print("工具调用详情:") for tool_call in step.step_details.tool_calls: print(json.dumps(tool_call.as_dict(), indent=2)) # 显示对话内容 messages = project_client.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING) for data_point in messages: last_message_content = data_point.content[-1] if isinstance(last_message_content, MessageTextContent): print(f"{data_point.role}: {last_message_content.text.value}") return agent.id, thread.id if __name__ == "__main__": create_mcp_agent_example()
进一步提升您的 MCP 集成:
如需更多支持和问题解答:
免责声明:
本文件使用 AI 翻译服务 Co-op Translator 进行翻译。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议使用专业人工翻译。因使用本翻译而产生的任何误解或误释,我们概不负责。