使用说明

项目简介

本项目是一个Model Context Protocol (MCP) 服务器的入门级示例,旨在帮助开发者快速理解和上手MCP服务器的开发。它展示了如何使用Python和 'mcp' 库构建一个能够提供工具和资源的MCP后端服务。

主要功能点

  • 工具 (Tools): 实现了两个简单的天气查询工具,允许LLM客户端获取美国特定州的天气警报和指定经纬度的天气预报。
    • 'get_alerts(state: str)': 获取指定美国州的天气警报。
    • 'get_forecast(latitude: float, longitude: float)': 获取指定经纬度的天气预报。
  • 资源 (Resources): 提供了一个简单的echo资源,用于演示资源的基本概念。
    • 'echo://{message}': 返回包含输入消息的文本。
  • 传输协议: 支持 SSE (Server-Sent Events) 和 Stdio (标准输入输出) 两种传输协议,方便在不同场景下使用。
  • 客户端示例: 提供了基于 Stdio 和 SSE 两种协议的Python客户端示例,帮助开发者测试和集成MCP服务器。

安装步骤

  1. 初始化项目: 在本地选择一个文件夹,打开命令行终端(如PowerShell或cmd),执行以下命令初始化项目:

    uv init mcp-server-basic
    cd mcp-server-basic
  2. 创建并激活虚拟环境:

    uv venv
    .venv\Scripts\activate
  3. 安装依赖:

    uv add "mcp[cli]"

    或者使用 'requirements.txt' 文件安装依赖:

    uv add -r requirements.txt

服务器配置

对于MCP客户端,需要配置连接到此MCP服务器的参数。以下是一个JSON格式的配置示例,客户端需要根据此配置与服务器建立连接:

{
  "serverName": "weather-server",
  "command": "python",
  "args": ["mcpserver/server.py"]
}
  • 'serverName': 自定义的服务名称,例如 "weather-server",用于在客户端标识不同的MCP服务器连接。
  • 'command': 运行服务器的命令,这里使用 'python' 来执行Python脚本。
  • 'args': 命令的参数,'["mcpserver/server.py"]' 指定了服务器脚本的路径。请确保脚本 'mcpserver/server.py' 存在,并且是MCP服务器的入口文件。

注意: 如果使用 'README.md' 中提到的 'uv run mcp run' 或 'uv run mcp dev main.py' 启动服务器,请将 'args' 相应地修改为 '["run", "mcp", "run"]' 或 '["run", "mcp", "dev", "main.py"]',但请确保你的 'main.py' 或 'mcp' 命令配置正确。根据仓库内容,直接运行 'python mcpserver/server.py' 可能更直接。

基本使用方法

  1. 启动服务器: 在项目根目录下,打开命令行终端,激活虚拟环境后,运行服务器脚本。例如,使用以下命令启动基于 'mcpserver/server.py' 的服务器:

    uv run python mcpserver/server.py

    或者,如果按照 'README.md' 的指示,可以使用:

    uv run mcp run

    uv run mcp dev main.py

    请根据你的实际配置和希望使用的启动方式选择合适的命令。

  2. 运行客户端: 使用仓库中提供的客户端示例 ('mcpserver/client-stdio.py' 或 'mcpserver/client-sse.py') 与服务器进行交互。根据你启动服务器时选择的传输协议,选择对应的客户端脚本运行。例如,运行 Stdio 客户端:

    uv run python mcpserver/client-stdio.py

    或 SSE 客户端:

    uv run python mcpserver/client-sse.py
  3. 与LLM集成: 将此MCP服务器配置集成到支持MCP协议的LLM客户端或应用中,即可通过工具和资源增强LLM的功能。你可以调用 'get_alerts' 和 'get_forecast' 工具查询天气信息,或者访问 'echo://{message}' 资源获取回显。

信息

分类

网页与API