摘要

2026 年,大模型应用已经不再停留在“输入一句 prompt,返回一段文字”的阶段。真正有价值的方向,是让 AI Agent 能够调用工具、读取数据、执行任务、协同工作。
而 MCP,也就是 Model Context Protocol,正在成为连接 AI Agent 与外部工具、数据库、文件系统、业务系统的关键协议。

本文会用一个可运行的 Python 示例,带你从零搭建一个简单 MCP Server,让 Agent 可以调用你的本地工具。看完之后你会发现:只会调模型 API 的程序员,正在逐渐变成“会用高级计算器的人”。听起来残酷,但技术圈嘛,温柔通常只存在于离职祝福里。

推荐标签: AI AgentMCPPython大模型应用智能体AIGC


1. 为什么 2026 年一定要关注 MCP?

过去两年,很多人做大模型应用的方式非常简单:

用户输入 -> 拼 prompt -> 调大模型 API -> 返回文本

这套东西能做 Demo,能做 PPT,能让老板觉得“我们也 AI 了”。但真进业务系统之后,很快就会遇到问题:

  • AI 怎么读取数据库?

  • AI 怎么调用内部接口?

  • AI 怎么访问文件、日志、订单、知识库?

  • AI 怎么安全地执行动作?

  • AI 怎么在多个工具之间完成连续任务?

如果这些能力都靠你自己硬编码,那恭喜你,你不是在做 AI Agent,你是在给大模型当保姆。

MCP 的出现,本质上就是为了解决这个问题:它提供了一种标准化方式,让大模型应用能够连接外部数据源和工具。官方 MCP 2026 Roadmap 明确提到,MCP 已经从早期连接本地工具的方案,发展到支撑生产环境 Agent 工作流,并且 2026 年重点关注传输扩展性、Agent 通信、治理成熟度和企业级可用性。(Model Context Protocol Blog)

这句话翻译成人话就是:

以前 AI 只能聊天,现在 AI 要开始干活了。
以前你写 API 给人用,现在你要写工具给 Agent 用。


2. MCP 到底是什么?

MCP 全称是 Model Context Protocol,可以理解为:

专门给 AI Agent 使用的“工具连接协议”。

传统 API 是给程序调用的,MCP 是给 Agent 调用的。区别很大。

传统 API 通常长这样:

GET /api/user?id=1
POST /api/order/create

而 Agent 更关心的是:

我现在有哪些工具可以用?
每个工具需要什么参数?
这个工具会返回什么?
这个工具安全吗?
这个工具适合解决当前问题吗?

MCP 正是围绕这些问题设计的。

它主要提供三类能力:

2.1 Tools:让 Agent 可以执行动作

比如:

  • 查询订单

  • 搜索文档

  • 发送邮件

  • 生成报表

  • 调用内部接口

2.2 Resources:让 Agent 可以读取资源

比如:

  • 本地文件

  • 数据库内容

  • 日志片段

  • 知识库文档

  • 配置文件

2.3 Prompts:给 Agent 提供标准提示模板

比如:

  • 代码审查模板

  • Bug 分析模板

  • 周报生成模板

  • SQL 优化模板

OpenAI Agents SDK 文档中也提到,Agent 是能够规划、调用工具、多智能体协作,并维护一定状态来完成多步骤任务的应用;同时 SDK 支持工具调用、MCP Server 集成、Guardrails、Sessions、Tracing 等能力。(OpenAI开发者)

所以别再把 Agent 理解成“会说话的聊天框”了。那叫客服机器人,甚至很多客服机器人还不如人工智障稳定。


3. MCP 为什么会火?

因为它踩中了 2026 年 AI 应用开发的核心矛盾:

模型越来越聪明,但工具链越来越碎。

现在的开发者可能同时使用:

  • Cursor

  • Claude Code

  • OpenAI Agents SDK

  • GitHub Copilot

  • Windsurf

  • 自研 Agent 平台

每个平台都有自己的工具调用方式、插件体系、上下文管理方式。结果就是,你写一个数据库查询工具,可能要适配三四遍。

这就像你家里每个电器都用不同插头,最后你买的不是家电,是插线板博物馆。

MCP 的价值在于:
工具只写一次,多个 Agent 客户端都能复用。

GitHub Octoverse 2025 也指出,AI、Agent 和类型化语言正在推动软件开发发生十多年来最大的变化之一。(The State of the Octoverse) 这说明 Agent 工程化已经不是“玩具方向”,而是正在进入主流开发流程。


4. 动手:用 Python 写一个最简单的 MCP Server

下面我们来写一个小 Demo:
实现一个“本地笔记 MCP Server”,Agent 可以调用它完成:

  • 添加笔记

  • 搜索笔记

  • 读取全部笔记

  • 生成写作提示词

官方 Python SDK 支持使用 FastMCP 快速创建 MCP Server,并且可以通过 Python 类型提示和 docstring 自动生成工具定义。(py.sdk.modelcontextprotocol.io)

4.1 安装依赖

pip install mcp

4.2 创建项目结构

mcp-notes-demo/
├── server.py
└── notes.json

4.3 编写 server.py

from pathlib import Path
import json
import time
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("local-notes-server")

DATA_FILE = Path("notes.json")


def load_notes():
    if not DATA_FILE.exists():
        return []
    with DATA_FILE.open("r", encoding="utf-8") as f:
        return json.load(f)


def save_notes(notes):
    with DATA_FILE.open("w", encoding="utf-8") as f:
        json.dump(notes, f, ensure_ascii=False, indent=2)


@mcp.tool()
def add_note(title: str, content: str, tags: str = "") -> dict:
    """
    添加一条本地笔记。
    tags 使用英文逗号分隔,例如:AI,Python,MCP
    """
    notes = load_notes()

    note = {
        "id": int(time.time() * 1000),
        "title": title,
        "content": content,
        "tags": [tag.strip() for tag in tags.split(",") if tag.strip()],
        "created_at": time.strftime("%Y-%m-%d %H:%M:%S")
    }

    notes.append(note)
    save_notes(notes)

    return {
        "message": "笔记添加成功",
        "note": note
    }


@mcp.tool()
def search_notes(keyword: str, limit: int = 5) -> list:
    """
    根据关键词搜索本地笔记。
    会匹配标题、正文和标签。
    """
    notes = load_notes()
    keyword_lower = keyword.lower()

    results = []
    for note in notes:
        text = (
            note["title"] + " " +
            note["content"] + " " +
            " ".join(note.get("tags", []))
        ).lower()

        if keyword_lower in text:
            results.append(note)

    return results[:limit]


@mcp.resource("notes://all")
def get_all_notes() -> str:
    """
    读取全部本地笔记。
    """
    notes = load_notes()
    return json.dumps(notes, ensure_ascii=False, indent=2)


@mcp.prompt()
def write_blog_prompt(topic: str) -> str:
    """
    根据主题生成一段写作提示词。
    """
    return f"""
请围绕《{topic}》写一篇技术博客。

要求:
1. 标题要有点击欲望,但不要标题党到像卖课广告。
2. 开头指出开发者真实痛点。
3. 中间加入代码示例。
4. 结尾总结技术趋势,并引导读者评论。
5. 风格清晰、直接、有技术判断。
"""


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

4.4 初始化 notes.json

[]

4.5 运行服务

python server.py

这个服务启动后,就暴露了几个能力:

工具:
- add_note
- search_notes

资源:
- notes://all

提示模板:
- write_blog_prompt

这时候,一个支持 MCP 的 Agent 客户端就可以发现这些能力,并在需要时调用它们。


5. 这个 Demo 看起来简单,实际意义很大

别看上面的代码只有几十行,它背后的思路非常重要。

以前我们写程序,是人调用系统:

人 -> 页面 -> 后端接口 -> 数据库

现在 Agent 应用开始变成:

人 -> Agent -> MCP 工具 -> 业务系统

变化在哪里?

5.1 以前接口是给人类产品设计的

比如一个后台系统,通常会有按钮、表单、菜单。

5.2 现在工具是给 Agent 推理调用的

Agent 不需要页面好不好看,它需要的是:

  • 工具名称清晰

  • 参数定义明确

  • 返回结构稳定

  • 权限边界清楚

  • 错误信息可理解

说白了,未来你的接口文档不是写给前端看的,也不是写给测试看的,而是写给 Agent 看的。

前端:终于没人逼我看接口文档了。
Agent:谢谢,锅给我了。


6. MCP 和普通 API 最大的区别

很多人会问:

我直接给大模型 Function Calling 不行吗?为什么非要 MCP?

当然可以。就像你当然可以用 Excel 管理一个公司的全部业务,只是财务和程序员会轮流崩溃。

Function Calling 更像是某个模型平台内部的工具调用机制。
MCP 更像是跨平台、跨工具、跨客户端的连接协议。

简单对比:

维度 Function Calling MCP
适用范围 单个平台或单个模型生态 跨 Agent 客户端
工具复用 相对弱 更强
资源抽象 通常需要自己封装 原生支持 Resources
Prompt 模板 通常自己管理 原生支持 Prompts
工程化能力 依赖平台实现 更适合作为协议层

所以我的建议是:

  • 简单 Demo:Function Calling 足够

  • 复杂业务 Agent:尽早了解 MCP

  • 企业内部工具生态:MCP 值得重点投入


7. 真正落地 MCP,要注意这几个坑

7.1 工具不要设计得太大

不要写一个万能工具:

do_everything(input: str)

这不是工具,这是许愿池。

更合理的方式是拆成明确的小工具:

search_order
get_user_profile
create_refund_ticket
summarize_logs

Agent 最怕的不是工具少,而是工具含义模糊。
一个工具什么都能干,通常意味着它什么都可能干错。

7.2 参数一定要结构化

不要让 Agent 猜参数。

差的设计:

def query_database(sql_or_question: str):
    pass

好的设计:

def search_orders(user_id: str, status: str, limit: int = 10):
    pass

AI 已经够会自由发挥了,不要再给它一支麦克风和一片草原。

7.3 权限必须收紧

Agent 能调用工具,不代表它应该调用所有工具。

尤其是这些操作要谨慎:

  • 删除数据

  • 修改订单

  • 发送邮件

  • 执行 Shell 命令

  • 访问敏感文件

  • 调用付款或退款接口

建议加上:

  • 白名单

  • 操作确认

  • 日志审计

  • 权限隔离

  • 人工审批

AI Agent 最大的问题不是它不能干活,而是它太敢干活。

7.4 返回结果要适合模型理解

不要返回一大坨无结构日志。

差的返回:

success ok done 200

好的返回:

{
  "success": true,
  "message": "订单查询成功",
  "data": {
    "order_id": "A1001",
    "status": "paid",
    "amount": 199.0
  }
}

你给 Agent 返回乱码,它就给你表演玄学。
这不叫智能,这是你们两个一起迷路。


8. 未来程序员的能力会怎么变?

我认为 2026 年之后,AI 应用开发者会明显分层。

第一层:Prompt 使用者

会写提示词,会调模型 API。
能做简单聊天机器人。

第二层:Agent 应用开发者

会设计工具、状态、任务流程、记忆、权限。
能做真正可用的业务 Agent。

第三层:Agent 基础设施开发者

会做 MCP Server、工具网关、权限系统、审计系统、评估系统。
能把企业内部系统变成 Agent 可调用的能力池。

未来最值钱的,不是“我会问 AI 问题”,而是:

我能让 AI 安全、稳定、可控地替业务系统干活。

这才是 AI 工程化的核心。


9. 总结

MCP 不是又一个概念包装,它解决的是 Agent 落地时非常实际的问题:

  • 工具如何标准化暴露?

  • 数据如何被 Agent 读取?

  • 多平台如何复用同一套工具?

  • 企业如何管理权限和审计?

  • Agent 如何从聊天走向执行?

如果说 2023 年大家在卷 Prompt,2024 年大家在卷 RAG,2025 年大家在卷 Agent,那么 2026 年真正值得关注的就是:

谁能把 Agent 接进真实系统,谁才真正拥有生产力。

最后送一句不太好听但有用的话:

未来不会淘汰程序员,但只会调 API、不会设计工具体系的程序员,确实会越来越像“AI 外包接口适配员”。

如果你已经开始研究 MCP,可以在评论区聊聊:
你最想让 Agent 调用的第一个工具是什么?数据库、文件系统、浏览器,还是公司那个祖传没人敢动的后台系统?

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐