精通模型上下文协议(MCP):基于 Azure OpenAI 构建多服务器 MCP 实践
引言
模型上下文协议(Model Context Protocol,简称 MCP)正在迅速成为打造高度智能和可互操作 AI 应用的重要标准框架。大多数有关 MCP 的资料聚焦于单服务器部署,而在本文中,我们将介绍如何结合 Azure OpenAI,基于多服务器 MCP 架构实现一个可扩展、可定制的智能体平台,让你能够在一个前端界面下,便捷地连接和编排多个工具服务器,实现跨领域智能体工具协作。
什么是 MCP?为什么很重要?
MCP 为代理和 AI 应用与各种工具服务之间的交互提供了标准化方案,并且无关使用的编程语言或平台。它就像 AI 应用世界的“万能连接器”。目前,Azure AI Foundry 与 Azure MCP Server 已为生态带来了丰富的现有 MCP 工具,方便开发者直接集成与扩展。
为什么选择多服务器 MCP?
在真实世界业务中,复杂流程常常需要多种专用 API(如:数据库查询、文件编辑、网页信息抓取等多种“工具”)。多服务器 MCP 允许我们灵活地将这些多样化的工具服务器无缝连接、编排在一起:
- 即插即用工具服务器:支持自定义、远程及预置 MCP 服务器(如自定义数学、Fabric、Azure AI Foundry 等)
- 互操作性:不同 AI 工具可自如协作
- 智能体流程编排:AI 代理可在多个专用领域间自动推理、规划、跨域调用工具
- Azure OpenAI 集成:利用企业级大模型与安全能力
- 可扩展性:可轻松增加/删除工具服务器,无需重写主代理逻辑
系统架构综述
核心组件说明:
- MCP 服务器:通过 MCP 协议(如 stdio、SSE 等)对外暴露工具(功能)
- MCP 客户端:连接多个 MCP 服务器,实现工具发现与编排
- Langchain MCP 适配器:连接 Langchain 智能体与 MCP 工具
- FastAPI 后端:提供 API 并服务前端页面
此方式具备如下优势:
- 服务去耦合、语言无关
- 工具可动态发现
- 可与 LLM 和外部 API 无缝集成
- 尤其结合 Azure OpenAI 实现可扩展、可安全托管
快速实操:打造多服务器 MCP 平台
1. 在 client.py 引入 Langchain 与 MultiServer MCP
|
|
2. 用 FastAPI 创建前端 API(frontend_api.py)
|
|
3. 定制 MCP 数学服务器示例(math_server.py)
|
|
4. 集成 Azure AI Foundry MCP 服务器
在 .vscode/mcp.json
加入 Azure AI Foundry 配置:
|
|
Python 代码中动态加载所有服务器:
|
|
5. 展示工具列表接口
|
|
6. 智能体编排与调用
|
|
Bonus:前端实时查询所有 MCP 工具
后端新增 /tools
接口,便于前端动态展示已连接的 MCP 工具列表:
|
|
结语与实践建议
通过本文的架构与代码模版,开发者可以:
- 便捷地集成自定义或现有 MCP 服务器(涵盖数学、Fabric、Azure AI Foundry 等)
- 构建专属的 FastAPI 前端,打造交互式体验
- 随时发现和编排各类工具
- 在安全、可扩展的平台框架下高效用好 Azure OpenAI 及其他 LLM
动手实践:Fork 本代码仓库,开启你的智能体开发之旅!
拓展与注意事项
- 企业级多服务器 MCP 推荐采用 SSE 方式暴露 MCP,便于扩展(但每个端口需独立,对扩展有挑战,当前 Demo 采用 stdio 简化启动)
- 工具发现仅限于客户端配置中注册的 MCP 服务器
- 小心命名空间冲突,尤其当连接多个自定义工具
- 客户端需重新初始化以检测新增服务器/工具,影响运行时动态发现
- 自定义 MCP 服务器的安全规范亟需标准化
推荐实践:
- 建议用 API Management (APIM) 作为 MCP 服务器的认证网关
- 利用Semantic Kernel 的 MCP 插件机制提升集成能力
- 可采用虚拟环境统一管理环境变量
期待大家基于本文架构打造属于自己的 AI 智能体平台!
- 原文作者:BeanHsiang
- 原文链接:https://beanhsiang.github.io/post/2025-06-07-mastering-model-context-protocol-mcp-building-multi-server/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。