项目简介
此项目包含一个基于 Model Context Protocol (MCP) 构建的简单酒店查询后端服务示例。它演示了如何使用 MCP 协议来托管和提供一个“酒店查询”工具,允许大型语言模型 (LLM) 客户端以标准化的方式调用此功能,以获取特定地点和日期的酒店建议。
主要功能点
- 酒店搜索工具: 根据城市、入住日期和退房日期搜索并返回模拟的酒店信息。
- 日期验证: 自动验证入住和退房日期是否为有效的 ISO 格式(YYYY-MM-DD),并确保退房日期晚于入住日期。
- 模拟数据生成: 生成包含酒店名称、地址、评级、价格、类型和便利设施等详细信息的模拟酒店列表。
- MCP 协议支持: 通过 'fastmcp' 库实现 MCP JSON-RPC 协议,支持 'streamable-http' 传输方式,方便与 MCP 客户端集成。
安装步骤
- 克隆仓库:
打开终端或命令提示符,执行以下命令克隆项目仓库:
git clone https://github.com/Azure-Samples/python-ai-agent-frameworks-demos.git cd python-ai-agent-frameworks-demos - 创建并激活虚拟环境:
为了避免依赖冲突,建议创建并使用一个虚拟环境:
python -m venv venv source venv/bin/activate # 在 Windows 系统上,请使用 'venv\Scripts\activate' - 安装依赖:
除了仓库自带的 'requirements.txt' 外,此 MCP 服务器示例还需要安装 'mcp[fastapi]' 和 'faker' 库:
pip install -r requirements.txt pip install "mcp[fastapi]" faker
服务器配置 (供 MCP 客户端使用)
MCP 客户端需要以下配置信息来连接到此酒店查询服务。这些信息通常会被配置在客户端的配置文件中,以便客户端知道如何启动和与服务器通信。
{ "name": "TravelServer", "command": "python", "args": [ "examples/mcp_server_basic.py" ], "url": "http://localhost:8000/mcp", "transport": "streamable_http", "description": "一个用于查找酒店并返回详细建议的 MCP 服务器。" }
- 'name': 服务器的唯一标识符,例如 "TravelServer"。
- 'command': 启动 MCP 服务器所需的可执行命令,例如 "python"。
- 'args': 传递给 'command' 的参数列表,这里是服务器脚本的相对路径。
- 'url': MCP 服务器监听的端点 URL,默认是 'http://localhost:8000/mcp'。
- 'transport': 服务器使用的传输协议,这里是 'streamable_http'。
- 'description': 服务器功能的简要描述。
基本使用方法
-
启动 MCP 服务器: 在一个新的终端窗口中,确保您已激活虚拟环境并位于仓库根目录,然后运行以下命令:
python examples/mcp_server_basic.py服务器将在 'http://localhost:8000/mcp' 启动并监听 MCP 客户端的请求。
-
(可选)使用示例客户端: 此仓库中的多个示例文件包含了连接到 MCP 服务器的客户端代码。例如,您可以运行 'examples/pydanticai_mcp_http.py' 来测试酒店搜索功能:
python examples/pydanticai_mcp_http.py该客户端脚本会向您刚刚启动的 MCP 服务器发送酒店查询请求,并将返回的酒店建议打印到控制台。
信息
分类
AI与计算