十年前,开发者随手就能调 Twitter、Facebook、Google Maps 的开放 API 拼出一个产品。后来那扇门一扇扇关上了——Twitter 收紧接口限额、Google 关掉 Reader 和一堆免费服务、Facebook 拿隐私当理由砍掉大量端点。开放 API 的黄金时代看起来结束了。
现在门又开了。但推门的力量变了——不是"社交驱动的 mashup 文化",而是 AI。
第一波:社交驱动的开放
2007–2012 年是第一次 API 开放浪潮的巅峰。Flickr、Twitter、Facebook、Google Maps 都提供免费或低价的开放接口,开发者靠拼搭几个 API 就能做出一个完整应用。那波浪潮的核心逻辑是:平台需要开发者帮它填充内容、扩大生态。开放 API 是获客手段。
但商业模式站稳之后,平台就不需要"免费劳动力"了。Twitter 2012 年开始限制第三方客户端,2018 年大幅收紧 API 定价;Facebook 在 Cambridge Analytica 事件后关掉了大量数据接口;Google 一年关掉好几个免费 API。开放变成了风险,封闭变成了理性选择。
第二波:AI 需要管道
这一次的逻辑完全不同。AI 模型——尤其是 Agent——需要实时、结构化的外部数据才能发挥作用。模型本身是封闭的,但它要连接外部世界,就必须有 API 作为管道。
于是我们看到了:
- MCP(Model Context Protocol):Anthropic 推出的开放协议,让 LLM 通过标准化方式调用外部工具和数据源。已经有几十个 MCP Server 实现,覆盖 GitHub、Slack、数据库、文件系统等。
- OpenAI 的 Actions / Function Calling:GPT 模型可以通过 function calling 调用外部 API,开发者只需要描述接口 schema。
- Google 的 A2A(Agent-to-Agent)协议:让不同 Agent 之间互相发现和调用。
- 各家公司重新开放 API:Notion、Linear、飞书、Slack 都在强化 API 能力,因为它们意识到——如果不让 AI Agent 接进来,产品就会被绕过。
第一波是"平台需要你",第二波是"你需要平台,但平台也需要你帮它接入 AI 生态"。权力关系变了。
实际动手:用 MCP Server 把 API 接给 AI
下面是一个最小可运行的 MCP Server 示例,把一个简单的 REST API 包装成 AI Agent 可调用的工具。假设你有一个内部服务返回服务器状态,你想让 Claude 或其他 LLM 直接查询它。
先安装依赖:
pip install mcp fastmcp httpx
然后写一个 MCP Server:
# server_status_mcp.py
from fastmcp import FastMCP
import httpx
mcp = FastMCP("server-status")
@mcp.tool()
async def get_server_status(hostname: str) -> str:
"""查询指定服务器的运行状态。
Args:
hostname: 服务器主机名,如 'web-prod-01'
"""
# 替换成你自己的内部 API 地址
api_url = f"http://internal-monitor.local/api/status/{hostname}"
try:
resp = await httpx.AsyncClient().get(api_url, timeout=5.0)
data = resp.json()
return f"服务器 {hostname} 状态: {data['status']}, CPU: {data['cpu_percent']}%, 内存: {data['memory_percent']}%"
except httpx.HTTPError as e:
return f"查询失败: {e}"
if __name__ == "__main__":
mcp.run()
启动服务:
python server_status_mcp.py
在 Claude Desktop 或支持 MCP 的客户端配置中加上这个 Server(claude_desktop_config.json):
{
"mcpServers": {
"server-status": {
"command": "python",
"args": ["server_status_mcp.py"]
}
}
}
重启 Claude Desktop 后,对话中直接问"web-prod-01 服务器状态如何",Claude 就会自动调用这个工具,拿到实时数据再回答你。
这就是第二次浪潮的典型模式:API 不再是给人写的,而是给 Agent 写的。人只需要描述意图,Agent 自己选工具、调接口、拼结果。
如果你是 API 提供方
如果你维护一个产品或内部服务,现在开放 API 的收益逻辑变了:
| 维度 | 第一波(2010) | 第二波(2025) |
|---|---|---|
| 驱动力 | 社交生态扩张 | AI Agent 需要数据管道 |
| 调用者 | 人类开发者 | AI Agent |
| 接口设计重点 | REST + OAuth | 结构化 schema + 工具描述 |
| 开放动机 | 获客、UGC | 不被 AI 生态绕过 |
| 风险 | 数据泄露、隐私 | Agent 误操作、成本失控 |
几个实用建议:
- 给每个端点写清晰的工具描述。Agent 不读文档,它读 function schema 的 description 字段。描述要具体到参数含义和返回结构。
- 设计细粒度的权限和限额。Agent 调用频率远高于人类,按 token 或按工具调用计费比按用户计费更合理。
- 优先暴露读接口。写操作先限制,等 Agent 行为可观测后再逐步开放。
- 支持 MCP 或 Function Calling schema 格式。不用你自己写 SDK,只要提供 OpenAPI spec,社区和工具链会自动生成 MCP Server。
闭关再开,但门上加了锁
第一次浪潮的教训很清楚:无限制的开放最终会被商业理性收回。第二次浪潮不会简单重复——这次开放是被迫的(AI 需要管道),但也是可控的。MCP、A2A 这些协议本质上是在门上加了一层标准化锁:接口开放,但调用方式、权限、可观测性都有协议约束。
对开发者来说,机会在于:每一个有数据但还没开放 API 的服务,都是潜在的被绕过者。帮它们接上 MCP 或 function calling,就是帮它们进入 AI 生态——也是给自己创造新业务。
对 API 提供方来说,选择也很简单:现在主动开门,还是等 Agent 用浏览器绕过你?