使用说明

项目简介

本项目是一个基于 FastAPI 和 FastMCP 框架实现的 MCP (Model Context Protocol) 服务器示例。它提供了一个简单的 "Ping-Pong" 工具和 Prompt,用于演示 MCP 服务器的基本功能,包括工具的注册和调用、Prompt 模板的定义和获取,以及通过 API 和 SSE 两种方式与 MCP 客户端进行通信。

主要功能点

  • 提供 MCP 工具 (Tools): 实现了 'ping-pong' 工具,客户端可以调用该工具执行 'ping'、'pong' 和 'count' 命令,服务器会根据命令返回 'pong'、'ping' 或计数结果。
  • 提供 MCP Prompt 模板 (Prompts): 定义了 'ping-pong' Prompt,客户端可以获取该 Prompt 的内容,用于指导 LLM 与 Ping-Pong 工具的交互。
  • 支持 API 调用: 通过 FastAPI 提供 HTTP API 接口,客户端可以通过 HTTP 请求调用 MCP 工具和获取 Prompt。
  • 支持 SSE (Server-Sent Events) 传输: 实现了基于 SSE 的 MCP 服务器,客户端可以通过 SSE 长连接与服务器进行双向通信,实现实时的 MCP 交互。
  • 会话管理: 使用简单的 'SessionManager' 实现了基于内存的会话管理,为每个客户端会话维护一个计数器。

安装步骤

  1. 安装 Poetry: 如果尚未安装 Poetry,请先安装 Poetry 依赖管理工具。
    # 参考 Poetry 官方文档安装
  2. 安装依赖: 使用 Poetry 安装项目依赖。
    poetry install

服务器配置

1. API 服务器配置 (mcp-api-server.py)

MCP 客户端连接 API 服务器时,需要配置以下信息:

{
  "serverName": "mcp-api-server",
  "command": "python",
  "args": ["mcp-api-server.py"],
  "transport": "http-api",
  "baseUrl": "http://localhost:8080"
}

参数注释:

  • 'serverName': 服务器名称,可以自定义,用于在客户端标识服务器。例如: "mcp-api-server"。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 启动服务器命令的参数,这里指定运行 'mcp-api-server.py' 脚本。
  • 'transport': 传输协议,API 服务器使用 'http-api'。
  • 'baseUrl': API 服务器的基础 URL,默认为 'http://localhost:8080',如果服务器地址或端口有变化,请相应修改。

启动 API 服务器:

python mcp-api-server.py

服务器将会在 'http://localhost:8080' 启动。

2. SSE 服务器配置 (mcp-sse-server.py)

MCP 客户端连接 SSE 服务器时,需要配置以下信息:

{
  "serverName": "mcp-sse-server",
  "command": "python",
  "args": ["mcp-sse-server.py"],
  "transport": "sse",
  "baseUrl": "http://localhost:8080/sse"
}

参数注释:

  • 'serverName': 服务器名称,可以自定义,用于在客户端标识服务器。例如: "mcp-sse-server"。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 启动服务器命令的参数,这里指定运行 'mcp-sse-server.py' 脚本。
  • 'transport': 传输协议,SSE 服务器使用 'sse'。
  • 'baseUrl': SSE 服务器的基础 URL,默认为 'http://localhost:8080/sse',如果服务器地址或端口有变化,请相应修改。 注意 SSE 的 URL 路径为 '/sse'。

启动 SSE 服务器:

python mcp-sse-server.py

服务器将会在 'http://localhost:8080' 启动。

基本使用方法

1. 使用 API 客户端 (mcp-api-client.html):

  • 启动 API 服务器 ('python mcp-api-server.py')。
  • 使用浏览器打开 'mcp-api-client.html' 文件。
  • 在网页 UI 中,可以输入 Prompt 名称查询 Prompt 内容,也可以输入命令调用 'ping-pong' 工具。

2. 使用 SSE 客户端 (mcp-sse-client.py):

  • 启动 SSE 服务器 ('python mcp-sse-server.py')。
  • 运行 SSE 客户端脚本 ('python mcp-sse-client.py')。
  • 在客户端命令行中,输入 'ping'、'pong' 或 'count' 命令,与服务器进行交互。输入 'exit' 或 'quit' 退出客户端。

注意: 本示例仅为演示 MCP 服务器基本功能,实际应用中可能需要根据具体需求扩展工具和 Prompt,并考虑更完善的会话管理和错误处理机制。

信息

分类

开发者工具