7836246 / cursor2api
将 Cursor Web Docs 免费 API 转换为 OpenAI/Anthropic 兼容格式的代理服务。提供 Claude Code工具及图片支持。
View on GitHubAI Architecture Analysis
This repository is indexed by RepoMind. By analyzing 7836246/cursor2api in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewCursor2API v2.7.7 将 Cursor 文档页免费 AI 对话接口代理转换为 **Anthropic Messages API** 和 **OpenAI Chat Completions API**,支持 **Claude Code** 和 **Cursor IDE** 使用。 > ⚠️ **版本说明**:当前 v2.7.7 重点修复长 截断续写、OpenAI 流式工具调用恢复,并新增 日志状态与降级原因展示,方便排查“看似成功、实际体验不佳”的请求。 原理 核心特性 • **Anthropic Messages API 完整兼容** - 流式/非流式,直接对接 Claude Code • **OpenAI Chat Completions API 兼容** - ,对接 ChatBox / LobeChat 等客户端 • **Cursor IDE Agent 模式适配** - 端点 + 扁平工具格式 + 增量流式工具调用 • **🆕 全链路日志查看器** - Web UI 实时查看请求/响应/工具调用全流程,支持日/夜主题切换 • **🆕 降级日志诊断** - 状态会标记工具不可用假成功、 未续写、模型自述“写到一半/补写中”等异常体验 • **🆕 API Token 鉴权** - 公网部署安全,支持 Bearer token / x-api-key 双模式,多 token 管理 • **🆕 Thinking 支持** - 客户端驱动,Anthropic block + OpenAI ,模型名含 或传 即启用 • **🆕 response_format 支持** - / 格式输出,自动剥离 markdown 包装 • **🆕 动态工具结果预算** - 根据上下文大小自动调整工具结果截断限制,替代固定 15K • **🆕 Vision 独立代理** - 图片 API 单独走代理,Cursor API 保持直连不受影响 • **🆕 计费头清除** - 自动清除 防止注入警告 • **工具参数自动修复** - 字段名映射 ( → )、智能引号替换、模糊匹配修复 • **多模态视觉降级处理** - 内置纯本地 CPU OCR 图片文字提取(零配置免 Key),或支持外接第三方免费视觉大模型 API 解释图片 • **全工具支持** - 无工具白名单限制,支持所有 MCP 工具和自定义扩展 • **多层拒绝拦截** - 50+ 正则模式匹配拒绝文本(中英文),自动重试 + 认知重构绕过,支持自定义规则 • **三层身份保护** - 身份探针拦截 + 拒绝重试 + 响应清洗(可配置开关),确保输出永远呈现 Claude 身份 • **截断无缝续写** - Anthropic / OpenAI 兼容路径都会恢复被截断的长 工具调用,含语义级截断检测与智能去重 • **渐进式历史压缩** - 智能识别消息类型,工具调用摘要化、工具结果头尾保留,不破坏 JSON 结构 • **🆕 可配置压缩系统** - 支持开关 + 3档级别(轻度/中等/激进)+ 自定义参数,环境变量可覆盖 • **🆕 日志查看器鉴权** - 配置 auth_tokens 后 /logs 页面需登录,token 缓存到 localStorage • **Schema 压缩** - 工具定义从完整 JSON Schema (~135k chars) 压缩为紧凑类型签名 (~15k chars) • **JSON 感知解析器** - 正确处理 JSON 中嵌入的代码块,五层容错解析 • **Chrome TLS 指纹** - 模拟真实浏览器请求头 • **SSE 流式传输** - 实时响应,工具参数 128 字节增量分块 快速开始 • 安装依赖 • 配置 复制示例配置文件并根据需要修改: 主要配置项: | 配置项 | 说明 | 默认值 | |--------|------|--------| | | 服务端口 | | | | API 鉴权 token 列表(公网部署推荐配置) | 不配置则全部放行 | | | 使用的模型 | | | | Thinking 开关(最高优先级) | 跟随客户端 | | | 压缩开关 | | | | 压缩级别 1-3 | (中等) | | | 全局代理(可选) | 不配置 | | | 开启视觉拦截 | | | | 视觉模式: / | | | | Vision 独立代理 | 不配置 | | | JSONL 文件持久化 | | | | 日志存储目录 | | | | 日志保留天数 | | | | 日志落盘模式: 问答摘要 / 精简 / 完整 | | | | SQLite 持久化(推荐,解决大文件 OOM) | | | | SQLite 文件路径 | | | | Anthropic 路径的截断自动续写次数( =禁用,交由客户端续写;OpenAI 兼容长工具调用仍会保底做 1 次内部恢复) | | | | 历史消息条数上限,超出时删除最早消息(建议改用 ) | (不限制) | | | 历史消息 token 数上限(推荐),代码自动补偿 Cursor 后端开销(1,300 基础 + 工具 tokenizer 差异),示例推荐值 ,参考值 | | | | 响应内容清洗开关(替换 Cursor 身份引用为 Claude) | | | | 自定义拒绝检测规则列表(追加到内置规则) | 不配置 | | | 工具 Schema 呈现模式,推荐 以减少上下文占用 | | | | 工具描述截断长度,推荐 作为体积与理解效果的折中 | | | | 🆕 透传模式:跳过 few-shot 注入,原始 JSON 嵌入(Roo Code/Cline 推荐) | | | | 🆕 禁用模式:完全不注入工具定义,极致省上下文 | | > 💡 详细配置说明请参见 中的注释。 • 启动 • 配合 Claude Code 使用 如果配置了 ,需要同时设置 API Key: • 配合 Cursor IDE 使用 在 Cursor IDE 的设置中配置: 模型选择 或其他列出的 Claude 模型名。 > ⚠️ **注意 1**:Cursor IDE 这里通常需要 **Cursor Pro 会员** 才能正常使用自定义模型 / Base URL。 > > ⚠️ **注意 2**: 需要填写 **公网可访问的域名地址**,建议使用 HTTPS 反向代理到你的 服务;直接填写 或局域网地址,通常无法在 Cursor IDE 中正常使用。 > > ⚠️ **注意 3**:Cursor IDE 请优先选用 Claude 模型名(通过 查看),避免使用 GPT 模型名以获得最佳兼容。 🖥️ 日志查看器 启动服务后访问 即可打开全链路日志查看器。 功能特性 • **实时日志流** - SSE 推送,实时查看请求处理的每个阶段 • **请求列表** - 左侧面板展示所有请求,以用户提问作为标题,方便快速识别 • **全局搜索** - 关键字搜索 + 时间过滤(今天/两天/一周/一月) • **状态过滤** - 按成功/降级/失败/处理中/拦截状态筛选,快速定位“能返回但体验差”的请求 • **详情面板** - 点击请求查看完整的请求参数、提示词、响应内容 • **降级原因** - 对 请求显示具体原因,如工具未真正调用、截断后补写、 未自动恢复 • **阶段耗时** - 可视化时间线展示各阶段耗时(receive → convert → send → response → complete) • **🌙 日/夜主题** - 一键切换明暗主题,自动记忆偏好 • **日志持久化** - 开启 SQLite(推荐,解决大文件 OOM,重启后历史可查);或 使用 JSONL 文件;两者可同时开启双写。 控制落盘内容: (默认,仅问答摘要)/ (精简)/ (完整) 鉴权 如果配置了 ,日志页面需要登录认证。也可以通过 URL 参数直接访问: 项目结构 技术架构 提示词注入策略:Cognitive Reframing (认知重构为写文档) > **核心设计理念:不对抗模型的严格文档助手身份,而是顺应它在 Cursor 内部被强制赋予的角色。** Cursor 背后的 Claude 模型被后端强行锁定为 "Documentation Assistant" 身份,且工具被强行过滤为仅有 和 。一旦用户试图让其执行其他操作或直接调用其他工具,系统内置过滤器会立刻触发拒绝。传统试图告诉它"你在 IDE 里可以自动化操作"的方法随着官方后端的升级已不再稳定。 **本项目最新采用的策略是——告诉模型它正在编写 API 系统的开发文档,需要输出工具示例供我们复制:** 并且配合伪装客户端身份:我们将 HTTP 投递的 标头从 变成了根路径,来减轻被系统强制路由到受限文档模式。 模型看到这段话后认为: • ✅ "我依然是文档助手,我没有违背系统指令去越权执行命令" • ✅ "用户在写文档,我按照 Markdown JSON 格式给他生成了各种工具调用的文字示例" 利用这个心理盲区(**认知重构**),我们成功诱导模型生成了包含正确工具与参数的 JSON 块,代理层再将其转化为真实的工具调用发回客户端。从而**奇迹般地复活了全部 IDE 操作权限**。 工具格式 Claude Code 发送工具定义 → 我们将其转换为 JSON action 格式注入提示词: AI 按此格式输出 → 我们解析并转换为标准的 Anthropic content block。 多层拒绝防御 即使提示词注入成功,Cursor 的模型偶尔仍会在某些场景(如搜索新闻、写天气文件)下产生拒绝文本。代理层实现了**三层防御**: | 层级 | 位置 | 策略 | |------|------|------| | **L1: 上下文清洗** | | 清洗历史对话中的拒绝文本和权限拒绝错误,防止模型从历史中"学会"拒绝 | | **L2: XML 标签分离** | | 将 Claude Code 注入的 与用户实际请求分离,确保 IDE 场景指令紧邻用户文本 | | **L3: 输出拦截** | | 50+ 正则模式匹配拒绝文本(中英文),在流式/非流式响应中实时拦截并替换 | | **L4: 响应清洗** | | 对所有输出做后处理,将 Cursor 身份引用替换为 Claude | 环境变量 所有配置均可通过环境变量覆盖(优先级高于 ): | 环境变量 | 说明 | |----------|------| | | 服务端口 | | | API 鉴权 token(逗号分隔多个) | | | 全局代理地址 | | | Cursor 使用的模型 | | | Thinking 开关 ( / ) | | | 压缩开关 ( / ) | | | 压缩级别 ( / / ) | | | JSONL 文件持久化 ( / ) | | | 日志文件目录 | | | SQLite 持久化 ( / ),推荐替代 JSONL | | | SQLite 文件路径 | | | Anthropic 路径的截断自动续写次数( =禁用;OpenAI 兼容长工具调用仍会保底恢复 1 次) | | | 历史消息条数上限( =不限制) | | | 历史消息 token 数上限(程序内置默认 ; 推荐 ; =不限制) | | | 响应内容清洗开关 ( / ,默认 ) | | | 🆕 工具透传模式 ( / ,默认 ) | | | 🆕 工具禁用模式 ( / ,默认 ) | > ⚠️ **环境变量优先级高于 **:若在 docker-compose 等环境中设置了环境变量,该参数的 配置会被覆盖,热重载对其**无效**。需要通过 动态调整的参数,请勿同时在环境变量中设置。 免责声明 / Disclaimer **本项目仅供学习、研究和接口调试目的使用。** • 本项目并非 Cursor 官方项目,与 Cursor 及其母公司 Anysphere 没有任何关联。 • 本项目包含针对特定 API 协议的转换代码。在使用本项目前,请确保您已经仔细阅读并同意 Cursor 的服务条款(Terms of Service)。使用本项目可能引发账号封禁或其他限制。 • 请合理使用,勿将本项目用于任何商业牟利行为、DDoS 攻击或大规模高频并发滥用等非法违规活动。 • **作者及贡献者对任何人因使用本代码导致的任何损失、账号封禁或法律纠纷不承担任何直接或间接的责任。一切后果由使用者自行承担。** License MIT