项目简介
此项目提供了一个基于Model Context Protocol (MCP) 的后端服务器实现,专注于管理和查询Cupcake订单数据。它利用FastMCP框架,以标准化的JSON-RPC协议与LLM客户端进行通信,提供了搜索和获取特定订单信息的工具。
主要功能点
- 订单资源管理: 托管并管理虚拟的Cupcake订单数据(通过'records.json'文件模拟)。
- 订单搜索工具: 允许LLM客户端通过关键词搜索相关的Cupcake订单ID。
- 订单详情查询工具: 允许LLM客户端通过订单ID获取特定Cupcake订单的详细信息。
- JSON-RPC通信: 服务器通过JSON-RPC协议与客户端交互,接收请求并返回结构化的响应。
- SSE传输支持: 服务器支持Server-Sent Events (SSE) 传输协议,方便客户端集成。
安装步骤
要运行此MCP服务器,请按照以下步骤操作:
- 获取代码: 假设您已将整个'AI-LLM-RAG-best-practices'仓库克隆到本地。导航到服务器代码所在目录:
cd AI-LLM-RAG-best-practices/MCPServers/FastMCP-Example - 安装依赖: 确保您的Python环境中安装了'fastmcp'库。如果未安装,请运行:
pip install fastmcp - 运行MCP服务器: 在项目目录下执行以下命令来启动服务器:
服务器将默认在'http://127.0.0.1:8000'监听请求。python mcp_example.py
服务器配置
MCP客户端可以通过JSON配置与此MCP服务器建立连接。以下是一个示例配置,您需要根据实际部署情况调整 'command' 和 'args' 中的主机和端口信息:
{ "name": "Cupcake MCP", "command": "python", "args": [ "path/to/AI-LLM-RAG-best-practices/MCPServers/FastMCP-Example/mcp_example.py" ], "host": "127.0.0.1", "port": 8000, "transport": "sse", "description": "一个用于搜索和获取Cupcake订单信息的MCP服务器。" }
配置参数说明:
- 'name': 服务器的显示名称,此处为“Cupcake MCP”。
- 'command': 启动MCP服务器的可执行文件,通常是'python'。
- 'args': 传递给'command'的参数列表。在这里,它包含Python脚本的路径。请将'path/to/...'替换为'mcp_example.py'脚本在您系统中的绝对或相对路径。
- 'host': MCP服务器监听的IP地址。默认是'127.0.0.1'(本地)。
- 'port': MCP服务器监听的端口号。默认是'8000'。
- 'transport': 服务器使用的传输协议,此处为'sse' (Server-Sent Events)。
- 'description': 服务器的简要描述。
基本使用方法
一旦服务器运行,您的LLM客户端可以通过配置的JSON-RPC协议与其通信,调用已注册的工具。
1. 搜索订单 ('search' 工具): 客户端可以发送一个包含关键词的请求来搜索Cupcake订单ID。
- 请求示例 (概念性):
{ "jsonrpc": "2.0", "method": "tool.search", "params": { "query": "chocolate cake" }, "id": 1 } - 预期响应 (概念性):
{ "jsonrpc": "2.0", "result": { "ids": ["order_123", "order_456"] }, "id": 1 }
2. 获取订单详情 ('fetch' 工具): 客户端可以发送一个包含订单ID的请求来获取该订单的详细信息。
- 请求示例 (概念性):
{ "jsonrpc": "2.0", "method": "tool.fetch", "params": { "id": "order_123" }, "id": 2 } - 预期响应 (概念性):
{ "jsonrpc": "2.0", "result": { "id": "order_123", "title": "Chocolate Cake Order", "text": "A large chocolate cake with sprinkles.", "metadata": { "customer": "Alice", "date": "2023-10-26" } }, "id": 2 }
信息
分类
AI与计算