lsp-local-symbols
About
This skill provides fast file-scoped symbol analysis using LSP, allowing developers to find symbol usages within a file, list defined symbols, and get type information at positions. It's ideal for local-scope analysis without workspace-wide searches when using the agent-lsp MCP server. Key capabilities include document symbol lookup, highlighting, and hover information for focused code exploration.
Quick Install
Claude Code
Recommendednpx skills add blackwell-systems/agent-lsp -a claude-code/plugin add https://github.com/blackwell-systems/agent-lspgit clone https://github.com/blackwell-systems/agent-lsp.git ~/.claude/skills/lsp-local-symbolsCopy and paste this command in Claude Code to install this skill
Documentation
Requires the agent-lsp MCP server.
lsp-local-symbols
File-scoped symbol analysis using the language server index. Faster than workspace-wide search for questions about a single file: what symbols are defined here, where is this symbol used within the file, and what type does it have.
Read-only — does not modify any files.
When to use
- "Where is
xused in this file?" — useget_document_highlights - "What functions and types are defined in this file?" — use
list_symbols - "What type does this symbol have?" — use
inspect_symbol - Reviewing a file before editing — get the full symbol map first
- Local refactor scoping — confirm a symbol is only used in one place before inlining it
Use /lsp-impact instead when you need workspace-wide callers and cross-file
references. Use /lsp-dead-code when auditing exported symbols for zero callers.
When NOT to use
get_document_highlights is file-scoped by design — it only finds usages within
the open file. If a symbol is used across multiple files, this skill will not
find those. Use find_references (via /lsp-impact) for cross-file analysis.
Workflow
Step 1 — Open the file
Open the file so the language server tracks it:
mcp__lsp__open_document
file_path: "/abs/path/to/file.go"
language_id: "go" # go, typescript, python, rust, etc.
Step 2 — List all symbols in the file
Get the full symbol tree for the file:
mcp__lsp__list_symbols
file_path: "/abs/path/to/file.go"
This returns all functions, types, variables, constants, and methods defined in the file — including nested symbols (methods on types, fields in structs).
Use this to:
- Understand the file's structure before editing
- Find the exact position of a named symbol
- See what a file exposes before reading it in full
Reading the output: Each symbol has a range (full body including braces)
and a selectionRange (just the name). Coordinates are 1-based. Use
selectionRange.start.line and selectionRange.start.character as inputs to
get_document_highlights and inspect_symbol.
Step 3 — Find all usages within the file
Call get_document_highlights at the symbol's position:
mcp__lsp__get_document_highlights
file_path: "/abs/path/to/file.go"
line: <selectionRange.start.line from Step 2>
column: <selectionRange.start.character from Step 2>
Returns every occurrence of the symbol within the file, classified as:
read— the symbol is read herewrite— the symbol is assigned/mutated heretext— a text match (fallback when semantic classification isn't available)
Speed note: get_document_highlights is significantly faster than
find_references for file-local queries — it does not scan the entire workspace
index. Use it first; escalate to find_references only if you need cross-file
results.
Step 4 — Get type information (optional)
For any position of interest, get the type signature and docs:
mcp__lsp__inspect_symbol
file_path: "/abs/path/to/file.go"
line: <line>
column: <column>
Returns the hover text: type signature, documentation, and inferred types. Useful for confirming what a symbol is before deciding to rename or inline it.
Output format
Report results in three sections (omit any section with no content):
## Symbols in <filename>
### Functions / Methods
- `FuncName` — line N–M
- `(Type) MethodName` — line N–M
### Types
- `TypeName` (struct/interface/alias) — line N
### Variables / Constants
- `ConstName` = value — line N
---
## Usages of `<symbol>` in <filename>
N occurrences across M lines:
- line 12 [write] — assignment
- line 34 [read] — passed as argument
- line 67 [read] — returned
---
## Type info
`<symbol>`: <type signature from inspect_symbol>
Decision guide
| Question | Tool |
|---|---|
| What's in this file? | list_symbols |
| Where is X used in this file? | get_document_highlights |
| What type is X? | inspect_symbol |
| Is X safe to inline (used once)? | get_document_highlights — count occurrences |
| Is X used outside this file? | Use /lsp-impact instead |
| Is X dead code (no callers anywhere)? | Use /lsp-dead-code instead |
Example
# "Where is the `config` variable used in server.go?"
open_document(file_path="/repo/server.go", language_id="go")
list_symbols(file_path="/repo/server.go")
→ finds `config` at selectionRange line 42, col 2
get_document_highlights(file_path="/repo/server.go", line=42, column=2)
→ returns 7 occurrences: 1 write (line 42), 6 reads
inspect_symbol(file_path="/repo/server.go", line=42, column=2)
→ "config *Config — the parsed server configuration"
GitHub Repository
Related Skills
llamaguard
OtherLlamaGuard is Meta's 7-8B parameter model for moderating LLM inputs and outputs across six safety categories like violence and hate speech. It offers 94-95% accuracy and can be deployed using vLLM, Hugging Face, or Amazon SageMaker. Use this skill to easily integrate content filtering and safety guardrails into your AI applications.
cost-optimization
OtherThis Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.
quantizing-models-bitsandbytes
OtherThis skill quantizes LLMs to 8-bit or 4-bit precision using bitsandbytes, achieving 50-75% memory reduction with minimal accuracy loss. It's ideal for running larger models on limited GPU memory or accelerating inference, supporting formats like INT8, NF4, and FP4. The skill integrates with HuggingFace Transformers and enables QLoRA training and 8-bit optimizers.
dispatching-parallel-agents
OtherThis Claude Skill dispatches multiple agents to investigate and fix 3+ independent problems concurrently. It is designed for scenarios involving unrelated failures that can be resolved without shared state or dependencies. The core capability is parallel problem-solving, assigning one agent per independent problem domain to maximize efficiency.
