DepTime について
DepTimeは、Pythonライブラリを扱うコーディングエージェント向けのローカルAPI履歴ツールです。リリース間の静的差分からシンボルの変更時期と代替手段を調べ、コードやエラーを端末外に送信しません。
主な機能
- 01リリースの根拠に基づくPython APIエラーの説明
- 02バージョンをまたいだシンボル履歴の参照
- 03シンボルとキーワード引数の事前確認
- 04リリース間または指定日以降の変更比較
- 05事前構築済みリリースインデックスによるローカル回答
活用シーン
- 01ImportErrorや削除された引数の調査
- 02コード生成前のAPI記憶の確認
- 03依存関係の更新前に破壊的変更を確認
MCP 対応
ローカルMCPサーバーが、エラー説明、シンボル履歴、シンボルの事前確認、バージョン差分、インデックスの収録状況を調べるツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
コーディングエージェント向けに構築された、Python ライブラリの API タイムマシンです。
動きの速いライブラリでエージェントが ImportError、AttributeError、または「予期しないキーワード引数」に遭遇したとき、DepTime を一度呼び出すだけで、何が、どのリリースで変わり、代わりに何を使うべきかがわかります。回答はドキュメントやモデルの記憶ではなく、インデックス化された各リリースの静的な差分から計算されます。
無料のオープンソース(MIT)で、ローカルで動作します。コードやエラーがマシンの外に送信されることはありません。
TypeError: Client.__init__() got an unexpected keyword argument 'proxies'
{
"symbol": "httpx.Client.__init__(proxies)",
"issue": "param_removed",
"installed_version": "0.28.1",
"last_version_with": "0.27.2",
"first_version_without": "0.28.0",
"deprecated_in": "0.26.0",
"replacements": [
{"target": "proxy", "confidence": 0.8, "source": "deprecation_message"},
{"target": "mounts", "confidence": 0.79, "source": "deprecation_message"}
],
"pin_to_restore": "httpx<=0.27.2",
"confidence": "high"
}
これは、公開済みインデックスから得られた explain_error の実際の回答を短くしたものです。完全な回答では、DepTime が httpx 自身のソースコードで見つけた非推奨メッセージも引用し、エージェントが伝えられるように一文の説明を加えます。
ステータス: アルファ版です。ビルド済みインデックスは毎晩再構築されます。既知の不足点は BACKLOG.md で追跡されています。
インストール
uv が必要です。
# Claude Code. Cursor, Codex, VS Code and Claude Desktop take the same
# command (uvx deptime mcp) in their MCP config.
claude mcp add deptime -- uvx deptime mcp
初回起動時、DepTime はビルド済みインデックス(このリポジトリの GitHub Releases にある 1 つのファイル)をバックグラウンドでダウンロードし、その後は 1 日に最大 1 回、新しいインデックスがあるか確認します。ネットワークに一切接続しないようにするには、DEPTIME_OFFLINE=1 を設定してください。
Claude Code ユーザーは、/plugin marketplace add cschmertz/deptime を実行して integrations/claude-code のプラグインを追加し、続けて /plugin install deptime@deptime を実行することもできます。これにより、コマンド出力に Python のバージョン変更に関するエラーが現れたときに DepTime を提案するスキルとローカルフックが追加されます。
ツール
| ツール | 使用するタイミング |
|---|---|
explain_error(traceback, installed_versions?, pip_freeze?) | ライブラリのインポートまたは呼び出しでエラーが発生したとき |
symbol_history(package, path) | 覚えている API を信頼する前 |
check_symbols(package, version, symbols[{path, kwargs}]) | これから使用するシンボルと kwargs の事前チェック |
diff_versions(package, from_version | date, to_version?, used_symbols?) | アップグレードするとき、または「学習データのカットオフ以降、何が変わったか」を調べるとき |
coverage() | インデックスの対象(動きの速い 52 個のパッケージ:AI/エージェントのスタックと、破壊的変更が知られているライブラリ) |
すべての回答には根拠と信頼度が示されます。対象外のパッケージについては、DepTime は推測せず、その旨を伝えます。仕様は docs/03-product-spec.md に記載されています。
CLI
uvx deptime explain --installed httpx==0.28.1 < traceback.txt
uvx deptime history httpx Client.__init__
uvx deptime check httpx 0.28.1 'httpx.Client:proxies,proxy'
uvx deptime diff httpx 0.27.2 0.28.1
uvx deptime diff pydantic 2024-06-01 # everything since a date
uvx deptime index status | pull
仕組み
毎晩、GitHub Actions が griffe を使って、新しい各リリースの公開 API を読み込みます。griffe はソースを実行せずに解析し、前のリリースとの差分を取り、その結果を index.sqlite.gz という単一のファイルとして、このリポジトリの Releases に公開します。お使いのマシンでは、deptime mcp がそのファイルの sha256 とスキーマを確認してから入れ替え、すべての質問にミリ秒単位でローカルに回答します。設計の詳細は docs/04-architecture.md に、設計上の決定事項は docs/adr/ に記載されています。
ホスティング(任意)
ローカルモードはコーディングエージェントに対応しています。URL のみを受け付ける Web クライアントや公開デモの場合は、deptime serve(MCP は /mcp、JSON は /v1/*)を Cloud Run(おそらく無料)または Fly.io(月額約 3~6 ドル)で実行してください。Dockerfile と fly.toml が含まれており、匿名アクセスのレート制限もあります。docs/05-hosting-and-sustainability.md をご覧ください。
先行事例とクレジット
- griffe は静的解析を行います。
- since-cutoff は、固定した依存関係とモデルの学習カットオフをローカルでオンデマンドに照合します。DepTime は、ビルド済みのバージョン横断インデックスを提供し、トレースバックを起点とする点が異なります。
- Context7 と Ref は、バージョンごとのドキュメントを提供します。DepTime は、シンボル単位で「いつ、何に置き換えられたか」という質問に回答します。
貢献
最も役立つ貢献は、誤回答の報告です。報告はベンチマークケースになります。CONTRIBUTING.md をご覧ください。開発環境のセットアップ:
uv sync && uv run pytest
# build a small local index from real PyPI wheels
uv run deptime ingest httpx --versions 0.27.2 0.28.1
ドキュメント
製品仕様 · アーキテクチャ · ホスティングと持続可能性 · ローンチと導入 · リスクとスパイク · プライバシーとセキュリティ
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。