使用说明

项目简介

本项目演示了一个使用 FastAPI 框架构建的远程 MCP 服务器,该服务器利用 Server-Sent Events (SSE) 技术,使得客户端能够通过 HTTP 协议安全且实时地访问服务器端注册的工具。此示例展示了如何将 MCP 协议应用于远程服务,为 LLM 应用提供网络化的上下文服务能力。

主要功能点

  • MCP 服务器实现: 基于 'fastmcp' 框架构建 MCP 服务器,处理 MCP 协议的请求和响应。
  • 远程工具调用: 通过 HTTP SSE 传输协议,实现客户端远程调用服务器端注册的工具。
  • FastAPI 框架: 使用 FastAPI 构建 HTTP 服务,提供易于扩展和高性能的 Web 服务能力。
  • SSE 实时通信: 采用 Server-Sent Events 技术,实现服务器向客户端的实时数据推送。
  • 示例工具: 包含一个简单的 'get_weather' 工具,演示工具注册和远程调用的过程。

安装步骤

  1. 确保已安装 Python 环境。
  2. 导航到仓库目录的 'projects/mcp-sse' 文件夹。
  3. 安装项目依赖。虽然示例中没有明确列出依赖,但根据代码推测,可能需要安装 'fastapi', 'uvicorn', 'fastmcp', 'httpx' 等库。可以使用以下命令安装 (如果尚未安装):
    pip install fastapi uvicorn fastmcp httpx

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器:

{
  "server_name": "App",
  "command": "python",
  "args": ["server.py"]
}

配置参数说明:

  • 'server_name': MCP 服务器的名称,本示例中为 "App" (定义在 'server.py' 中)。
  • 'command': 启动 MCP 服务器的命令,这里使用 'python' 解释器。
  • 'args': 传递给启动命令的参数,这里指定运行 'server.py' 文件。

基本使用方法

  1. 启动 MCP 服务器: 在 'projects/mcp-sse' 目录下,运行以下命令启动 MCP 服务器:

    python server.py

    服务器将会在 'http://localhost:8000' 地址启动并监听客户端连接。

  2. 运行 MCP 客户端: 在同一目录下,运行以下命令启动 MCP 客户端:

    python client.py

    客户端将连接到运行中的 MCP 服务器,并执行以下操作:

    • 发送 Ping 消息到服务器。
    • 获取并打印服务器注册的工具列表。
    • 调用 'get_weather' 工具,并打印工具返回的结果。
    • 发起一个标准的 HTTP API 调用到服务器的 '/test' 路径,并打印返回的 JSON 数据。

通过以上步骤,可以体验基于 SSE 的远程 MCP 服务器的功能,并了解如何通过客户端调用服务器端工具。

信息

分类

网页与API