使用说明

项目简介

本项目 'anthropic-mcp' 是基于 Model Context Protocol (MCP) 协议的示例资源仓库,包含了一个天气服务器的实现 ('weather/src/weather/server.py') 和一个简单的MCP客户端 ('mcp-client/client.py')。该天气服务器演示了如何通过MCP协议向LLM客户端提供天气查询工具,例如获取天气预警和天气预报。

主要功能点

  • MCP 服务器实现: 提供了一个完整的天气服务器,该服务器实现了MCP协议,可以注册和执行天气相关的工具 (get-alerts, get-forecast)。
  • 工具示例: 天气服务器提供了两个工具:
    • 'get-alerts': 根据州名获取天气警报。
    • 'get-forecast': 根据经纬度获取天气预报。
  • MCP 客户端: 提供了一个基础的MCP客户端,可以连接到MCP服务器,列出可用工具,并调用这些工具。客户端集成了Anthropic Claude模型,演示了如何利用MCP服务器提供的工具增强LLM的能力。
  • Stdio 传输: 服务器和客户端通过标准输入/输出 (stdio) 进行通信,简化了部署和运行。
  • 环境配置: 使用 '.env' 文件管理环境变量,方便配置API密钥等敏感信息。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/s-nandi/anthropic-mcp.git
    cd anthropic-mcp
  2. 配置环境变量:

    • 复制 '.env-example' 文件为 '.env':
      cp .env-example .env
    • 编辑 '.env' 文件,根据需要填写API密钥。 如果您只想测试MCP服务器本身,可以忽略Anthropic API 密钥的配置。
  3. 安装依赖: 建议使用 'uv' 进行包管理,如 README.md 所示。如果未安装 'uv',可以使用 'pip':

    pip install -r requirements.txt # 如果仓库根目录有 requirements.txt
    cd weather
    pip install -r requirements.txt # 安装天气服务器依赖 (如果 weather 目录下有 requirements.txt)
    cd ..
    cd mcp-client
    pip install -r requirements.txt # 安装 MCP 客户端依赖 (如果 mcp-client 目录下有 requirements.txt)
    cd ..

    注意:仓库中可能没有明确的 'requirements.txt' 文件,但通常需要安装 'mcp-server', 'mcp-client', 'httpx', 'anthropic', 'python-dotenv' 等库。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令及其参数才能连接。以下是天气服务器的配置信息示例 (JSON 格式):

{
  "server name": "weather-server",
  "command": "uv",
  "args": ["run", "weather/src/weather/server.py"]
}
  • 'server name': 服务器的名称,可以自定义,用于客户端识别和管理。例如 "weather-server"。
  • 'command': 启动服务器的命令。示例中使用 'uv run' 来运行 Python 脚本。如果直接使用 Python 运行,则命令为 'python'。
  • 'args': 传递给启动命令的参数列表。这里指向天气服务器的 Python 脚本 'weather/src/weather/server.py'。

基本使用方法

  1. 启动 MCP 客户端并连接天气服务器: 使用 'uv' (推荐,如 README.md 所示):
    python mcp-client/client.py --tool "uv run weather/src/weather/server.py"
    或者使用 'python' 直接运行 (如果未使用 'uv'):
    python mcp-client/client.py --tool "python weather/src/weather/server.py"
  2. 与客户端交互: 启动客户端后,会出现 '>' 提示符。您可以输入自然语言查询,例如:
    > What is the weather forecast for Los Angeles?  (洛杉矶的天气预报是什么?)
    > Are there any weather alerts in California? (加利福尼亚州有天气警报吗?)
    客户端将调用连接的天气服务器来处理您的查询。 输入 'quit' 可以退出客户端。

信息

分类

AI与计算