从零开始构建 Python MCP 服务器

Model Context Protocol (MCP) 现在已成为行业标准。其 SDK 月下载量已达到 9700 万次。几乎所有主流 AI 工具都在使用它。大多数指南只教你如何安装现有的服务器。本指南将教你如何使用 Python 和 GitHub API 构建自己的服务器。

什么是 MCP?

它是一种允许 AI 客户端调用外部服务的协议。你的服务器负责处理来自 Claude 或 Cursor 等工具的请求。

MCP 的三个核心部分:

  • 工具 (Tools):AI 调用以执行操作或获取数据的函数。
  • 资源 (Resources):只读数据端点,例如文件或数据库记录。
  • 提示词 (Prompts):用于保持工作流一致性的可重用指令模板。

设置你的项目

创建一个目录并使用 uv 安装必要的库:

mkdir github-mcp-server
cd github-mcp-server
uv init .
uv add "mcp[cli]" httpx

构建服务器

使用 FastMCP 来处理繁重的工作。一个优秀的 MCP 服务器通常包含三个特定文件:server.pypyproject.toml 以及一个用于存放 GitHub token 的可选 .env 文件。

开发专业技巧:

  • 为工具返回值使用 Pydantic 模型。这能为 AI 提供结构化数据,而不是杂乱的字符串。
  • 编写清晰的 docstrings。AI 会通过阅读这些内容来决定何时使用你的工具。
  • 对数值输入进行限制 (Clamp)。AI 模型经常会发送像 0 或 100 这样出乎意料的数字。
  • 处理异常。服务器崩溃可能会导致整个连接中断。

测试与部署

不要等到在 Claude 中测试时才动手。先使用 MCP Inspector。运行: uv run mcp dev server.py

这将在 http://localhost:5173 打开一个本地界面。你可以在一处测试工具、资源和提示词。

连接到 Claude Desktop: 更新你的配置文件以包含你的服务器。使用 server.py 文件的完整路径。务必使用 uv run 而不是直接使用 python 命令,以避免环境错误。

连接到 Claude Code: 使用 CLI 命令: claude mcp add github-tools -- uv run python /path/to/server.py

构建自定义 MCP 服务器可以让你将实时数据引入 AI 工作流中。

Source: https://dev.to/moksh/building-a-python-mcp-server-from-scratch-a-practical-github-api-guide-397k

Optional learning community: https://t.me/GyaanSetuAi