MCP Server 教程 2026:从零搭建你的第一个 MCP Server

🔧 AI工具 2026-07-13 · 更新于 2026-08-15 约 7 分钟阅读

概念懂了但不知从哪下手?本文用两个完整可跑的示例(文件阅读器+天气查询),10分钟从零搭出第一个MCP Server,并讲清stdio与SSE怎么选。

💡 你将学到

概念懂了但不知从哪下手?本文用两个完整可跑的示例(文件阅读器+天气查询),10分钟从零搭出第一个MCP Server,并讲清stdio与SSE怎么选。

📜 目录

MCP Server 教程 2026:从零搭建你的第一个 MCP Server

上篇文章讲了 MCP(Model Context Protocol)是什么:它让AI客户端(如 Claude Desktop、Cursor)通过一套统一标准调用外部工具和数据。概念好懂,但很多读者卡在"不知道从哪下手"。这篇直接动手:从装 SDK 到跑通两个真实可用的 Server,全程代码,十分钟搞定。

一、环境准备:两样就够

不需要 GPU、不需要服务器,本地电脑就能跑。

二、安装官方 SDK

pip install mcp

装完可以验证一下:

python -c "import mcp; print('OK')"

三、第一个 MCP Server:文件阅读器

下面这个 Server 注册两个工具:read_file(读文件)和 list_files(列目录),让 AI 能直接读你电脑上的文件。用官方推荐的 FastMCP 写法:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("file-reader")

@mcp.tool()
def read_file(path: str) -> str:
    """读取本地文件内容"""
    with open(path, "r", encoding="utf-8") as f:
        return f.read()

@mcp.tool()
def list_files(directory: str) -> list[str]:
    """列出目录下的文件名"""
    import os
    return os.listdir(directory)

if __name__ == "__main__":
    mcp.run()

保存为 file_reader_server.py。代码里每个函数上的文档字符串("""...""")就是"工具说明书",AI 靠它判断什么时候调用哪个工具——所以描述要写清楚。

四、跑起来 + 让 AI 连上它

第一步,启动:

python file_reader_server.py

启动后程序会通过 stdio(标准输入输出)等待客户端连接,终端不会有花哨输出,这是正常的。

第二步,连接客户端: 以 Claude Desktop 为例(其他支持 MCP 的客户端类似): 1. 打开设置 → 找到 MCP / Developer 相关入口(不同版本菜单位置略有差异,以官方文档为准) 2. 添加一个 MCP Server,命令填:python /绝对路径/file_reader_server.py 3. 保存后重启客户端

连接成功后,你直接说"帮我读一下桌面的 notes.txt",AI 就会自动调用 read_file 工具——这就是 MCP 的威力:AI 从"只能聊天"变成"能操作你的电脑"

五、第二个示例:天气查询 Server(调用外部 API)

MCP 工具不只是读本地文件,还能调外部 API。下面用免费天气服务 wttr.in 做一个天气查询工具:

from mcp.server.fastmcp import FastMCP
import urllib.request

mcp = FastMCP("weather")

@mcp.tool()
def get_weather(city: str) -> str:
    """查询指定城市的当前天气"""
    url = f"https://wttr.in/{city}?format=%C+%t+%w"
    with urllib.request.urlopen(url, timeout=10) as r:
        return r.read().decode("utf-8")

if __name__ == "__main__":
    mcp.run()

这个例子展示了完整链路:AI 收到用户问题 → 识别需要天气工具 → 调 get_weather → 拿到数据 → 组织成自然语言回答。想接自己的 API(查数据库、查订单、发消息),照这个模式加工具就行。

六、stdio vs SSE:本地和远程怎么选

传输方式 适用场景 特点
stdio 本地个人使用、开发调试 简单直接,启动即连,无需网络端口
SSE(HTTP流) 远程部署、多客户端共享 走 HTTP,可部署到服务器供远程访问

个人电脑上自己用,选 stdio 就够了;要做成团队服务、部署在服务器上,再看官方文档用流式 HTTP 传输。

七、进阶:一个 Server 注册多个工具

一个 MCP Server 可以注册任意多个工具:文件、天气、数据库查询、网页搜索……AI 客户端会自动发现全部工具,根据你的请求挑合适的调用。工具描述写得好,AI 才用得准——建议每个工具都用"做什么+什么时候用"的句式写说明。

常见问题

Q:报错 ModuleNotFoundError: No module named 'mcp'? A:SDK 没装上或装错了 Python 环境。确认执行 pip install mcp 后再跑;用了虚拟环境(venv)的话,要确保启动脚本用的也是同一个环境的 Python。

Q:启动后终端什么都没显示,是不是挂了? A:没挂。stdio 模式的 Server 启动后静默等待输入,这是正常行为;接上客户端后调用工具才有输出。

Q:MCP Server 和普通 API 有什么区别? A:普通 API 要你写代码去"调"它;MCP Server 是让 AI 客户端"发现并调用"它,省去为每个工具写集成代码的功夫,而且一次写好,支持 MCP 的客户端通用。

Q:能部署到云服务器上吗? A:可以。远程部署要用流式 HTTP 传输(SSE / Streamable HTTP),并自行处理鉴权和防火墙,具体配置以 MCP 官方文档为准。

注:SDK 接口随版本迭代可能微调,如遇报错以 MCP 官方文档(modelcontextprotocol.io)为准。

相关文章

❓ 常见问题

报错 ModuleNotFoundError: No module named 'mcp'?

SDK 没装上或装错了 Python 环境。确认执行 `pip install mcp` 后再跑;用了虚拟环境(venv)的话,要确保启动脚本用的也是同一个环境的 Python。

启动后终端什么都没显示,是不是挂了?

没挂。stdio 模式的 Server 启动后静默等待输入,这是正常行为;接上客户端后调用工具才有输出。

MCP Server 和普通 API 有什么区别?

普通 API 要你写代码去"调"它;MCP Server 是让 AI 客户端"发现并调用"它,省去为每个工具写集成代码的功夫,而且一次写好,支持 MCP 的客户端通用。

能部署到云服务器上吗?

可以。远程部署要用流式 HTTP 传输(SSE / Streamable HTTP),并自行处理鉴权和防火墙,具体配置以 MCP 官方文档为准。 > 注:SDK 接口随版本迭代可能微调,如遇报错以 MCP 官方文档(modelcontextprotocol.io)为准。

相关文章
2026-07-25
2026年最佳AI代码审查工具:十大工具对比评测
2026-07-26
Cursor AI 下载与安装指南
2026-08-02
AI播客生成器2026:用NotebookLM和开源工具把文章变成音频

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论