工具与协议45k+ · since 2024 · TypeScript / Python / Rust

MCP + Agent SDK

by Anthropic

Agent-to-tool standard · the new USB-C

Model Context Protocol:Anthropic 提出的开放协议,已成为 agent 和工具通信的事实标准。

主要内容

MCP 是 agent 世界的 USB-C。在 MCP 出现之前,每个框架都有自己的 tool 定义格式,每个服务(GitHub、Slack、Postgres)都要为每个框架写一遍适配。MCP 让服务方一次开发就能被所有支持 MCP 的客户端(Claude / Cursor / Codex / Windsurf)即插即用。OpenAI 和 Google 的 Agents SDK 也已经支持 MCP server。配套的 Claude Agent SDK 更进一步,把整个 Claude Code 的 harness 暴露成 programmable API:工具循环、PreToolUse / PostToolUse hooks、subagent、allowedTools 权限控制、session 恢复。

核心关注点

关心"同一个工具,不同 agent / 不同 LLM 都能用",以及"危险操作能被层层拦截"。

标准化可组合安全优先跨 LLM 复用生态互操作

安装与 hello world

$ pip install claude-agent-sdk # 或: npm install @modelcontextprotocol/sdk
hello-world.py
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions
 
options = ClaudeAgentOptions(
    mcp_servers={
        "github": {
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-github"],
            "env": {"GITHUB_TOKEN": "..."},
        },
        "postgres": {
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-postgres"],
        },
    },
    allowed_tools=["Read", "Grep", "Bash"],
    permission_mode="default",
    system_prompt="你是一个代码审查助手。",
)
 
async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("检查最近的 PR 是否引入了 SQL 注入风险")
        async for msg in client.receive_response():
            print(msg)

关键 API / 概念

ClaudeAgentOptions

harness 配置中心。mcp_servers、allowed_tools、permission_mode、system_prompt、hooks。

mcp_servers

接入 MCP 生态。可以是 stdio(本地进程)、sse / http(远程服务)。

hooks: PreToolUse / PostToolUse

工具执行前后拦截,做审计、修改参数、deny 操作。配合 allowedTools 形成权限五层评估。

can_use_tool callback

最后一层权限,每个 tool call 都会触发。返回 allow / deny / approve_with_changes / suggest_alternative。

适用场景

01

MCP Server 开发者

把你公司的 API(内部 CRM、监控系统、代码仓库)封装成 MCP server,所有 agent 客户端即插即用。

02

MCP Client 开发者

自研 IDE 助手、企业内部 agent 平台,想要一个工具生态,接入 MCP 立刻有数百个 servers 可选。

03

Coding agent harness

用 Claude Agent SDK 继承 Claude Code 整个 harness,不用从零写 tool loop、context 管理、permission system。

什么时候别用

  • 单体应用 agent 只有几个内部工具:直接在 agent 代码里写 function 更简单
  • 严格封闭的企业环境:MCP 目前的 transport 和认证方案还在演进

vs 相邻选项

vs LangChain tools

LangChain 的 tool 只在 LangChain 生态用,MCP 跨生态。

vs OpenAI function calling

function calling 是模型层 API,MCP 是跨 agent / 跨模型的协议层。两者互补。