S07: MCP Protocol Model Context Protocol
"MCP is the USB of AI tools" -- 统一协议连接无限可能。
Harness 层: MCP -- 外部工具集成的标准接口。
🎯 问题
AI 工具需要:
- 访问外部数据源 (数据库、API)
- 调用专业服务 (搜索、分析)
- 扩展功能 (自定义工具)
- 标准化集成方式
💡 解决方案
MCP (Model Context Protocol) 提供标准化集成:
+-------------+ +-------------+ +-------------+
| Claude Code | --> | MCP Client | --> | MCP Server |
| (Host) | | (Protocol) | | (Tool) |
+-------------+ +-------------+ +-------------+
|
+------+------+
| |
+----+----+ +----+----+
| Server | | Server |
| A | | B |
+---------+ +---------+
🔑 传输类型
stdio | 标准输入输出 (启动本地进程) |
sse | Server-Sent Events (HTTP 流) |
ws | WebSocket 连接 |
http | HTTP 传输 |
📐 连接流程
// 1. 根据类型创建传输
let transport: Transport
switch (config.type) {
case 'stdio':
transport = new StdioClientTransport({
command: config.command,
args: config.args,
})
break
case 'sse':
transport = new SSEClientTransport({
url: config.url,
})
break
}
// 2. 创建客户端并连接
const client = new Client({ name: 'claude-code' })
await client.connect(transport)
// 3. 获取能力
const capabilities = await client.listTools()
⚙️ 配置示例
{
"mcpServers": {
"github": {
"type": "stdio",
"command": "mcp-server-github",
"args": ["--repo", "owner/repo"]
},
"postgres": {
"type": "stdio",
"command": "mcp-server-postgres",
"env": { "DATABASE_URL": "postgresql://..." }
},
"api": {
"type": "sse",
"url": "https://api.example.com/mcp"
}
}
}