这是 cursor2api 的 Python / FastAPI 最小实现版本。
提供一个更轻量、便于阅读和二次开发的 Python 版本。
- FastAPI 服务入口:
main.py - 启动脚本:
start_py.py - Claude Code 兼容路由:
POST /v1/messagesPOST /messagesPOST /v1/messages/count_tokensPOST /messages/count_tokensGET /v1/modelsGET /health
- 最小能力包括:
- Anthropic Messages 请求转 Cursor
/api/chat - 基础 system prompt 清洗
- 工具定义注入
json action工具块解析- 基础身份文本清洗
- Claude Code 可识别的非流式/流式响应格式
- Anthropic Messages 请求转 Cursor
py/
├── main.py # FastAPI 入口
├── start_py.py # 本目录下的启动脚本
├── config.py # 环境变量配置
├── schemas.py # Anthropic 请求/响应相关模型
├── converter.py # 请求转换、工具注入、json action 解析
├── cursor_client.py # 向 Cursor /api/chat 发起请求
├── constants.py # 拒绝检测、身份清洗规则
├── requirements.txt # pip 依赖
└── pyproject.toml # Python 项目元数据
pip install -r requirements.txtuv sync在 py/ 目录下运行:
python start_py.py默认监听:
http://0.0.0.0:8000
也可以直接使用 uvicorn:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload| 变量名 | 说明 | 默认值 |
|---|---|---|
HOST |
监听地址 | 0.0.0.0 |
PORT |
服务端口 | 8000 |
RELOAD |
是否开启热重载 | false |
CURSOR_CHAT_API |
上游 Cursor 接口地址 | https://cursor.com/api/chat |
CURSOR_MODEL |
转发时使用的模型名 | claude-4-5 |
REQUEST_TIMEOUT |
请求超时秒数 | 90 |
AUTH_TOKEN |
代理自身鉴权 token,多个可逗号分隔 | 空 |
SANITIZE_RESPONSE |
是否清洗身份相关文本 | true |
TOOLS_PASSTHROUGH |
是否使用工具透传模式 | false |
TOOLS_DISABLED |
是否禁用工具注入 | false |
USER_AGENT |
转发请求时的浏览器 UA | 内置 Chrome UA |
服务启动后,可将 Claude Code 指向本代理:
export ANTHROPIC_BASE_URL=http://localhost:8000如果你配置了 AUTH_TOKEN,还需要同时设置:
export ANTHROPIC_API_KEY=your-token- 本目录下的 Python / FastAPI 代码仅供学习、研究、协议分析与接口调试使用。
- 该实现并非 Cursor 官方项目,也不代表 Cursor、Anysphere、Anthropic 或其他任何服务提供方的官方立场。
- 使用本项目可能违反相关平台服务条款,也可能导致账号限制、账号封禁、访问策略调整或其他不可预期后果。
- 请勿将本项目用于任何违法违规用途,包括但不限于滥用接口、规避平台限制、批量攻击、数据窃取或其他侵害第三方权益的行为。
- 作者及贡献者不对���使用、修改、部署、传播本代码而导致的任何直接或间接损失承担责任,所有风险由使用者自行承担。