我们将构建什么
我们将构建一个服务器,暴露两个工具:get_alerts 和 get_forecast。然后我们将服务器连接到 MCP 主机(在本例中是 Claude for Desktop):

服务器可以连接到任何客户端。我们在这里选择 Claude for Desktop 是为了简单起见,但我们也有关于构建您自己的客户端的指南以及此处其他客户端的列表。
核心 MCP 概念
MCP 服务器可以提供三种主要类型的功能: 本教程将主要关注工具。- Python
- Node
- Java
- Kotlin
- C#
让我们开始构建我们的天气服务器!您可以在此处找到我们将构建的完整代码。之后请确保重启终端,以确保 现在让我们深入构建您的服务器。FastMCP 类使用 Python 类型提示和文档字符串来自动生成工具定义,使创建和维护 MCP 工具变得容易。您的服务器完成了!运行 首先,确保您已安装 Claude for Desktop。您可以在此处安装最新版本。如果您已经安装了 Claude for Desktop,请确保它已更新到最新版本。我们需要为要使用的任何 MCP 服务器配置 Claude for Desktop。为此,请在文本编辑器中打开您的 Claude for Desktop 应用程序配置,位于 然后,您将在 这告诉 Claude for Desktop:
先决知识
此快速入门假设您熟悉:- Python
- Claude 等 LLM
MCP 服务器中的日志记录
在实现 MCP 服务器时,请注意如何处理日志记录:对于基于 STDIO 的服务器: 永远不要写入标准输出(stdout)。这包括:- Python 中的
print()语句 console.log()in JavaScriptfmt.Println()in Go- Similar stdout functions in other languages
Best Practices
- 使用写入 stderr 或文件的日志库。
- 工具名称应遵循此处指定的格式。
Quick Examples
System requirements
- 已安装 Python 3.10 或更高版本。
- 您必须使用 Python MCP SDK 1.2.0 或更高版本。
Set up your environment
首先,让我们安装uv 并设置我们的 Python 项目和环境:uv 命令被识别。现在,让我们创建并设置项目:Building your server
Importing packages and setting up the instance
将这些添加到您的weather.py 顶部:Helper functions
接下来,让我们添加用于查询和格式化美国国家气象局 API 数据的辅助函数:Implementing tool execution
工具执行处理器负责实际执行每个工具的逻辑。让我们添加它:Running the server
最后,让我们初始化并运行服务器:uv run weather.py 来启动 MCP 服务器,它将监听来自 MCP 主机的消息。现在让我们使用现有的 MCP 主机 Claude for Desktop 来测试您的服务器。Testing your server with Claude for Desktop
Claude for Desktop 尚未在 Linux 上可用。Linux 用户可以继续进行构建客户端教程来构建连接到我们刚构建的服务器的 MCP 客户端。
~/Library/Application Support/Claude/claude_desktop_config.json。如果文件不存在,请确保创建它。例如,如果您安装了 VS Code:mcpServers 键中添加您的服务器。只有在至少配置了一个服务器时,MCP UI 元素才会显示在 Claude for Desktop 中。在这种情况下,我们将像这样添加我们的单个天气服务器:您可能需要在
command 字段中放置 uv 可执行文件的完整路径。您可以通过运行 which uv 在 macOS/Linux 上或 where uv 在 Windows 上获取此路径。确保传入服务器的绝对路径。您可以通过运行
pwd 在 macOS/Linux 上或 cd 在 Windows 命令提示符上获取此路径。在 Windows 上,请记住要在 JSON 路径中使用双反斜杠 (\\) 或正斜杠 (/)。- 有一个名为 “weather” 的 MCP 服务器
- 通过运行
uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather run weather.py来启动它
Test with commands
让我们确保 Claude for Desktop 正在获取我们在weather 服务器中暴露的两个工具。您可以通过查找 “Search and tools” 

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


由于这是美国国家气象服务,查询将仅适用于美国地点。
What’s happening under the hood
当您提出问题时:- 客户端将您的问题发送给 Claude
- Claude 分析可用的工具并决定使用哪些工具
- 客户端通过 MCP 服务器执行选定的工具
- 结果被发送回 Claude
- Claude 制定自然语言响应
- 响应显示给您!
Troubleshooting
Claude for Desktop Integration Issues
Claude for Desktop Integration Issues
Getting logs from Claude for DesktopClaude.app 与 MCP 相关的日志记录写入 Server not showing up in ClaudeTool calls failing silently如果 Claude 尝试使用工具但失败:
~/Library/Logs/Claude 中的日志文件:mcp.log将包含关于 MCP 连接和连接失败的一般日志记录。- 名为
mcp-server-SERVERNAME.log的文件将包含来自命名服务器的错误(stderr)日志记录。
- 检查您的
claude_desktop_config.json文件语法 - 确保项目路径是绝对路径而不是相对路径
- 完全重新启动 Claude for Desktop
要正确重新启动 Claude for Desktop,您必须完全退出应用程序:
- Windows:右键单击系统托盘中的 Claude 图标(可能隐藏在”隐藏图标”菜单中)并选择”退出”或”退出”。
- macOS:使用 Cmd+Q 或从菜单栏选择”退出 Claude”。
- 检查 Claude 的日志是否有错误
- 验证您的服务器构建和运行没有错误
- 尝试重新启动 Claude for Desktop
Weather API Issues
Weather API Issues
Error: Failed to retrieve grid point data这通常意味着:
- 坐标在美国以外
- NWS API 有问题
- 您被限制速率
- 验证您使用的是美国坐标
- 在请求之间添加小延迟
- 检查 NWS API 状态页面
有关更高级的故障排除,请查看我们的调试 MCP指南