项目简介

'mcp-talk' 是一个用于演示和实践Model Context Protocol (MCP) 的代码仓库。它包含了一个功能齐全的MCP服务器,用于提供天气相关的功能。这个服务器可以作为大型语言模型(LLM)的后端,允许LLM通过调用工具获取实时天气、天气预报和日出日落时间,访问可用国家列表资源,并使用预定义的Prompt模板进行交互。

主要功能点

  • 天气工具: 提供查询当前天气、未来几天天气预报以及日出日落时间的工具。
  • 可用国家资源: 托管一个包含可用国家列表的资源,LLM客户端可以访问此列表。
  • 天气建议Prompt模板: 提供一个Prompt模板,用于根据当前天气和位置向LLM请求活动建议。
  • 标准MCP通信: 通过JSON-RPC协议与客户端通信,支持Stdio等多种传输方式。

安装步骤

  1. 安装 'uv' 包管理器: 根据 uv官方安装指南 安装 'uv'。
  2. 同步项目依赖: 在项目根目录下运行以下命令,安装所有必要的Python依赖:
    uv sync
  3. 配置API Key: 在项目根目录创建一个 '.env' 文件,并添加你的OpenWeatherMap API Key(请自行申请):
    API_KEY="你的OpenWeatherMap API Key"
    请注意,'src/weather.py' 和 'src/mcp_server.py' 都使用了 'API_KEY',确保 '.env' 文件配置正确。

服务器配置

这个MCP服务器的名称是 'weather-server'。当MCP客户端尝试连接时,需要提供以下配置信息:

  • 服务器名称 (server name): "weather-server"
  • 启动命令 (command): "python"
  • 命令参数 (args): '["src/mcp_server.py"]'

例如,如果您的MCP客户端支持配置JSON文件或Python字典,它可能需要类似如下的结构来定义如何连接到此服务器:

{
  "name": "weather-server",
  "command": "python",
  "args": ["src/mcp_server.py"],
  "transport": "stdio" // 默认使用stdio传输协议
}

请注意,MCP客户端通常会自动处理传输协议的细节,您主要需要关注 'command' 和 'args'。

基本使用方法

  1. 启动MCP服务器: 在项目根目录下,使用以下命令启动MCP服务器:

    mcp install src/mcp_server.py
    mcp dev src/mcp_server.py

    服务器将在后台运行,等待客户端连接。

  2. 使用MCP客户端进行交互: 一旦服务器运行,您可以编写或使用任何MCP兼容的客户端来与其交互。例如,仓库中提供的 'src/weather_chat.py' 就是一个 MCP 客户端示例,它连接到 'weather-server' 并通过 LLM 调用其提供的工具。 要运行 'weather_chat.py' 客户端并连接到 'mcp_server.py',请确保您的 '.env' 文件已配置API Key,然后在项目根目录使用:

    uv run --env-file=.env src/weather_chat.py src/mcp_server.py

    这个客户端将启动一个聊天循环,您可以在其中输入查询,LLM会调用MCP服务器上的天气工具来回答您的问题。

信息

分类

AI与计算