Anthropic 宣布收购 SDK 与 MCP 服务器工具厂商 Stainless,这并非一起普通的补齐短板的交易,而是 AI 智能体从"对话框"走向"操作系统"的关键落子。智能体要真正干活,就必须能稳定、高效地调用外部系统 API,而 Stainless 正是那个把杂乱 API 变成标准化工具链的引擎。
SDK 与 MCP:智能体的手与神经
大语言模型本身只是一个离线的推理引擎。让它变成智能体,核心在于赋予它行动能力——也就是 Tool Use(工具调用)。
过去,开发者要让模型调用外部 API,需要手写大量胶水代码:处理认证、解析响应、容错重试。这不仅繁琐,而且极易出错。Stainless 的核心能力,就是从 OpenAPI 等规范出发,自动生成类型安全、 idiomatic(符合语言生态习惯)的 SDK。这相当于为智能体打造了标准化的"手"。
而 MCP(Model Context Protocol)则更进一步。它定义了智能体与外部工具、数据源通信的标准协议。如果说 SDK 是单点连接的"手",MCP 就是一张标准化的"神经网"。Stainless 在 MCP 服务器工具生成上的积累,让 Anthropic 直接拿到了构建这张神经网的核心基建。
从 API 规范到可执行代码:Stainless 的技术底座
Stainless 成立于 2022 年,从 Anthropic API 早期阶段起,就一直在为所有官方 Anthropic SDK(Python、TypeScript 等)的生成提供支持。这意味着 Claude 生态现有的开发者体验,底层早已依赖 Stainless 的编译技术。
数百家公司依赖 Stainless 生成 SDK 和 CLI,这背后是一个硬核工程问题:现代 REST API 规范(OpenAPI)往往冗长且充满边缘情况,手写 SDK 极难保持跨语言的一致性与及时更新。Stainless 通过编译器级别的代码生成技术,将 API 规范直接转化为可发布的高质量代码包。Anthropic 将其收入麾下,意味着未来 Claude 智能体接入新系统的迭代速度与覆盖广度,将得到底层工具的强支撑。
实战:用 MCP 服务器为智能体接入外部系统
Stainless 的价值在于规模化生成,但对于开发者而言,理解 MCP 如何让智能体触达系统更为直观。我们可以用 Anthropic 开源的 Python MCP SDK,快速构建一个让智能体查询真实系统数据的 MCP 服务器。
以下示例构建了一个模拟的"内部工单系统" MCP 服务器,智能体可以通过它查询工单状态:
# 1. 安装依赖: pip install mcp
# 2. 保存为 ticket_server.py
from mcp.server.fastmcp import FastMCP
# 初始化 MCP 服务器,命名为 TicketSystem
mcp = FastMCP("TicketSystem")
# 模拟内部工单数据库
TICKET_DB = {
"T-1001": {"status": "open", "assignee": "alice", "priority": "high"},
"T-1002": {"status": "closed", "assignee": "bob", "priority": "low"},
}
# 注册一个 Tool,供智能体发现并调用
@mcp.tool()
def get_ticket_status(ticket_id: str) -> str:
"""查询内部工单系统的工单状态。参数为工单 ID,如 T-1001。"""
ticket = TICKET_DB.get(ticket_id)
if not ticket:
return f"未找到工单: {ticket_id}"
return f"工单 {ticket_id} 状态: {ticket['status']}, 负责人: {ticket['assignee']}, 优先级: {ticket['priority']}"
if __name__ == "__main__":
# 以 stdio 模式运行,供 Claude 等智能体宿主进程直接调用
mcp.run()
要让 Claude Desktop 或其他支持 MCP 的智能体宿主连接这个服务器,只需在配置文件中声明:
// 在 Claude Desktop 的 claude_desktop_config.json 中添加
{
"mcpServers": {
"TicketSystem": {
"command": "python",
"args": ["ticket_server.py"]
}
}
}
重启宿主后,智能体就能自动发现 get_ticket_status 工具,并在对话中根据用户意图主动调用。这便是智能体连接系统的最小闭环。Stainless 的作用,就是将成百上千个类似这样的企业 API,规模化地转化为 MCP 服务器与 SDK。
开发者准备清单与生态考量
随着 Anthropic 将 Stainless 的生成能力内化,智能体连接外部系统的门槛会持续降低。面对这一趋势,开发者在构建 API 与智能体集成时,可以参考以下清单:
- API 规范优先:确保你的 REST API 拥有严格、完整的 OpenAPI 规范。这是 SDK 与 MCP 服务器自动生成的源头。
- 为智能体设计 API:传统 API 面向人类或前端,而智能体更需要语义清晰的端点与结构化响应。减少模糊的 HTTP 状态码,返回机器可读的错误详情。
- 拥抱 MCP 标准:如果你正在为智能体提供工具,优先考虑实现 MCP 服务器,而非私有的函数调用 JSON Schema。
- 权限与安全边界:智能体调用 API 意味着机器代替人行动。OAuth2、细粒度 Scope 与操作审计日志必须成为 API 设计的标配。
另一方面,也需要警惕生态锁定的风险。Stainless 虽然服务于 Anthropic,但其生成的 SDK 是面向所有开发者的。MCP 本身是一个开放协议。在享受工具链便利的同时,保持对开放标准的跟进,避免将所有工具接入绑定在单一智能体厂商的私有增强上,是长期更稳健的策略。