项目简介
'mcp-talk' 是一个用于演示和实践Model Context Protocol (MCP) 的代码仓库。它包含了一个功能齐全的MCP服务器,用于提供天气相关的功能。这个服务器可以作为大型语言模型(LLM)的后端,允许LLM通过调用工具获取实时天气、天气预报和日出日落时间,访问可用国家列表资源,并使用预定义的Prompt模板进行交互。
主要功能点
- 天气工具: 提供查询当前天气、未来几天天气预报以及日出日落时间的工具。
- 可用国家资源: 托管一个包含可用国家列表的资源,LLM客户端可以访问此列表。
- 天气建议Prompt模板: 提供一个Prompt模板,用于根据当前天气和位置向LLM请求活动建议。
- 标准MCP通信: 通过JSON-RPC协议与客户端通信,支持Stdio等多种传输方式。
安装步骤
- 安装 'uv' 包管理器: 根据 uv官方安装指南 安装 'uv'。
- 同步项目依赖:
在项目根目录下运行以下命令,安装所有必要的Python依赖:
uv sync - 配置API Key:
在项目根目录创建一个 '.env' 文件,并添加你的OpenWeatherMap API Key(请自行申请):
请注意,'src/weather.py' 和 'src/mcp_server.py' 都使用了 'API_KEY',确保 '.env' 文件配置正确。API_KEY="你的OpenWeatherMap API Key"
服务器配置
这个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'。
基本使用方法
-
启动MCP服务器: 在项目根目录下,使用以下命令启动MCP服务器:
mcp install src/mcp_server.py mcp dev src/mcp_server.py服务器将在后台运行,等待客户端连接。
-
使用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与计算