MCP 官方文档中文版
  1. 快速上手
MCP 官方文档中文版
  • 开始使用
    • 简介
    • 示例 Servers
    • 示例 Clients
    • 快速上手
      • 服务器开发
      • 客户端开发
      • Claude 桌面版开发
  • 教程
    • 使用 LLMs 构建 MCP
    • 调试 Debugging
    • 调试器 Inspector
  • 概念
    • 核心架构
    • 资源 Resources
    • 提示词 Prompts
    • 工具 Tools
    • 采样 Sampling
    • 根 Roots
    • 传输 Transports
  • 开发
    • 新计划
    • 规划
    • 贡献
  1. 快速上手

服务器开发

开始构建你自己的服务器,以便在 Claude for Desktop 和其他客户端中使用。
在本教程中,我们将构建一个简单的 MCP 天气服务器,并将其连接到一个主机,即 Claude for Desktop。 我们将从一个基本的设置开始,然后逐步发展到更复杂的使用场景。

我们要构建什么#

许多 LLM(包括 Claude)目前没有能力获取天气预报和严重的恶劣天气警报。 让我们使用 MCP 来解决这个问题!
我们将构建一个服务器,该服务器公开两个工具:get-alerts (获取警报)和 get-forecast(获取预报)。 然后,我们将服务器连接到 MCP 主机(在本例中为 Claude for Desktop):
img
img
服务器可以连接到任何客户端。 为了简单起见,我们在这里选择了 Claude for Desktop,但我们也提供了构建您自己的客户端的指南以及其他客户端的列表。
为什么选择 Claude for Desktop 而不是 Claude.ai?

MCP 的核心概念#

MCP 服务器可以提供三种主要类型的能力:
1.
资源(Resources):可以被客户端读取的类文件数据(如 API 响应或文件内容)
2.
工具(Tools):可以被 LLM 调用的函数(需要用户批准)
3.
提示语(Prompts):帮助用户完成特定任务的预写模板
本教程将主要关注工具。
Python
让我们开始构建我们的天气服务器吧! 你可以在这里找到我们要构建的完整代码。

先决知识#

本快速入门假定您熟悉:
Python
像 Claude 这样的 LLM

系统要求#

已安装 Python 3.10 或更高版本。
您必须使用 Python MCP SDK 1.2.0 或更高版本。

设置你的环境#

首先,让我们安装 uv 并设置我们的 Python 项目和环境:
MacOS/Linux
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
确保之后重新启动你的终端,以确保 uv 命令被识别。
现在,让我们创建并设置我们的项目:
MacOS/Linux
# Create a new directory for our project
uv init weather
cd weather

# Create virtual environment and activate it
uv venv
.venv\Scripts\activate

# Install dependencies
uv add mcp[cli] httpx

# Create our server file
new-item weather.py
Windows
# Create a new directory for our project
uv init weather
cd weather

# Create virtual environment and activate it
uv venv
.venv\Scripts\activate

# Install dependencies
uv add mcp[cli] httpx

# Create our server file
new-item weather.py
现在让我们深入构建你的服务器。

构建你的服务器#

导入包并设置实例#

将这些添加到你的 weather.py 文件的顶部:
FastMCP 类使用 Python 类型提示和文档字符串来自动生成工具定义,从而简化了创建和维护 MCP 工具的过程。

辅助函数#

接下来,让我们添加我们的辅助函数,用于查询和格式化来自美国国家气象局(National Weather Service API)API 的数据:

实现工具执行#

工具执行处理程序负责实际执行每个工具的逻辑。 让我们添加它:

运行服务器#

最后,让我们初始化并运行服务器:
你的服务器完成了! 运行 uv run weather.py 以确认一切正常。
现在让我们通过现有的 MCP 主机 Claude for Desktop 测试你的服务器。

使用 Claude for Desktop 测试你的服务器#

Claude for Desktop 尚未在 Linux 上可用。 Linux 用户可以继续阅读构建客户端教程,以构建连接到我们刚刚构建的服务器的 MCP 客户端。
首先,确保你已安装 Claude for Desktop。 你可以在这里安装最新版本。 如果你已经安装了 Claude for Desktop,请确保将其更新到最新版本。
我们需要为你想使用的任何 MCP 服务器配置 Claude for Desktop。 为此,请在文本编辑器中打开你的 Claude for Desktop 应用程序配置,该配置位于 ~/Library/Application Support/Claude/claude_desktop_config.json。 如果该文件不存在,请确保创建该文件。
例如,如果你安装了 VS Code:
MacOS/Linux
Windows
code $env:AppData\Claude\claude_desktop_config.json
然后,你将在 mcpServers 键中添加你的服务器。 只有正确配置了至少一个服务器,MCP UI 元素才会显示在 Claude for Desktop 中。
在这种情况下,我们将像这样添加我们的单个天气服务器:
MacOS/Linux
{
    "mcpServers": {
        "weather": {
            "command": "uv",
            "args": [
                "--directory",
                "/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather",
                "run",
                "weather.py"
            ]
        }
    }
}
Windows
{
    "mcpServers": {
        "weather": {
            "command": "uv",
            "args": [
                "--directory",
                "C:\\ABSOLUTE\\PATH\\TO\\PARENT\\FOLDER\\weather",
                "run",
                "weather.py"
            ]
        }
    }
}
你可能需要在 command 字段中放置 uv 可执行文件的完整路径。 你可以通过在 MacOS/Linux 上运行 which uv 或在 Windows 上运行 where uv 来获取它。
确保你传入服务器的绝对路径。
这告诉 Claude for Desktop:
1.
有一个名为“weather”的 MCP 服务器
2.
通过运行 uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather run weather.py 来启动它
保存文件,然后重新启动 Claude for Desktop。

使用命令测试#

让我们确保 Claude for Desktop 正在获取我们在 weather 服务器中公开的两个工具。 你可以通过查找锤子 img 图标来做到这一点:
img
单击锤子图标后,你应该会看到列出了两个工具:
img
如果 Claude for Desktop 没有获取到你的服务器,请继续阅读故障排除部分以获取调试技巧。
如果锤子图标已显示,你现在可以通过在 Claude for Desktop 中运行以下命令来测试你的服务器:
Sacramento 的天气如何?
德克萨斯州的活跃天气警报是什么?
img
img
由于这是美国国家气象局(US National Weather service),因此查询仅适用于美国的位置。

底层发生了什么#

当你提出问题时:
1.
客户端将你的问题发送给 Claude
2.
Claude 分析可用的工具并决定使用哪一个(或多个)
3.
客户端通过 MCP 服务器执行所选工具
4.
结果被发送回 Claude
5.
Claude 形成自然语言响应
6.
响应显示给你!

扫码加入 Apifox MCP 内测群

MCP生态正在快速发展,我们正在与开发者们一起探索 AI 和 API 协作的未来。

扫码加入交流群
上一页
示例 Clients
下一页
客户端开发
Built with