Function Calling 用久了都会撞上同一堵墙:文件系统、数据库、浏览器……每接一个新工具,都要针对不同的模型和框架重写一遍胶水代码。MCP(Model Context Protocol)就是为拆掉这堵墙而生的开放协议——它把模型如何发现工具、如何传参、如何返回结果全部标准化,Server 只写一次,所有支持 MCP 的客户端都能直接复用。
三个核心概念
MCP 只有三类原语:Tools 是可被模型主动调用的函数,Resources 是只读数据源,Prompts 是预设提示模板。架构上分为 Host、Client、Server 三层:Host 是你的 AI 应用,Server 对外提供能力,Client 在中间按 JSON-RPC 协议通信。绝大多数场景你只需要实现 Server 这一侧。
十分钟跑通第一个 Server
以官方 Python SDK 为例,安装依赖 pip install "mcp[cli]" 后,用装饰器注册一个工具:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("echo")
@mcp.tool()
def shout(text: str) -> str:
"""把文本转成大写返回"""
return text.upper()
执行 mcp dev server.py 会自动拉起 Inspector 调试界面,在工具列表里点开 shout、填入参数就能看到返回值。把它配置到 Claude Desktop、Cline 等客户端后,模型会自主判断何时调用这个工具。
上生产前的安全清单
- 只读优先:查询类工具先上线,写入与删除默认拒绝;
- 命令白名单:涉及执行命令的 Server 只放行白名单内的程序,禁止拼接任意 shell;
- 沙箱隔离:文件系统类 Server 用容器或 chroot 圈定可见目录;
- 审计日志:记录每次调用的工具名、参数与耗时,事故可回放。
生态里 filesystem、Playwright、PostgreSQL 等现成 Server 已经不少,动手造轮子之前先搜一轮,往往改改配置就能用。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














暂无评论内容