MCP HubMCP Hub
SKILL·E8788A

lsp-explore

blackwell-systems
更新日 21 days ago
6 閲覧
162
19
162
GitHubで表示
開発general

について

lsp-exploreスキルは、ホバードキュメント、実装、呼び出し階層、参照を組み合わせて、任意のコードシンボルに関する包括的な単一コマンド概要を提供します。このスキルは、agent-lsp MCPサーバーを通じて不慣れなコードベースを迅速にナビゲートするために設計されています。開発者は、複数の個別LSPクエリを実行することなく、シンボルの定義、使用法、関連性に関する即時のコンテキストが必要な場合にこれを使用すべきです。

クイックインストール

Claude Code

推奨
メイン
npx skills add blackwell-systems/agent-lsp -a claude-code
プラグインコマンド代替
/plugin add https://github.com/blackwell-systems/agent-lsp
Git クローン代替
git clone https://github.com/blackwell-systems/agent-lsp.git ~/.claude/skills/lsp-explore

このコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします

ドキュメント

Requires the agent-lsp MCP server.

lsp-explore

"Tell me about this symbol" — hover, implementations, call hierarchy, and references in a single pass. Use when navigating unfamiliar code: you get type info, doc comments, who calls it, what implements it, and every reference site without issuing four separate commands.

Read-only — does not modify any files.

Invocation: User provides a symbol name in dot notation (e.g. "codec.Encode", "Buffer.Reset"). Optionally provide workspace_root to scope the search.


Prerequisites

If LSP is not yet initialized, call mcp__lsp__start_lsp with the workspace root first. Auto-inference applies when file paths are provided.


Phase 1 — Locate the symbol

Call mcp__lsp__go_to_symbol with symbol_path set to the user-provided name:

mcp__lsp__go_to_symbol({
  "symbol_path": "Package.SymbolName",   // dot notation; e.g. "codec.Encode"
  "workspace_root": "<root>"             // optional
})
→ returns: file, line, column (1-indexed)

Record the returned file, line, and column. If go_to_symbol returns nothing, report:

Symbol not found: <name> Check the dot-notation path (e.g. "Package.Symbol") and ensure the workspace root covers the file.

Stop immediately — do not proceed to Phase 2.

Then open the file so the language server has it in view:

mcp__lsp__open_document({
  "file_path": "<file from go_to_symbol>"
})

Phase 2 — Hover (always available)

Call mcp__lsp__inspect_symbol at the definition location:

mcp__lsp__inspect_symbol({
  "file_path": "<file from Phase 1>",
  "line": <line from Phase 1>,
  "column": <column from Phase 1>
})

Store the result as hover_text. If the call fails or returns nothing, set hover_text to an empty string. Do not stop.


Phase 3 — Implementations (capability-gated)

Call mcp__lsp__get_server_capabilities to see what the server supports:

mcp__lsp__get_server_capabilities()
→ returns: supported_tools list

If go_to_implementation appears in supported_tools, call it:

mcp__lsp__go_to_implementation({
  "file_path": "<file from Phase 1>",
  "line": <line from Phase 1>,
  "column": <column from Phase 1>
})
→ returns: list of implementation locations (file, line)

Record locations as implementations. If go_to_implementation is not in supported_tools, record "not supported by this server" — do not stop.


Phase 4 — Call hierarchy and references (run in parallel)

Issue both calls in the same message — they are independent:

4a — Incoming callers

Only if find_callers appears in supported_tools:

mcp__lsp__find_callers({
  "file_path": "<file from Phase 1>",
  "line": <line from Phase 1>,
  "column": <column from Phase 1>,
  "direction": "incoming"
})
→ returns: list of caller functions with file and line

If find_callers is not in supported_tools, note "not supported by this server" — do not stop.

4b — All reference sites

mcp__lsp__find_references({
  "file_path": "<file from Phase 1>",
  "line": <line from Phase 1>,
  "column": <column from Phase 1>,
  "include_declaration": false
})
→ returns: list of reference locations (file, line)

Collect all reference locations. Group by file and count distinct files.


Output format — Explore Report

Produce the report in this format:

## Explore Report: <SymbolName>

### Definition
- File: <file>:<line>
- Hover: <hover_text or "unavailable">

### Implementations (<N> found, or "not supported")
[list of file:line entries, or "none found", or "not supported by this server"]

### Callers (incoming call hierarchy)
[list of caller function names with file:line, or "none", or "not supported"]

### References (<N> total across <M> files)
[list of file:line entries grouped by file, or "none found"]

### Summary
- Symbol kind:      <inferred from hover or "unknown">
- Reference count:  <N>
- Files with refs:  <M distinct files>
- Callers:          <K>
- Implementations:  <P or "not supported">

Keep the report concise. The goal is "understand this symbol in one pass."


Example

Goal: understand the exported function `ParseConfig` in pkg/config

Phase 1 — go_to_symbol: symbol_path="config.ParseConfig"
  → pkg/config/parser.go:42:6

open_document: pkg/config/parser.go

Phase 2 — inspect_symbol: line=42, column=6
  → hover_text: "func ParseConfig(path string) (*Config, error) — reads and
    validates a config file from path"

Phase 3 — get_server_capabilities
  → go_to_implementation: in supported_tools
  go_to_implementation: line=42, column=6
  → 0 implementations (ParseConfig is a concrete function, not an interface method)

Phase 4 (parallel):
  find_callers direction=incoming
  → 3 callers: cmd.main (cmd/main.go:14), app.Start (internal/app.go:31),
               loader.Load (internal/loader.go:55)

  find_references include_declaration=false
  → 7 references in 4 files

## Explore Report: ParseConfig

### Definition
- File: pkg/config/parser.go:42
- Hover: func ParseConfig(path string) (*Config, error) — reads and validates a
  config file from path

### Implementations (0 found)
none found

### Callers (incoming call hierarchy)
- cmd.main — cmd/main.go:14
- app.Start — internal/app.go:31
- loader.Load — internal/loader.go:55

### References (7 total across 4 files)
cmd/main.go: line 14
internal/app.go: lines 31, 87
internal/loader.go: line 55
pkg/config/parser_test.go: lines 12, 34, 56, 78

### Summary
- Symbol kind:      function
- Reference count:  7
- Files with refs:  4
- Callers:          3
- Implementations:  0

GitHub リポジトリ

blackwell-systems/agent-lsp
パス: skills/lsp-explore
0
agentskillsai-agentsai-toolingclaudeclaude-codecode-intelligence
FAQ

よくある質問

lsp-explore Skillとは何ですか?

lsp-explore はblackwell-systems が作成した Claude Skillです。Skillは、Claudeが必要に応じて読み込む指示とリソースをまとめ、追加の指示なしで lsp-explore に関連するタスクを実行できるようにします。

lsp-explore をインストールするには?

このページのインストールコマンドを使用してください。lsp-explore をプラグインとして Claude Code に追加するか、リポジトリを skills ディレクトリにクローンし、Claudeを再起動してSkillを読み込みます。

lsp-explore はどのカテゴリに属しますか?

lsp-explore は 開発 カテゴリに属します。

lsp-explore は無料で利用できますか?

はい。lsp-explore は AIMCP に掲載されており、無料でインストールできます。

関連スキル

qmd
開発

qmdは、BM25、ベクトル埋め込み、およびリランキングを組み合わせたハイブリッド検索を用いて、ローカルファイルのインデックス作成と検索を可能にするローカル検索・インデックス作成CLIツールです。コマンドラインでの使用と、Claudeとの統合のためのMCP(Model Context Protocol)モードの両方をサポートしています。このツールは埋め込みにOllamaを使用し、インデックスをローカルに保存するため、ターミナルから直接ドキュメントやコードベースを検索するのに最適です。

スキルを見る
subagent-driven-development
開発

このスキルは、各独立したタスクに対して新規のサブエージェントを起動し、タスク間でコードレビューを実施しながら実装計画を実行します。レビュープロセスを通じて品質基準を維持しつつ、迅速な反復を可能にします。同一セッション内で主に独立したタスクに取り組む際に本スキルをご利用いただくことで、組み込まれた品質チェックを伴う継続的な進捗を確保できます。

スキルを見る
mcporter
開発

mcporterスキルは、開発者がClaudeから直接Model Context Protocol(MCP)サーバーを管理および呼び出せるようにします。このスキルは、利用可能なサーバーの一覧表示、引数を指定したツールの呼び出し、認証およびデーモンのライフサイクル管理を行うコマンドを提供します。開発ワークフローにおいてMCPサーバーの機能を統合およびテストする際に、このスキルをご利用ください。

スキルを見る
adk-deployment-specialist
開発

このスキルは、A2Aプロトコルを使用してVertex AI ADKエージェントをデプロイおよびオーケストレーションし、AgentCardの発見、タスク送信、およびコード実行サンドボックスやメモリバンクなどのサポートツールを管理します。Python、Java、またはGoで、順次、並列、またはループのオーケストレーションパターンを用いたマルチエージェントシステムの構築を可能にします。Google Cloud上でADKエージェントのデプロイやエージェントワークフローのオーケストレーションを求められた際にご利用ください。

スキルを見る