Claude API 2 Cursor
让 Cursor 用上 Claude Code 中转站 API。
思路
本项目作为中转代理,实现 Cursor 与 Claude API 之间的协议转换。核心流程如下:
┌─────────────┐
│ Cursor │
│ 客户端 │
└──────┬──────┘
│ OpenAI 格式请求
│ POST /v1/chat/completions
▼
┌─────────────────────────────────────────────────────────┐
│ 本代理服务 │
│ ┌───────────────────────────────────────────────────┐ │
│ │ 1. 接入鉴权 (ACCESS_API_KEY) │ │
│ └───────────────┬───────────────────────────────────┘ │
│ ▼ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ 2. 请求格式转换 │ │
│ │ • messages 格式映射 │ │
│ │ • system 提取为独立字段 │ │
│ │ • tools 转换为 Anthropic 格式 │ │
│ │ • Tool Use 智能修复(引号容错) │ │
│ └───────────────┬───────────────────────────────────┘ │
│ ▼ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ 3. 转发到 Claude 中转站 │ │
│ │ • 注入 API Key (x-api-key / Bearer) │ │
│ │ • 设置 anthropic-version 头 │ │
│ └───────────────┬───────────────────────────────────┘ │
│ │ │
└──────────────────┼───────────────────────────────────────┘
│ Anthropic 格式请求
▼
┌──────────────┐
│ Claude 中转站 │
│ (Relay API) │
└──────┬───────┘
│ 流式响应 (SSE)
▼
┌─────────────────────────────────────────────────────────┐
│ 本代理服务 │
│ ┌───────────────────────────────────────────────────┐ │
│ │ 4. 响应格式转换 │ │
│ │ • content_block_delta → delta.content │ │
│ │ • tool_use → function_call │ │
│ │ • 流式事件转 OpenAI SSE 格式 │ │
│ └───────────────┬───────────────────────────────────┘ │
│ │ │
└──────────────────┼───────────────────────────────────────┘
│ OpenAI 格式流式响应
▼
┌─────────────┐
│ Cursor │
│ 客户端 │
└─────────────┘