Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.blackwell-systems/agent-lsp

NPM · @BLACKWELL-SYSTEMS/AGENT-LSP · SCANNED AUG 4

Orchestrates language servers into 65 code-intelligence tools across 30 languages, token-optimized.

−8 this week 75 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 6 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency45
Schema Quality & AI Usability83
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9724 tokens (~140/item across 69 items; 65 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 99% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @blackwell-systems/agent-lsp

# add to Claude Code
claude mcp add blackwell-systems-agent-lsp -- npx -y @blackwell-systems/agent-lsp
# add to Codex CLI
codex mcp add blackwell-systems-agent-lsp -- npx -y @blackwell-systems/agent-lsp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "blackwell-systems-agent-lsp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@blackwell-systems/agent-lsp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add blackwell-systems-agent-lsp --command npx --arg -y --arg @blackwell-systems/agent-lsp
# ~/.hermes/config.yaml
mcp_servers:
  blackwell-systems-agent-lsp:
    command: "npx"
    args: ["-y", "@blackwell-systems/agent-lsp"]
// mcp.json
{
  "mcpServers": {
    "blackwell-systems-agent-lsp": {
      "command": "npx",
      "args": [
        "-y",
        "@blackwell-systems/agent-lsp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +44
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −54
    • Malware scan: pass → unverified security
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Package version: 0.16.0 → 0.17.0 functional
  • 27 Jul 26 +36
    • Tool coverage: unverified → 100 functional
    • Schema quality: unverified → 100 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Tool coverage: 99 functional
    • First check of Schema quality: fail functional
  • 26 Jul 26 47

    First indexed and scored.

    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Aug 2026 · Analysed npm/@blackwell-systems/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 6 packages

6 packages in the resolved dependency tree.

MCP tools — 65 exposed · ~9,205 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
activate_skill ~140

Activate phase enforcement for a skill workflow. Once active, tool calls are checked against the skill's phase permissions. Phases advance automatically as you call tools from later phases. Use this at the start of a skill workflow to enable safety guardrails that prevent out-of-order operations (e.g., applying edits before completing blast-radius analysis).

NameTypeReqDescription
modestringEnforcement mode: warn (log violations but allow) or block (return error with recovery guidance). Default: warn
skill_namestringyesName of the skill to activate (e.g. lsp-rename, lsp-refactor, lsp-safe-edit, lsp-verify)

No output schema declared.

No examples provided.

add_workspace_folder ~115

Add a directory to the LSP workspace, enabling cross-repo references, definitions, and diagnostics. Useful when working across a library and its consumers — after adding the consumer repo, find_references on a library function returns call sites in both repos. Requires start_lsp to have been called first. Language servers that support multi-root workspaces (gopls, rust-analyzer, typescript-language-server) will re-index the new folder automatically.

NameTypeReqDescription
pathstringyesAbsolute path to the workspace folder to add/remove

No output schema declared.

No examples provided.

apply_edit ~160

Apply an edit to a file. Two modes: (1) WorkspaceEdit mode: pass workspace_edit with positional changes returned by rename_symbol or format_document; (2) Text-match mode: pass file_path + old_text + new_text to find and replace text. For full function/method body replacements, consider replace_symbol_body which resolves by symbol name instead of text matching. Always call preview_edit first to verify the edit is safe.

NameTypeReqDescription
file_pathstringFile path for text-match mode
new_textstringReplacement text (text-match mode)
old_textstringText to find and replace (text-match mode)
workspace_editobjectWorkspaceEdit object (as returned by rename_symbol or format_document)

No output schema declared.

No examples provided.

blast_radius ~202

Enumerate all exported symbols in the specified files, resolve their references across the workspace, and partition callers into test vs non-test. Returns affected_symbols (name, file, line), test_callers (with enclosing test function names), and non_test_callers. Use before editing a file to understand blast radius. Set include_transitive=true to surface second-order callers (callers of callers). Set scope='all' to include unexported symbols for comprehensive dead code detection.

NameTypeReqDescription
changed_filesarrayyesList of absolute file paths to analyze for exported symbol impact
filterstringFilter results: 'untested' returns only symbols with production callers but zero test callers
include_transitivebooleanIf true, include second-order callers (callers of callers) in the results
scopestringSymbol scope: 'exported' (default) or 'all' (includes unexported symbols for dead code detection)

No output schema declared.

No examples provided.

callers ~174

Find all incoming callers of a function or method. Shortcut for find_callers with direction='incoming'. Use before deleting or refactoring a function to see who depends on it.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
cross_concurrentbooleanIf true\, annotate callers that cross concurrent boundaries (goroutines\, threads\, async tasks). Returns concurrent_callers with the detected pattern.
directionstringDirection: incoming\, outgoing\, or both (default: both)
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

close_document ~77

Close a file in the LSP server. Use this tool when you're done with a file to free up resources and reduce memory usage. It's good practice to close files that are no longer being actively analyzed, especially in long-running sessions or when working with large codebases.

NameTypeReqDescription
file_pathstringyesAbsolute path to the file to close

No output schema declared.

No examples provided.

commit_session ~114

Commit a simulation session. With apply=true, writes changes to disk and notifies LSP servers. With apply=false, returns a unified diff patch. Use after evaluate_session confirms the changes are safe.

NameTypeReqDescription
applybooleanIf true, write changes to disk and notify LSP. If false, return diff only
session_idstringyesSession identifier returned by create_simulation_session
targetstringCommit target: disk (write files) or patch (return unified diff). Default: patch

No output schema declared.

No examples provided.

create_simulation_session ~89

Create a new speculative code session for simulating edits without committing to disk. Returns a session ID. Baseline diagnostics are captured lazily on first edit per file. Use this to explore what-if scenarios before applying changes.

NameTypeReqDescription
languagestringyesLanguage identifier for the session (e.g. go, typescript)
workspace_rootstringyesWorkspace root directory for the simulation session

No output schema declared.

No examples provided.

deactivate_skill ~47

Deactivate phase enforcement for the currently active skill. Tool calls will no longer be checked against phase permissions. Call this when the skill workflow is complete or when you need to exit the workflow early.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

destroy_session ~59

Destroy a simulation session and release all resources. Call this after commit or discard to clean up. Sessions in terminal states (committed, discarded, destroyed) cannot be reused.

NameTypeReqDescription
session_idstringyesSession identifier returned by create_simulation_session

No output schema declared.

No examples provided.

detect_changes ~194

Run git diff to identify changed files, analyze their exported symbols via blast_radius, and return affected symbols with risk classification. Risk levels: 'high' (callers from multiple packages), 'medium' (callers from same package only), 'low' (zero non-test callers). Use before committing to understand the blast radius of uncommitted or recently committed changes.

NameTypeReqDescription
rangestringGit range for 'committed' scope. Examples: 'v0.7.0..HEAD', 'abc123..def456', 'main'. If a single ref is given, compares ref~1..ref. Ignored for unstaged/staged scopes.
scopestringWhich changes to analyze: 'unstaged' (default), 'staged', or 'committed'
workspace_rootstringAbsolute path to the git repository root. Defaults to the LSP workspace root if omitted

No output schema declared.

No examples provided.

detect_lsp_servers ~97

Scan a workspace directory for source languages and check PATH for the corresponding LSP server binaries. Returns detected workspace languages (ranked by prevalence), installed servers with their paths, and a suggested_config array ready to paste into the agent-lsp MCP server args. Use this to set up agent-lsp for a new project or verify your configuration.

NameTypeReqDescription
workspace_dirstringyesDirectory to scan for source languages and LSP server binaries

No output schema declared.

No examples provided.

did_change_watched_files ~112

Notify the language server that files have changed on disk outside the editor (workspace/didChangeWatchedFiles). Use this after writing files directly to disk so the server refreshes its caches. Change types: 1=created, 2=changed, 3=deleted. File URIs must use the file:/// scheme.

NameTypeReqDescription
changesarrayyesArray of file change events: [{uri\, type}] where type is 1=created\, 2=changed\, 3=deleted

No output schema declared.

No examples provided.

discard_session ~51

Discard a simulation session and revert all in-memory changes by restoring baseline content. Use when simulation results show the changes would introduce errors.

NameTypeReqDescription
session_idstringyesSession identifier returned by create_simulation_session

No output schema declared.

No examples provided.

evaluate_session ~118

Evaluate a simulation session by comparing current diagnostics against baselines. Returns errors introduced, errors resolved, net delta, and confidence (high for file scope, eventual for workspace). Use after simulate_edit to assess impact before committing.

NameTypeReqDescription
scopestringEvaluation scope: file (fast, single file) or workspace (full, all files). Default: file
session_idstringyesSession identifier returned by create_simulation_session
timeout_msintegerTimeout in milliseconds for LSP diagnostics collection. Default: 5000

No output schema declared.

No examples provided.

execute_command ~104

Execute a workspace command via LSP. Commands are server-defined identifiers returned by code actions (in the command field of a CodeAction). Use this after suggest_fixes to trigger a server-side operation such as applying a refactoring, generating code, or running a server-specific action. Returns the server-defined result or null.

NameTypeReqDescription
argumentsarrayCommand arguments as array of JSON objects
commandstringyesLSP command identifier (from code action's command field)

No output schema declared.

No examples provided.

explore ~170

Deep exploration of a symbol: combines type info, source, callers, references, and test callers in one call. Use when navigating unfamiliar code and you need the full picture of what a symbol is and how it is used.

NameTypeReqDescription
columninteger1-indexed column (character offset) in the line. Optional when position_pattern is provided.
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
lineinteger1-indexed line number in the file. Optional when position_pattern is provided.
position_patternstringAlternative to line/column: use @@pattern@@ syntax to match text near the target position

No output schema declared.

No examples provided.

explore_symbol ~186

Deep-dive into a symbol: type info, source code, callers (top 10), references (count + top 5 files), and test caller count in one call. Use when you need full context about a symbol before editing. Accepts file_path + line/column or position_pattern.

NameTypeReqDescription
columninteger1-indexed column (character offset) in the line. Optional when position_pattern is provided.
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineinteger1-indexed line number in the file. Optional when position_pattern is provided.
position_patternstringAlternative to line/column: use @@pattern@@ syntax to match text near the target position

No output schema declared.

No examples provided.

export_cache ~87

Export the symbol reference cache as a gzip-compressed artifact for team sharing. The exported file can be committed to the repository (e.g. .agent-lsp/cache.db.gz) so teammates skip cold-start indexing. Requires start_lsp to have been called first.

NameTypeReqDescription
dest_pathstringyesDestination path for the compressed cache artifact (e.g. .agent-lsp/cache.db.gz)

No output schema declared.

No examples provided.

find_callers ~197

Find what calls this function and what it calls. Returns incoming callers, outgoing callees, or both (default). Use before deleting or refactoring a function to understand its role in the call graph. Works on functions and methods only; for types, use find_references instead.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
cross_concurrentbooleanIf true\, annotate callers that cross concurrent boundaries (goroutines\, threads\, async tasks). Returns concurrent_callers with the detected pattern.
directionstringDirection: incoming\, outgoing\, or both (default: both)
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

find_references ~208

Find all usages of a symbol across the codebase. Use before renaming, deleting, or changing any symbol to understand who calls it. Zero references means the symbol may be dead code; use safe_delete_symbol to remove it safely. For blast-radius analysis with test/non-test partitioning, use blast_radius instead.

NameTypeReqDescription
columninteger1-indexed column (character offset) in the line. Optional when position_pattern is provided.
file_pathstringyesAbsolute path to the source file
include_declarationbooleanWhether to include the declaration site in the results
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
lineinteger1-indexed line number in the file. Optional when position_pattern is provided.
position_patternstringAlternative to line/column: use @@pattern@@ syntax to match text near the target position

No output schema declared.

No examples provided.

find_symbol ~151

Search for a symbol by name across the entire workspace. Returns matching symbols with name, kind, file, and location. Use when you know a symbol's name but not its file. Use detail_level: "hover" to also get type signatures and docs for each match.

NameTypeReqDescription
detail_levelstringEnrichment level: 'basic' for names/locations only, 'hover' to include type signatures and docs
limitintegerMaximum number of symbols to enrich with hover info (default 3)
offsetintegerNumber of symbols to skip before enriching (default 0), for pagination
querystringSymbol name or pattern to search for across the workspace

No output schema declared.

No examples provided.

format_document ~119

Get formatting edits for a file via LSP. Returns TextEdit[] for inspection (not applied automatically). Apply via apply_edit. Formats one file at a time; to find which files need formatting, use your shell (e.g. gofmt -l ./...).

NameTypeReqDescription
file_pathstringyesAbsolute path to the file to format
insert_spacesbooleanUse spaces instead of tabs. Default: true
language_idstring
tab_sizeintegerTab size in spaces. Default: 4

No output schema declared.

No examples provided.

format_range ~200

Get formatting edits for a specific range within a document via LSP (textDocument/rangeFormatting). Returns TextEdit[] for the selected lines/characters only. Use this when you want to format a function, block, or selection rather than the entire file. The edits are NOT applied automatically.

NameTypeReqDescription
end_columnintegeryes1-indexed end column of the range to format
end_lineintegeryes1-indexed end line of the range to format
file_pathstringyesAbsolute path to the file to format
insert_spacesbooleanUse spaces instead of tabs. Default: true
language_idstring
start_columnintegeryes1-indexed start column of the range to format
start_lineintegeryes1-indexed start line of the range to format
tab_sizeintegerTab size in spaces. Default: 4

No output schema declared.

No examples provided.

get_completions ~159

Get completion suggestions at a specific location in a file. Use this tool to retrieve code completion options based on the current context, including variable names, function calls, object properties, and more. Helpful for code assistance and auto-completion at a particular location. Use this when determining which functions you have available in a given package, for example when changing libraries.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

get_cross_repo_references ~202

Find all references to a library symbol across one or more consumer repositories. Adds each consumer_root as a workspace folder, waits for indexing, then calls find_references and partitions results by repo. Returns library_references (within the primary repo), consumer_references (map of root → locations), and warnings (roots that could not be indexed). Use before changing a shared library API to find all downstream callers.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) of the symbol in the line
consumer_rootsarrayyesList of absolute paths to consumer repository roots to search for references
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number of the symbol in the file
symbol_filestringyesAbsolute path to the file containing the symbol to search for

No output schema declared.

No examples provided.

get_diagnostics ~125

Get diagnostic messages (errors, warnings) for files. Use this tool to identify problems in code files such as syntax errors, type mismatches, or other issues detected by the language server. When used without a file_path, returns diagnostics for all open files.

NameTypeReqDescription
file_pathstringFile path to get diagnostics for. If omitted, returns diagnostics for all open files
group_bystringSet to 'symbol' to group diagnostics by their owning symbol. Returns symbols with their diagnostics instead of a flat list. Helps understand which function or type is broken.

No output schema declared.

No examples provided.

get_document_highlights ~168

Find all occurrences of the symbol at a position within the same file via LSP (textDocument/documentHighlight). Returns ranges and kinds: 1=Text, 2=Read, 3=Write. File-scoped and instant — does not trigger a workspace-wide reference search. Use this to find all local usages of a variable, parameter, or field without the overhead of find_references.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

get_inlay_hints ~250

Get inlay hints for a range within a document via LSP (textDocument/inlayHint). Inlay hints are inline annotations that IDEs display in source code — typically inferred type names (e.g. `: string`) and parameter name labels (e.g. `count:`). Useful in languages with type inference (TypeScript, Rust, Go) to see what the compiler knows without reading every type annotation. Returns an array of InlayHint objects, each with a position, label, and optional kind (1=Type, 2=Parameter). Returns an empty array if the language server does not support inlay hints.

NameTypeReqDescription
end_columnintegeryes1-indexed end column of the range
end_lineintegeryes1-indexed end line of the range
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
start_columnintegeryes1-indexed start column of the range
start_lineintegeryes1-indexed start line of the range

No output schema declared.

No examples provided.

get_semantic_tokens ~201

Get semantic tokens for a range in a file. Returns each token's type (function, variable, keyword, parameter, type, etc.) and modifiers (readonly, static, deprecated, etc.) with 1-based line/character positions. Use this to understand the syntactic role of code elements — distinct from hover which gives documentation. Only available when the language server supports textDocument/semanticTokens.

NameTypeReqDescription
end_columnintegeryes1-indexed end column of the range
end_lineintegeryes1-indexed end line of the range
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
start_columnintegeryes1-indexed start column of the range
start_lineintegeryes1-indexed start line of the range

No output schema declared.

No examples provided.

get_server_capabilities ~89

Return the language server's capability map and classify every agent-lsp tool as supported or unsupported based on what the server advertised during initialization. Use this to determine which tools will return results before calling them — saves round trips on servers that don't support certain LSP features (e.g. not all servers support type_hierarchy or inlay_hints). Requires start_lsp to have been called first.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_signature_help ~133

Get function signature help at a specific location in a file via LSP. Returns available overloads and highlights the active parameter. Use this when the cursor is inside a function call's argument list to understand what parameters the function expects.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

get_skill_phase ~51

Get the current state of skill phase enforcement: active skill, current phase, allowed and forbidden tools, and tool call history. Use this to understand where you are in a skill workflow and what tools are available.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_symbol_documentation ~175

Fetch authoritative documentation for a named symbol from local toolchain sources (go doc, pydoc, cargo doc) without requiring an LSP hover response. Works on transitive dependencies not indexed by the language server. Returns the full doc text, extracted signature, and source tag. Falls back gracefully when the toolchain command fails or the language is unsupported.

NameTypeReqDescription
file_pathstringOptional file path to establish workspace context for the documentation lookup
formatstringOutput format for the documentation (e.g. 'markdown', 'plain')
language_idstringyesLanguage identifier (e.g. go, python, rust) to select the correct toolchain doc command
symbolstringyesFully qualified symbol name to look up (e.g. 'fmt.Println', 'os.File.Read')

No output schema declared.

No examples provided.

get_symbol_source ~221

Return the source code of the innermost symbol (function, method, class, struct, etc.) whose range contains the given cursor position. Calls textDocument/documentSymbol, walks the symbol tree to find the smallest enclosing symbol, then slices the file at that symbol's range. Returns symbol_name, symbol_kind, start_line (1-based), end_line (1-based), and source text. Use line+character or position_pattern (@@-syntax) to specify the cursor. character defaults to 1.

NameTypeReqDescription
columninteger1-indexed column (character offset) in the line (defaults to 1)
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
lineinteger1-indexed line number of the cursor position
position_patternstringAlternative to line/column: use @@pattern@@ syntax to match text near the target position

No output schema declared.

No examples provided.

get_tests_for_file ~106

Given a source file path, return the test files that exercise it. Static lookup — no test execution. Go: *_test.go in same directory. Python: test_*.py / *_test.py in same dir and tests/ sibling. TypeScript/JS: *.test.ts, *.spec.ts etc. Rust: returns source file itself (tests inline). Does not require start_lsp.

NameTypeReqDescription
file_pathstringyesSource file path to find associated test files for

No output schema declared.

No examples provided.

go_to_declaration ~162

Jump to the declaration of a symbol at a specific location in a file via LSP. Completes the 'go to X' family alongside go_to_definition, go_to_type_definition, and go_to_implementation. Most useful for languages with separate declaration and definition (e.g., C/C++ header files). Returns the file path and position where the symbol is declared.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

go_to_definition ~161

Jump to the definition of a symbol at a specific location in a file via LSP. Returns the file path and position where the symbol is defined. Useful for navigating to type declarations, function implementations, or variable assignments across the codebase.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file
position_patternstringAlternative to line/column: use @@pattern@@ syntax to match text near the target position

No output schema declared.

No examples provided.

go_to_implementation ~138

Find all implementations of an interface or abstract method at a specific location in a file via LSP. Returns the file paths and positions of all concrete implementations. Use this to navigate from an interface declaration or abstract method to the concrete classes that implement it.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

go_to_symbol ~122

Navigate to a symbol definition by dot-notation name (e.g. "LSPClient.GetReferences", "http.Handler") without needing file_path or line/column. Uses workspace symbol search to locate the definition. Useful when you know the symbol name but not its location.

NameTypeReqDescription
languagestringLanguage filter for symbol search. Optional
symbol_pathstringyesDot-notation symbol path (e.g. MyStruct.MyMethod\, http.Handler)
workspace_rootstringWorkspace root directory for symbol search. Optional; uses current workspace

No output schema declared.

No examples provided.

go_to_type_definition ~150

Jump to the definition of the type of a symbol at a specific location in a file via LSP. Unlike go_to_definition (which goes to where the symbol itself is defined), this navigates to the type declaration. Useful for interface types, type aliases, and class definitions when working with instances or variables.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

import_cache ~70

Import a gzip-compressed cache artifact, replacing the current symbol reference cache. Use this to load a team-shared cache exported via export_cache. Validates database integrity after import. Requires start_lsp to have been called first.

NameTypeReqDescription
src_pathstringyesPath to the compressed cache artifact to import

No output schema declared.

No examples provided.

insert_after_symbol ~105

Insert code immediately after a named symbol definition. Resolves the symbol's end position via document symbols. Use for adding new methods after existing ones, appending related functions, etc.

NameTypeReqDescription
codestringyesCode to insert after the symbol definition
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier. Optional; auto-detected
symbol_pathstringyesDot-notation symbol path to insert after

No output schema declared.

No examples provided.

insert_before_symbol ~106

Insert code immediately before a named symbol definition. Resolves the symbol's start position via document symbols. Use for adding imports, comments, decorators, or type definitions before their first consumer.

NameTypeReqDescription
codestringyesCode to insert before the symbol definition
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier. Optional; auto-detected
symbol_pathstringyesDot-notation symbol path to insert before

No output schema declared.

No examples provided.

inspect_symbol ~180

Get type information, documentation, and signature for a symbol at a specific location. Use this to understand what a function does, what type a variable has, or what a module exports before editing it. For finding all usages of the symbol, use find_references instead.

NameTypeReqDescription
columninteger1-indexed column (character offset) in the line. Optional when position_pattern is provided.
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension
lineinteger1-indexed line number in the file. Optional when position_pattern is provided.
position_patternstringAlternative to line/column: use @@pattern@@ syntax to match text near the target position

No output schema declared.

No examples provided.

list_symbols ~141

List all symbols defined in a file (functions, types, methods, variables). Returns a hierarchical tree showing the file's structure. Use to get an overview before editing, or to find the exact name of a symbol for use with replace_symbol_body or find_references. Pass format: "outline" for compact markdown output optimized for LLM consumption.

NameTypeReqDescription
file_pathstringyesAbsolute path to the source file
formatstringOutput format: 'outline' for compact markdown, default returns JSON
language_idstringLanguage identifier (e.g. go, typescript, python). Optional; auto-detected from file extension

No output schema declared.

No examples provided.

list_workspace_folders ~29

List all currently active workspace folders. Use this to see which roots the language server is indexing.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

open_document ~132

Open a file in the LSP server for analysis. Use this tool before performing operations like getting diagnostics, hover information, or completions for a file. The file remains open for continued analysis until explicitly closed. The language_id parameter tells the server which language service to use (e.g., 'typescript', 'javascript', 'haskell'). The LSP server starts automatically on MCP launch.

NameTypeReqDescription
file_pathstringyesAbsolute path to the file to open in the LSP server
language_idstring
textstringOptional file content override. If omitted, reads from disk

No output schema declared.

No examples provided.

prepare_rename ~151

Validate that a rename is possible at the given position before committing to rename_symbol. Returns the range that would be renamed and a placeholder name suggestion, or a message indicating rename is not supported at this position. Use this before rename_symbol to avoid attempting invalid renames. Returns null if the server does not support prepareRename.

NameTypeReqDescription
columnintegeryes1-indexed column (character offset) in the line
file_pathstringyesAbsolute path to the source file
language_idstringLanguage identifier (e.g. go\, typescript\, python). Optional; auto-detected from file extension
lineintegeryes1-indexed line number in the file

No output schema declared.

No examples provided.

preview_edit ~293

Preview the impact of an edit before writing to disk. Shows what errors would be introduced or resolved without touching the file. If net_delta is 0, the edit is safe to apply without further verification. Use before every apply_edit to catch problems early. All line/column positions are 1-indexed. For full function replacements, consider replace_symbol_body instead of apply_edit.

NameTypeReqDescription
end_columnintegeryes1-indexed end column of the range to replace
end_lineintegeryes1-indexed end line of the range to replace
file_pathstringyesAbsolute path to the file to edit within the session
languagestringLanguage identifier for the session (e.g. go, typescript)
new_textstringyesReplacement text for the specified range
scopestringEvaluation scope: file (fast, single file) or workspace (full, all files). Default: file
session_idstringSession identifier returned by create_simulation_session
start_columnintegeryes1-indexed start column of the range to replace
start_lineintegeryes1-indexed start line of the range to replace
timeout_msintegerTimeout in milliseconds for LSP diagnostics collection. Default: 5000
workspace_rootstringWorkspace root directory for the simulation session

No output schema declared.

No examples provided.