加载中...
返回AI 编程实战
AI 编程知识库 · AI 编程实战 · OpenCode 系统性指南

MCP进阶:构建你的第一个MCP服务器

概念图

引言

在上一篇文章中,我们了解了 MCP 协议的基本概念,学会了如何配置现成的 MCP 服务器。但如果现有的服务器无法满足你的需求呢?比如你想让 AI 访问公司内部的 API、连接特定的数据库,或者实现一个独特的工作流——这时就需要自己动手开发 MCP 服务器了。

好消息是,借助 Python SDK 提供的 FastMCP 框架,创建一个功能完整的 MCP 服务器只需要几十行代码。本文将带你从零开始,系统性地掌握 MCP 服务器开发的完整流程:环境搭建、工具定义、资源暴露、提示词模板,以及测试和发布。


一、开发环境搭建

1.1 为什么选择 Python

MCP 官方提供了两种 SDK:Python SDK 和 TypeScript SDK。对于大多数开发者来说,Python 是更好的入门选择:

特性 Python SDK TypeScript SDK
学习曲线 平缓 需要了解 Node.js 生态
FastMCP 原生支持,装饰器 API 需要使用 Zod 进行验证
代码量 更少 相对较多
社区示例 丰富 丰富

本系列文章将以 Python SDK 为主进行讲解。

1.2 安装 uv 包管理器

uv 是 Astral 公司开发的现代 Python 包管理器,比传统的 pip 快 10-100 倍。MCP 官方推荐使用 uv 来管理项目依赖。

macOS / Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

验证安装:

uv --version

1.3 创建项目结构

使用 uv 快速初始化项目:

# 创建项目目录
uv init my-mcp-server
cd my-mcp-server

# 添加 MCP 依赖(包含 CLI 工具)
uv add "mcp[cli]"

完成后,项目结构如下:

my-mcp-server/
├── .python-version
├── pyproject.toml
├── README.md
└── hello.py

将 hello.py 重命名为 server.py,我们将在其中编写 MCP 服务器代码。


二、FastMCP 快速入门

2.1 什么是 FastMCP

FastMCP 是 Python SDK 提供的高级 API,它借鉴了 FastAPI 的设计理念,通过装饰器让 MCP 服务器的开发变得极其简洁。

FastMCP 的核心优势:

  1. 装饰器驱动:用 @mcp.tool()、@mcp.resource()、@mcp.prompt() 一键注册能力
  2. 自动类型推断:基于 Python 类型注解自动生成 JSON Schema
  3. 零配置启动:内置多种传输协议,一行代码即可运行
  4. 开发体验友好:支持热重载、自动文档生成

2.2 最简服务器

创建一个最简单的 MCP 服务器只需要 5 行代码:

from mcp.server.fastmcp import FastMCP

# 初始化服务器
mcp = FastMCP("my-server")

# 运行服务器
if __name__ == "__main__":
    mcp.run()

这个服务器虽然没有任何功能,但已经是一个合法的 MCP 服务器了。让我们运行它:

uv run server.py

默认情况下,服务器使用 stdio 传输模式,等待从标准输入接收 MCP 消息。

2.3 FastMCP vs 低级 Server API

Python SDK 提供了两套 API:

特性 FastMCP 低级 Server API
AI 编程知识库会员专享内容
开通后解锁「MCP进阶:构建你的第一个MCP服务器」全文,AI 编程知识库全年访问

扫码添加企业微信,找大熊掌门开通会员

企业微信二维码

添加后说明想开通的会员类型即可

加载中...