我们将构建什么
许多大语言模型(包括 Claude)目前还没有获取天气预报和严重天气警报的能力。让我们使用 MCP 来解决这个问题 我们将构建一个服务器,提供两个工具:get-alerts 和 get-forecast。然后我们将服务器连接到 MCP 宿主应用(在本例中是 Claude for Desktop):


为什么选择 Claude for Desktop 而不是 Claude.ai?
为什么选择 Claude for Desktop 而不是 Claude.ai?
因为服务器是本地运行的,MCP 目前只支持桌面宿主应用。远程宿主应用正在积极开发中
MCP 核心概念
MCP 服务器可以提供三种主要类型的功能:- 资源:客户端可以读取的类文件数据(如 API 响应或文件内容)
- 工具:可以由大语言模型调用的函数(需要用户批准)
- 提示:帮助用户完成特定任务的预先编写的模板
- Python
- Node
- Java
让我们开始构建我们的天气服务器吧!你可以在这里找到我们将要构建的完整代码之后请确保重启您的终端,以确保 现在让我们开始构建您的服务器FastMCP 类使用 Python 类型提示和文档字符串自动生成工具定义,使创建和维护 MCP 工具变得容易您的服务器已经完成!运行 首先,确保您已经安装了 Claude for Desktop。您可以在这里安装最新版本。如果您已经安装了 Claude for Desktop,请确保它已更新到最新版本我们需要为您想要使用的任何 MCP 服务器配置 Claude for Desktop。为此,请在文本编辑器中打开您的 Claude for Desktop 应用程序配置文件,路径为 然后,您将在 这告诉 Claude for Desktop:
前置知识
本快速入门指南假设您熟悉:- Python
- 像 Claude 这样的大语言模型
系统要求
- 安装了 Python 3.10 或更高版本
- 您必须使用 Python MCP SDK 1.2.0 或更高版本
设置您的环境
首先,让我们安装uv 并设置我们的 Python 项目和环境:uv 命令被正确识别现在,让我们创建并设置我们的项目:构建您的服务器
导入包并设置实例
将这些添加到您的weather.py 顶部:辅助函数
接下来,让我们添加我们的辅助函数,用于查询和格式化来自国家气象服务 API 的数据:实现工具执行
工具执行处理程序负责实际执行每个工具的逻辑。让我们添加它:运行服务器
最后,让我们初始化并运行服务器:uv run weather.py 来确认一切都正常工作现在让我们使用现有的 MCP 宿主应用 Claude for Desktop 来测试您的服务器使用 Claude for Desktop 测试您的服务器
Claude for Desktop 尚未在 Linux 上可用。Linux 用户可以继续学习构建客户端教程,以构建连接到我们刚刚构建的服务器的 MCP 客户端
~/Library/Application Support/Claude/claude_desktop_config.json。如果该文件不存在,请确保创建它- MacOS/Linux
- Windows
mcpServers 键中添加您的服务器。MCP 用户界面元素只有在至少正确配置了一个服务器的情况下才会在 Claude for Desktop 中显示在这种情况下,我们将添加我们的单个天气服务器,如下所示:- MacOS/Linux
- Windows
Python
您可能需要在
command 字段中放入 uv 可执行文件的完整路径。您可以通过在 MacOS/Linux 上运行 which uv 或在 Windows 上运行 where uv 来获取这个路径确保您使用服务器的绝对路径
- 有一个名为 “weather” 的 MCP 服务器
- 通过运行
uv --directory /绝对/路径/到/父/文件夹/weather run weather来启动它
使用命令测试
让我们确保 Claude for Desktop 正在检测到我们在weather 服务器中公开的两个工具。您可以通过查找锤子 

- 萨克拉门托的天气怎么样?
- 德克萨斯州有哪些活跃的天气警报?


由于这是美国国家气象服务,查询只适用于美国位置
底层发生了什么
当您提出问题时:- 客户端将您的问题发送给 Claude
- Claude 分析可用的工具并决定使用哪一个
- 客户端通过 MCP 服务器执行所选的工具
- 结果被发送回 Claude
- Claude 制定自然语言响应
- 响应显示给您!
故障排除
Claude for Desktop 集成问题
Claude for Desktop 集成问题
从 Claude for Desktop 获取日志与 MCP 相关的 Claude.app 日志写入 服务器未在 Claude 中显示
~/Library/Logs/Claude 中的日志文件:mcp.log将包含有关 MCP 连接和连接失败的一般日志记录- 名为
mcp-server-SERVERNAME.log的文件将包含来自指定服务器的错误(stderr)日志记录
- 检查您的
claude_desktop_config.json文件语法 - 确保您的项目路径是绝对路径而不是相对路径
- 完全重启 Claude for Desktop
- 检查 Claude 的日志是否有错误
- 验证您的服务器构建和运行没有错误
- 尝试重启 Claude for Desktop
天气 API 问题
天气 API 问题
错误:无法获取网格点数据这通常意味着:
- 坐标在美国以外
- NWS API 出现问题
- 您被限制了请求速率
- 验证您使用的是美国坐标
- 在请求之间添加一个小延迟
- 检查 NWS API 状态页面
有关更高级的故障排除,请查看我们的调试 MCP 指南