使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 协议和 Server-Sent Events (SSE) 实现的工具服务器。它提供了一系列实用的工具,包括:

  • 天气查询:获取美国地区的天气预警和天气预报。
  • Azure 价格查询:查询 Azure 云服务的价格信息。
  • 中国法律条文检索:检索中国刑法条文内容。
  • 中文字符计数:统计文本中中文字符的数量。

这些工具可以通过 MCP 协议供 LLM 客户端调用,扩展 LLM 的能力边界。服务器使用 SSE 协议与客户端通信,实现高效的数据传输和实时的信息推送。

主要功能点

  • 工具注册与管理:服务器托管并管理多种实用工具,例如天气查询、Azure价格查询、法律条文检索和字符计数等。
  • SSE 通信:使用 SSE 协议与客户端进行通信,支持双向消息传递和实时事件推送。
  • 可扩展性:易于添加新的工具和功能,扩展服务器的能力。
  • 云原生友好:基于 SSE 的设计使其更适合云原生部署,服务器和客户端可以独立部署和扩展。

安装步骤

  1. 环境准备:确保已安装 Python 环境和 uv (ultraverse)。如果未安装 uv,可以参考 https://github.com/astral-sh/uv 进行安装。
  2. 下载仓库代码:从 GitHub 仓库 https://github.com/xuhaoruins/mcp-sse 下载或克隆代码。
  3. 运行服务器:在仓库的根目录下,打开终端并执行命令 'uv run weather.py' 启动 MCP 服务器。

服务器配置

MCP 服务器启动后,等待 MCP 客户端连接。客户端需要配置服务器的连接信息才能正常使用服务器提供的工具。以下是 MCP 客户端需要配置的服务器信息(JSON 格式):

{
  "server_name": "mcp-sse-weather-tools",
  "command": "uv",
  "args": ["run", "weather.py", "--host", "0.0.0.0", "--port", "8080"]
}

配置参数说明:

  • 'server_name': 服务器名称,客户端用于识别和管理不同的 MCP 服务器,可以自定义,例如 "mcp-sse-weather-tools"。
  • 'command': 启动 MCP 服务器的命令,通常为 'uv',表示使用 uv 运行 Python 脚本。
  • 'args': 传递给 'uv run' 命令的参数列表,用于指定服务器的启动脚本和相关配置。
    • '"run"': uv 的子命令,用于运行指定的 Python 脚本。
    • '"weather.py"': 服务器主程序脚本文件名。
    • '"--host"': 可选参数,指定服务器监听的主机地址。'0.0.0.0' 表示监听所有可用的网络接口,允许从任何 IP 地址连接服务器。
    • '"0.0.0.0"': '--host' 参数的值,这里设置为 '0.0.0.0'。
    • '"--port"': 可选参数,指定服务器监听的端口号。客户端需要通过这个端口连接服务器。
    • '"8080"': '--port' 参数的值,这里设置为 '8080'。

注意: 客户端还需要配置连接服务器的 URL 地址,根据 'client.py' 脚本,客户端连接 URL 通常为 'http://<服务器IP地址>:<端口号>/sse'。例如,如果服务器运行在本地,端口为 8080,则客户端连接 URL 为 'http://localhost:8080/sse'。

基本使用方法

  1. 确保 MCP 服务器已成功启动并运行。
  2. 运行 'client.py' 客户端脚本,命令为 'uv run client.py http://0.0.0.0:8080/sse',请根据实际服务器地址修改 URL。
  3. 客户端启动后,在终端中输入查询内容,例如 "whats the weather like in Spokane?" 或 "search law by content 交通肇事罪"。
  4. 客户端会将查询发送给 LLM,并根据 LLM 的指令调用服务器提供的工具获取信息。
  5. 服务器返回工具执行结果,客户端将结果展示给用户。
  6. 输入 'quit' 可以退出客户端程序。

信息

分类

网页与API