mcpField
L
Lenspr

Lenspr

ローカル
github.com/kyrylopr開発ツール036 週間前に更新

Lenspr について

Lenspr はコーディングエージェント向けにローカルのコード依存グラフを構築し、編集前の関係確認と変更影響の評価を支援します。Python と TypeScript/JavaScript に対応し、影響分析、コード健全性、アーキテクチャ検査のツールを備えています。

主な機能

  1. 01言語をまたぐ依存グラフ
  2. 02変更影響の分析と検証
  3. 03ソース、呼び出し元・先、テストの一括確認
  4. 04デッドコードと健全性の検査
  5. 05アーキテクチャルールの適用
  6. 06ファイル保存時のグラフ自動更新

活用シーン

  1. 01関数変更による影響範囲を事前に評価
  2. 02フロントエンドの API 呼び出しからバックエンドルートを追跡
  3. 03デッドコードの検出とコードベースの健全性確認
  4. 04コード編集時にアーキテクチャルールを確認

MCP 対応

Claude Code や Cursor を含む MCP クライアントに、60 種類以上のコードインテリジェンスツールを公開します。グラフはローカルで動作し、ソースから再構築されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"lenspr": {
"command": "uvx",
"args": [
"lenspr"
]
}
}
}
起動コマンドuvx lenspr

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilenspr0.1.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LensPR

AI コーディングエージェント向けのコードインテリジェンスです。AI は変更を加える前に依存関係を把握できます。

アルファ版(0.1.x)— 実際のプロジェクトで動作し、作者が毎日使用しています。まだ粗削りな部分があります。

AI アシスタントは一度に1つのファイルだけを編集します。依存関係は見えていません。grep して読み、推測し、3つ先のファイルまで壊してしまいます。

LensPR はコードベースの依存関係グラフを構築し、AI が変更を加える前に構造を理解できるようにします。

クイックスタート

Python 3.11 以降、macOS または Linux が必要です。TypeScript/JS プロジェクトでは、Node.js 18 以降も必要です。

pip install 'lenspr[all]'
lenspr init .
lenspr setup .

IDE を再起動すれば完了です。AI が lens_* ツールを使えるようになります。

.lens/ を .gitignore に追加してください。グラフはローカルに保存され、ソースから再構築されます。


できること

「この関数に依存しているものは?」

1回の呼び出しで、ソースコード、その関数を呼び出すコード、関数が呼び出すコード、関連するテストがすべて返されます。

> lens_context("auth.login_handler")

source: 42 lines
callers: auth_routes.create_routes, test_auth.test_login_success
callees: db.get_user, crypto.verify_password, jwt.create_token
tests: test_login_success, test_login_wrong_password

LensPR がなければ、AI は grep/read を5〜7回呼び出しても、見落としが残ります。LensPR があれば、1回の呼び出しですべて把握できます。

「これを変更すると何が壊れる?」

変更を加える前に、AI は影響範囲を確認できます。

> lens_check_impact("models.User")

severity: CRITICAL
direct_dependents: 15
indirect_dependents: 23
affected_modules: auth, payments, notifications
tests_covering: 3

AI は警告を出したり、アプローチを変えたり、確認を求めたりします。もう見当違いの編集はありません。

「このコードベースの健全性は?」
> lens_vibecheck()

score: 86/100 (B)
  test_coverage:    17/25 — 67% functions tested
  dead_code:        20/20 — 0% dead code
  circular_imports: 15/15 — 0 cycles
  architecture:     12/15 — 1 violation
  documentation:     8/10 — 81% documented
  graph_confidence: 14/15 — 94% edges resolved

コードベースが時間の経過とともに改善しているか、劣化しているかを追跡できます。

言語をまたいだ可視性

LensPR はフロントエンドとバックエンドを1つのグラフにつなぎます。

LoginModal.tsx → fetch("/api/auth/login")
                        ↓ CALLS_API
Backend:  @router.post("/login") → login_handler()
            → db.query(User)        [reads: users]
            → verify_password()
            → create_jwt_token()

データベーステーブル、Docker サービス、環境変数、CI/CD ワークフロー、SQL マイグレーションも追跡できます。


対応環境

IDEセットアップ
Claude Codelenspr setup . — 自動
Cursor.mcp.json を .cursor/mcp.json にコピー
任意の MCP クライアントlenspr serve <path>

言語: Python(Jedi/Pyright により95%以上の解決率)、TypeScript/JavaScript(tree-sitter + TS Compiler API により85〜95%)。

インフラストラクチャ: .sql ファイル、Dockerfile、docker-compose.yml、GitHub Actions ワークフロー、.env ファイルをすべて解析し、同じグラフに取り込みます。

すべてローカルで動作します。コードがマシンの外に出ることはありません。


主な機能

影響分析変更を加える前に重大度(LOW → CRITICAL)を確認
ワンコールでコンテキスト取得ソース、呼び出し元、呼び出し先、テストを1回のリクエストで取得
クロスランゲージフロントエンドのHTTPから、バックエンドのルート、DBテーブル、Docker、環境変数、CI/CDまで対応
ピンポイント編集関数内の対象箇所を検索・置換し、ファイル全体を書き換えません
デッドコード到達不能な関数を検出(Django、FastAPI、Celeryのエントリーポイント)
アーキテクチャルールレイヤーの境界を適用し、変更を反映する前に違反を警告
関数ごとのGit情報関数レベルでBlame、履歴、コミット範囲を確認
セッションメモリコンテキストがリセットされても、AIが中断したところから作業を再開
自動同期ファイルウォッチャーが保存のたびにグラフを更新
健全性スコア6つの側面を0〜100で評価し、品質の推移を追跡

60以上のツールを12のグループに分類しています。lenspr toolsで必要なものだけを有効にできます。

カテゴリ別の全ツール

ナビゲーションと検索(8): lens_context、lens_get_node、lens_search、lens_grep、lens_find_usages、lens_get_structure、lens_list_nodes、lens_get_connections

変更(6): lens_update_node、lens_patch_node、lens_add_node、lens_delete_node、lens_rename、lens_batch

分析(6): lens_check_impact、lens_validate_change、lens_health、lens_dead_code、lens_dependencies、lens_diff

品質(7): lens_vibecheck、lens_nfr_check、lens_test_coverage、lens_security_scan、lens_dep_audit、lens_fix_plan、lens_generate_test_skeleton

アーキテクチャ(9): lens_arch_rule_add、lens_arch_rule_list、lens_arch_rule_delete、lens_arch_check、lens_class_metrics、lens_project_metrics、lens_largest_classes、lens_compare_classes、lens_components

Git(4): lens_blame、lens_node_history、lens_commit_scope、lens_recent_changes

インフラストラクチャ(5): lens_api_map、lens_db_map、lens_env_map、lens_ffi_map、lens_infra_map

テストとトレース(3): lens_run_tests、lens_trace、lens_trace_stats

注釈(5): lens_annotate、lens_save_annotation、lens_batch_save_annotations、lens_annotate_batch、lens_annotation_stats

セッション(4): lens_session_write、lens_session_read、lens_session_handoff、lens_resume

時間分析(2): lens_hotspots、lens_node_timeline

説明(1): lens_explain


既知の制限事項

  • Windows — サポート対象外です。macOSとLinuxのみ対応しています。
  • self.method()の呼び出し — 静的パーサーでは、インスタンスメソッドのディスパッチを完全に解決できません。回避策:lens_trace(Python 3.12以降)を使うと、実行時に解決できます。
  • Go、Rust、Java — まだサポートされていません。コントリビューター向けのパーサーインターフェースは用意されています。
  • 動的コード — getattr、eval、動的インポートは静的には追跡できません。

コントリビューション

試してみてください。問題があれば教えてください。

  • バグ報告 — 「動きません」という報告だけでも役に立ちます
  • 言語パーサー — Go、Rust、Java(BaseParserインターフェースは用意されています)
  • アイデア — issueを作成

ライセンス

MIT


AIがコードを壊し続けていたので作りました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。