codelens-mcp について
codelens-mcpは、TypeScript、JavaScript、Pythonの構造を解析し、ファイル全体を読む前にコードを探せる、AIエージェント向けの読み取り専用MCPサーバーです。lens-mcpに統合済みで、現在は開発されていません。
主な機能
- 01ディレクトリとファイル構造の把握
- 02関数シグネチャと行範囲の抽出
- 03単一関数のソース取得
- 04定義とコメントの検索
- 05構文エラーと切り捨ての報告
活用シーン
- 01未知のコードベースの構造把握
- 02名前による関数やクラスの検索
- 03確認対象の関数だけを読む
MCP 対応
stdio経由で、読み取り専用のコードナビゲーションツールを7つMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
codelens-mcp
⚠️ lens-mcpに置き換えられました
codelensは
lens-mcpに統合されました — コードとMarkdownドキュメントの両方をマッピングする単一のMCP サーバーです。すべてのcodelensツール(map、overview、functions、function_body、comments、find、info)を そのまま引き継ぎ、ドキュメント用ツール(outline、heading、links、search)と、1回の呼び出しでプロジェクト全体のコード構造とドキュメントのアウトラインを返す統合mapも備えています。代わりにlens-mcpをお使いください —
git clone https://github.com/segentic-lab/lens-mcp。 既存のリンクを有効にしておくため、このリポジトリは残されています。今後の開発はありません。(以下の説明は参考用に掲載しています。)
AI エージェント向けの決定論的なコード構造マップです。コードベースの構造(インポート、エクスポート、クラス、関数、 シグネチャ、コメント、TODOマーカー)をエージェントに提供するMCPサーバー(stdio)です。ファイル全体をコンテキストに読み込む必要はありません。 tree-sitter WASM文法を使用しているため、ネイティブのビルド工程が不要で、Node 18+が動作する環境ならどこにでもインストールできます。
このツールの役割: codelensはナビゲーションマップです。コードの場所を特定するために使い、判断や変更を行う前に、実際のソースを
Readで読み込んでください。シグネチャは本体ではなく、アウトラインはセクションそのものではありません。
ツール
読み取り専用のツールが7つあります。すべての応答に含まれる各リストには上限があり、上限に達した場合は明示的なtruncatedフラグで
通知されます。黙って省略されることはありません。
| Tool | What it does |
|---|---|
map | 1回の呼び出しで、ディレクトリツリー全体のファイルごとの構造概要を返します。node_modules、dist、venv、隠しディレクトリなどはスキップします。全体像の把握に使うツールです。 |
overview | 1つのファイルのトップレベル構造を返します。インポート、エクスポート、クラス(メソッド名を含む)、関数が対象で、すべてのline/endLineは1始まりです。 |
functions | ファイル内の名前で指定できるすべての関数を返します。ネストされた関数、メソッド、ゲッター/セッター、クラスフィールドのアロー関数、オブジェクトリテラルのプロパティ、デフォルトエクスポートが対象です。再構築されたシグネチャ、パラメーター型、戻り値の型、async/exportedフラグ、parentスコープも含まれます。(引数として渡される匿名コールバックとPythonのラムダは、移動先となる名前がないため一覧に含まれません。) |
comments | 行範囲、種類(line/block/doc)、TODO/FIXME/FIX/BUG/HACK/NOTE/XXXマーカーの検出結果(大文字のみ。文章との誤検出なし)を含む、すべてのコメントを返します。markersOnly: trueを指定すると、技術的負債の一覧のみを返します。 |
function_body | 装飾子を含む関数1つ分のソースを、名前(Widget.renderのような修飾名、または単独の名前)で指定してそのまま返します。ファイル全体をReadする代わりに、対象を絞って読み込めます。同じ名前が複数ある場合は候補を一覧表示して失敗し、推測はしません。 |
find | 「Xはどこで定義されていますか?」— ディレクトリ内の関数/メソッド/クラス定義を名前で検索します。呼び出し箇所ではなく、定義のみが対象です。 |
info | サーバーの自己紹介情報を返します。バージョン、作業ディレクトリ(パスのサンドボックスルート)、言語、上限が含まれます。 |
overview、functions、commentsでは、1回の呼び出しにつき単一のパス、または最大20パスの配列を指定できます。
言語
| 拡張子 | 言語 | 文法 |
|---|---|---|
.ts、.mts、.cts | TypeScript | tree-sitter-typescript |
.tsx | TypeScript + JSX | tree-sitter-tsx(専用文法。JSXを正しく解析します) |
.js、.jsx、.mjs、.cjs | JavaScript | tree-sitter-javascript |
.py | Python | tree-sitter-python |
パスのサンドボックス
サーバーが読み取るのは、サーバー自身の作業ディレクトリ(起動したディレクトリ)配下のファイルのみです。相対パスはこのディレクトリを基準に解決されます。絶対パスは、このディレクトリ内を指す場合にのみ受け付けられます。このディレクトリの外に出るシンボリックリンクは拒否されます。
infoツールはルートを報告し、拒否時には必ずそのルートを明示します。マッピングしたいプロジェクトからサーバーを起動してください。
誠実性の保証
- 構文エラーのあるファイルが、エラーのない成功として報告されることはありません。
tree-sitter のエラー回復によってエラー付近のコードが削除される可能性があるため、
hasErrors: trueとparseErrorsの行範囲が返されます。 - エラーがある場合、MCP の結果に
isErrorが設定され、{error, path, hint}が返されます。hint には呼び出しを修正する方法が記載されます。 - バッチ呼び出しでは、ファイルごとの結果と、正確な
{requested, succeeded, failed}の概要が返されます。isErrorが設定されるのは、すべてのファイルが失敗した場合のみです。 - すべての上限が明示されます。
truncatedフラグには正確な合計数が記載されます。
インストールと実行
npm install
npm run build # tsc → dist/
npm test # build + 62 tests (51 unit, 11 stdio e2e)
node dist/index.js # stdio MCP server (launch from the project to analyze)
MCP クライアントの設定:
{
"mcpServers": {
"codelens": {
"command": "node",
"args": ["/path/to/codelens-mcp/dist/index.js"],
"cwd": "/path/to/project-to-analyze"
}
}
}
エージェント開発者向け
このリポジトリの AGENTS.md は、エージェントがこれらのツールを適切に使えるようにするための、そのまま貼り付けて使えるガイドです。基本モデル、ツールごとのヒント、注意点(パスのサンドボックス、言語の対応範囲、地図と領土のルール)が記載されています。
ライセンス
AGPL-3.0 — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。