项目简介

此项目提供了一个基于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服务器,请按照以下步骤操作:

  1. 获取代码: 假设您已将整个'AI-LLM-RAG-best-practices'仓库克隆到本地。导航到服务器代码所在目录:
    cd AI-LLM-RAG-best-practices/MCPServers/FastMCP-Example
  2. 安装依赖: 确保您的Python环境中安装了'fastmcp'库。如果未安装,请运行:
    pip install fastmcp
  3. 运行MCP服务器: 在项目目录下执行以下命令来启动服务器:
    python mcp_example.py
    服务器将默认在'http://127.0.0.1:8000'监听请求。

服务器配置

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与计算