c2a-py: Cursor2API の Python 実装

Web

概要

c2a-py は「Cursor2API」の Python / FastAPI による最小実装リポジトリで、軽量で読みやすく二次開発しやすいことを目標にしています。主に Anthropic(Claude) 互換のエンドポイント群(/v1/messages や /messages、/messages/count_tokens、/v1/models、/health 等)を提供し、受け取ったメッセージを内部の Cursor スタイル API に変換して処理します。機能としては system prompt の簡易クリーニング、ツール定義の注入、JSON アクションブロックの解析、基礎的なアイデンティティテキスト処理などを備え、学習用やプロトタイプの基盤として適しています(約300字)。

GitHub

リポジトリの統計情報

  • スター数: 21
  • フォーク数: 5
  • ウォッチャー数: 21
  • コミット数: 2
  • ファイル数: 14
  • メインの言語: Python

主な特徴

  • FastAPI を使った軽量な HTTP サーバーで最小限の実装。
  • Anthropic / Claude 互換の複数エンドポイントを実装(メッセージ処理、トークン数計算、モデル一覧、ヘルスチェック)。
  • メッセージ→Cursor 変換、system prompt やアイデンティティ文の簡易クリーニング、ツール注入、JSON action ブロック解析をサポート。
  • 学習・デバッグ・プロトタイプ用途に適した可読性の高いコードベース。

技術的なポイント

c2a-py のコアは FastAPI ベースのルーティングと、Anthropic 互換リクエストを受けて内部処理(Cursor スタイルの API へ変換)に渡す「翻訳」層です。README にある通り、実装済みのルートは POST /v1/messages、POST /messages、POST /v1/messages/count_tokens、POST /messages/count_tokens、GET /v1/models、GET /health で、これらが Claude 互換インターフェースを模倣します。

メッセージ処理パイプラインではまず受信したメッセージ群を解析し、system prompt やアイデンティティ関連のテキストを簡潔化・正規化して不要なノイズを除去します。次に「ツール定義の注入」を行い、外部ツール呼び出しのインターフェース(ツール名やパラメータ仕様)をメッセージに組み込みます。さらに、レスポンス側で「json action」形式のブロックを検出・解析し、JSON で記述されたアクション指示を取り出して実行フローに組み込めるようにしています。これにより、チャットメッセージから自動でツール呼び出しや構造化アクションへと変換する流れをサポートします。

設計上は極力依存を抑え、学習や改変がしやすい構成になっています。FastAPI の非同期モデルにより I/O バウンドなツール呼び出しや外部 API 連携にも対応しやすく、start_py.py のような起動スクリプトで Uvicorn 等を用いたデプロイが想定されています。トークン数計算エンドポイントは、入力メッセージのトークン消費を簡易に推定するユーティリティを提供し、クライアント側でのバッチ処理やコスト見積りに役立ちます。

拡張性の面では、ツール注入ロジックや JSON action パーサはプラグイン化や外部ツール群の定義ファイル化が可能で、認証やレート制御、詳細なプロンプトエンジニアリングを追加することで本番システムへと発展させられます。セキュリティや運用面では入力検証、JSON パース時の堅牢性チェック、外部ツール呼び出し時のサンドボックス化が重要であり、現在の最小実装はあくまでプロトタイプ/学習用途に適した設計です(約1200字相当)。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • .python-version: file
  • README.md: file
  • init.py: file
  • config.py: file

…他 9 ファイル

(注)README から確認できる実ファイルとして main.py、start_py.py が存在し、そこに FastAPI のエントリポイントや起動用ラッパーがまとめられている想定です。設定は config.py に集約され、モジュール単位でメッセージ変換や JSON action 解析のロジックが分割されている小規模構成です。

まとめ

学習・プロトタイプ向けの分かりやすい Claude 互換 FastAPI 実装で、拡張も容易。

リポジトリ情報:

READMEの抜粋:

Cursor2API Python

这是 cursor2apiPython / FastAPI 最小实现版本

提供一个更轻量、便于阅读和二次开发的 Python 版本。

当前实现范围

  • FastAPI 服务入口:main.py
  • 启动脚本:start_py.py
  • Claude Code 兼容路由:
    • POST /v1/messages
    • POST /messages
    • POST /v1/messages/count_tokens
    • POST /messages/count_tokens
    • GET /v1/models
    • GET /health
  • 最小能力包括:
    • Anthropic Messages 请求转 Cursor /api/chat
    • 基础 system prompt 清洗
    • 工具定义注入
    • json action 工具块解析
    • 基础身份文本清洗
    • Claude…