项目简介
该项目是一个端到端的实验,旨在演示如何构建基于Model Context Protocol (MCP) 的服务器,将其容器化并部署到Azure Container Apps,并在Azure API Center中注册,最终通过LangGraph等AI框架发现并利用这些MCP工具。它提供了一个构建简单MCP服务器、部署和集成到Azure生态系统的完整流程。
主要功能点
- 快速构建MCP服务器: 使用 'FastMCP' 库快速创建符合MCP协议的服务器,用于托管AI工具。例如,仓库中包含了实现汽车零件查询或天气预报工具的MCP服务器示例。
- Azure云部署: 将MCP服务器打包为容器并部署到Azure Container Apps,利用Azure的弹性伸缩能力和慷慨的免费额度。
- API中心注册与发现: 在Azure API Center的MCP注册表中注册部署的MCP服务器,使其能被其他应用和LLM客户端轻松发现和管理。
- AI工具消费: 演示如何通过 'langchain-mcp-adapters' 将已注册的MCP工具集成到 'LangGraph' 驱动的AI应用中,实现LLM对外部工具的智能调用。
- 安全认证集成: 支持Azure AD认证,确保与Azure OpenAI等服务的安全连接,并提供API Key认证方式。
安装步骤
- Azure环境准备: 确保您拥有一个已启用Azure API Center的Azure订阅。
- 开发环境配置:
- 安装 Python 3.10+。
- 安装并配置 Azure CLI。
- 建议安装 VS Code 及 MCP 扩展(可选)。
- 准备 OpenAI 或 Azure OpenAI 服务访问权限。
- 克隆仓库与依赖安装:
git clone https://github.com/john-carroll-sw/mcp-registry.git cd mcp-registry # 假设存在requirements.txt,或手动安装所需库: # pip install python-dotenv fastmcp httpx langchain-mcp-adapters langgraph langchain-openai azure-identity - 构建与部署MCP服务器: 遵循仓库中 'part1-aca-mcp-weather-lab.md' (或类似指南)的详细说明,构建您的MCP服务器(例如示例中的天气服务器),将其容器化并部署到Azure Container Apps。
- 在Azure API Center注册: 按照微软官方文档指导,将您部署的MCP服务器注册到Azure API Center。
服务器配置
MCP客户端需要配置MCP服务器的连接信息。根据MCP服务器的部署方式(本地运行或远程部署),配置信息会有所不同。
-
本地MCP服务器(例如 'mcp_server_carparts.py')的配置示例: 如果MCP服务器脚本(例如 'mcp_server_carparts.py')在本地运行,MCP客户端可以通过启动命令来连接。以下是一个名为“revparts”的本地服务器配置示例:
{ "revparts": { "command": "python", "args": ["mcp_server_carparts.py"], "transport": "sse" } }- 'revparts':客户端为该MCP服务器指定的内部名称。
- 'command':启动MCP服务器所使用的命令,例如 'python'。
- 'args':传递给启动命令的参数,这里是服务器脚本 'mcp_server_carparts.py'。
- 'transport':指定MCP服务器使用的传输协议,这里是 'sse' (Server-Sent Events)。
-
远程部署的MCP服务器(例如Azure Container Apps上的服务器)的配置示例: 当MCP服务器部署在远程(如Azure Container Apps)时,MCP客户端通过URL进行连接。以下是一个名为“weather”的远程服务器配置示例:
{ "weather": { "url": "https://your-weather-mcp-server-url/sse", "transport": "sse", "headers": { "x-api-key": "your-api-key-if-required" } } }- 'weather':客户端为该MCP服务器指定的内部名称。
- 'url':部署后的MCP服务器的SSE端点URL。
- 'transport':指定MCP服务器使用的传输协议,这里是 'sse'。
- 'headers':可选,用于认证(如API Key)或其他自定义HTTP头。 (本项目中的 'multi_mcp_client.py' 示例主要演示了这种远程连接方式。)
基本使用方法
一旦MCP服务器部署并注册到Azure API Center,您可以运行项目中的客户端示例来连接和使用它:
- 设置环境变量: 在项目的 '.env' 文件或系统环境中配置必要的变量,包括您部署的MCP服务器的URL('WEATHER_MCP_URL')、API Key('WEATHER_API_KEY',如果需要)以及Azure OpenAI服务的端点、部署名称和API版本等。
- 运行客户端代码: 运行 'multi_mcp_client.py' 脚本。该脚本会使用 'MultiServerMCPClient' 连接到您配置的MCP服务器,自动发现其提供的工具,并利用 'LangGraph' 代理和 Azure OpenAI 模型来调用这些工具,以响应用户查询。例如,它能查询部署的天气服务器获取天气信息。
python -m asyncio multi_mcp_client.py
信息
分类
AI与计算