我们将构建什么
许多 LLM(包括 Claude)目前无法获取天气预报和严重天气警报。让我们使用 MCP 来解决这个问题! 我们将构建一个暴露两个工具的服务器:get-alerts 和 get-forecast。然后我们将服务器连接到 MCP 主机(在本例中为 Claude for Desktop):


为什么选择 Claude for Desktop 而不是 Claude.ai?
为什么选择 Claude for Desktop 而不是 Claude.ai?
由于服务器是本地运行的,MCP 目前仅支持桌面主机。远程主机正在积极开发中。
核心 MCP 概念
MCP 服务器可以提供三种主要类型的功能:- 资源:可以被客户端读取的类似文件的数据(如 API 响应或文件内容)
- 工具:可以由 LLM 调用的函数(需要用户批准)
- 提示:帮助用户完成特定任务的预编写模板
- Python
- Node
让我们开始构建我们的天气服务器吧!您可以在此处找到我们将构建的完整代码。确保在此之后重新启动您的终端,以确保 将此代码添加到 将此代码添加到 现在让我们深入构建您的服务器。这定义了我们的两个工具:您的服务器已完成!运行 首先,确保您已安装 Claude for Desktop。您可以在此处安装最新版本。 如果您已经有 Claude for Desktop,请确保它已更新到最新版本。我们需要为您想要使用的 MCP 服务器配置 Claude for Desktop。为此,请在文本编辑器中打开您的 Claude for Desktop 应用配置 然后,您将在 这告诉 Claude for Desktop:
先决知识
本快速入门假设您熟悉:- Python
- LLMs 如 Claude
系统要求
对于 Python,请确保您安装了 Python 3.9 或更高版本。设置您的环境
首先,让我们安装uv 并设置我们的 Python 项目和环境:uv 命令被识别。现在,让我们创建并设置我们的项目:pyproject.toml:__init__.py:src/weather/__init__.py
构建您的服务器
导入包
将这些添加到server.py 的顶部:设置实例
然后初始化服务器实例和 NWS API 的基本 URL:实现工具列表
我们需要告诉客户端有哪些工具可用。list_tools() 装饰器注册此处理程序:get-alerts 和 get-forecast。辅助函数
接下来,让我们添加用于查询和格式化来自国家气象局 API 的数据的辅助函数:实现工具执行
工具执行处理程序负责实际执行每个工具的逻辑。让我们添加它:运行服务器
最后,实现运行服务器的主函数:uv run src/weather/server.py 以确认一切正常。现在让我们从现有的 MCP 主机 Claude for Desktop 测试您的服务器。使用 Claude for Desktop 测试您的服务器
Claude for Desktop 尚不支持 Linux。Linux 用户可以继续构建客户端教程,以构建一个连接到我们刚刚构建的服务器的 MCP 客户端。
~/Library/Application Support/Claude/claude_desktop_config.json。如果文件不存在,请确保创建它。例如,如果您安装了 VS Code:- MacOS/Linux
- Windows
mcpServers 键中添加您的服务器。只有在至少一个服务器配置正确时,Claude for Desktop 中的 MCP UI 元素才会显示。在本例中,我们将添加我们的单个天气服务器,如下所示:- MacOS/Linux
- Windows
Python
确保传递给服务器的路径是绝对路径。
- 有一个名为 “weather” 的 MCP 服务器
- 通过运行
uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/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指南
下一步
构建客户端
了解如何构建自己的 MCP 客户端以连接到您的服务器
示例服务器
查看我们的官方 MCP 服务器和实现的画廊
调试指南
了解如何有效调试 MCP 服务器和集成
使用 LLM 构建 MCP
了解如何使用 LLM(如 Claude)加速您的 MCP 开发