使用说明

项目简介

本项目 'mcp-server-example-v2' 是一个使用 Python FastAPI 框架构建的 Model Context Protocol (MCP) 服务器的简单示例。它旨在演示 MCP 服务器的核心概念,例如如何根据客户端请求的 Prompt ID 和参数,从预定义的模板中生成上下文信息。

主要功能点

  • 健康检查: 提供 '/' 根路径的 GET 请求接口,用于检查服务器的运行状态和协议信息。
  • 上下文服务: 提供 '/context' 路径的 POST 请求接口,根据客户端提供的 Prompt ID 和参数,返回渲染后的上下文信息。
  • 参数化 Prompt 模板: 支持在 Prompt 模板中使用占位符,并根据客户端请求的参数动态替换。

安装步骤

  1. 安装依赖: 在项目根目录下打开终端,运行以下命令安装项目所需的 Python 依赖包:

    pip install -r requirements.txt
  2. 运行服务器: 在项目根目录下 'src' 文件夹中打开终端,运行以下命令启动 MCP 服务器:

    uvicorn src.main:app --reload

    服务器默认会在本地 '8000' 端口启动。

服务器配置

MCP 客户端需要配置以下信息才能连接到此 MCP 服务器。以下是一个 JSON 格式的配置示例,您可以将其添加到 MCP 客户端的服务器配置中。

{
  "serverName": "simple-mcp-server",
  "command": "uvicorn",
  "args": [
    "src.main:app",
    "--reload"
  ],
  "host": "http://localhost",
  "port": 8000,
  "protocol": "http",
  "endpoints": {
    "healthCheck": "/",  // 健康检查接口路径
    "context": "/context" // 获取上下文接口路径
  },
  "description": "一个简单的 MCP 服务器示例,提供基于 Prompt 模板的上下文服务。"
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 启动服务器的命令,这里使用 'uvicorn'。
  • 'args': 启动命令的参数,包括主应用文件路径 'src.main:app' 和热重载选项 '--reload' (开发环境建议开启)。
  • 'host': 服务器主机地址,默认为 'http://localhost'。
  • 'port': 服务器端口号,默认为 '8000'。
  • 'protocol': 服务器使用的协议,这里是 'http'。
  • 'endpoints': 服务器提供的端点信息,包括:
    • 'healthCheck': 健康检查接口路径。
    • 'context': 获取上下文接口路径。
  • 'description': 服务器描述信息,可以自定义。

注意: MCP 客户端需要根据实际情况修改 'host' 和 'port' 等配置信息,确保能够正确连接到 MCP 服务器。

基本使用方法

  1. 启动服务器: 按照安装步骤中的说明启动 MCP 服务器。

  2. 发送上下文请求: 使用 HTTP 客户端工具 (如 'curl'、Postman 等) 向服务器的 '/context' 接口发送 POST 请求。请求体应为 JSON 格式,包含 'prompt_id' 和 'parameters' 字段。

    示例请求 (使用 curl):

    curl -X POST http://localhost:8000/context \
      -H "Content-Type: application/json" \
      -d '{"prompt_id": "greeting", "parameters": {"time": "12:00 PM"}}'

    请求参数说明:

    • 'prompt_id': Prompt 模板的 ID,例如示例中的 '"greeting"' 或 '"data_analysis"'。
    • 'parameters': Prompt 模板中占位符的参数,以键值对形式表示。例如 '{"time": "12:00 PM"}' 用于替换 'greeting' 模板中的 '{time}' 占位符。
  3. 接收上下文响应: 服务器会返回 JSON 格式的响应,包含 'context' 字段,表示渲染后的上下文信息。

    示例响应:

    {
      "context": "Hello! I am an AI assistant. The current time is 12:00 PM.",
      "metadata": {
        "prompt_id": "greeting"
      }
    }

    响应字段说明:

    • 'context': 渲染后的上下文信息字符串。
    • 'metadata': 可选的元数据,例如 'prompt_id',用于标识请求的 Prompt 模板。

通过以上步骤,MCP 客户端可以向该 MCP 服务器请求上下文信息,并根据返回的上下文与 LLM 进行交互。

信息

分类

开发者工具