Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Prism LSPNew to Visual Studio Code? Get it now.
Prism LSP

Prism LSP

Malaika Noor

|
6 installs
| (0) | Free
VS Code LSP → MCP bridge — gives AI agents the same code intelligence your IDE has
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Prism

Prism icon

Give your AI agent the same code intelligence your IDE has.

When an agent navigates your codebase, it guesses: pattern-matching over text with grep and heuristics. Your VS Code workspace already runs language servers (TypeScript, rust-analyzer, Pylance, …) that know the actual answer: exact types, full inheritance chains, cross-file references, live diagnostics. Prism bridges those language servers to your agent via MCP so it stops guessing.


Why it matters

Here's a concrete example. Ask an agent: "Find all implementations of IntrinsicException in the NestJS repo."

Approach Results
grep 6 files (only direct extends/import occurrences)
Prism find_implementations 23 implementations, full inheritance chain resolved

Grep found the files that mention the string. Prism asked the TypeScript language server, which traversed the actual type hierarchy. Both used roughly the same tokens.

Watch the benchmark walkthrough


Tools

Tool What it does
find_references Every location that references a symbol, including the declaration site
go_to_definition Declaration location(s) for a symbol
find_implementations Concrete classes or functions implementing an interface or abstract method
get_type Location of the type alias or interface declaration for a symbol
get_diagnostics Errors and warnings for a file (absolute path required)
list_symbols Symbols in the workspace or a single file
get_call_hierarchy Incoming/outgoing call tree up to depth 3

Works with any language server registered in VS Code. Tested with TypeScript and rust-analyzer.


How it works

Prism runs inside the VS Code extension host and plays two roles:

  • LSP client: delegates to language servers via vscode.commands.executeCommand. No custom LSP wire protocol.
  • MCP server: binds an HTTP server to localhost:7878. Agents call tools via JSON-RPC 2.0 over POST /.
  Language Servers (TypeScript, rust-analyzer, Pylance, …)
        ↑ LSP wire protocol
  VS Code LSP Client (built-in)
        ↑ vscode.commands.executeCommand(…)
  Prism Extension  ← this repo
        ↑ HTTP POST { tool, params }
  Agent (MCP client)

Installation

Install the extension from the VS Code marketplace, then reload your window. That's it. Prism starts automatically, and your agent can start using the tools right away.


Configuration

Key Default Description
prism.port 7878 HTTP port. Auto-increments to 7900 if busy; .mcp.json is written with the actual bound port.
prism.lspRetryCount 10 Max retries waiting for the language server before a tool call fails.
prism.lspRetryIntervalMs 1000 Milliseconds between retries.
prism.enabledTools all tools Not yet implemented. All 7 tools are always active. See Known gaps.
prism.agent "Claude Code" MCP client to configure. "Claude Code" writes .mcp.json at the workspace root; "Github Copilot" writes .vscode/mcp.json.

Known gaps

get_type returns a location, not a type string. executeTypeDefinitionProvider gives the location of the type alias or interface, not an inferred type like string | number. A get_hover tool would be the right path for that.

get_diagnostics only works for already-open files. Files never opened in the editor have no diagnostics in VS Code's in-memory collection, even if they contain errors.

enabledTools is not enforced. The config key is declared but not read — all 7 tools are always active.

prism.reindex cannot verify language server readiness. The command flushes dirty buffers but can't poll the LS for completion. Readiness is discovered on the next tool call via the retry loop.

Timeouts. Tool calls time out after 25 s; the HTTP socket timeout is 30 s.

No streaming. All tool calls are synchronous request/response. Diagnostic changes are not pushed; the agent must poll get_diagnostics.


Architecture

See docs/architecture.md for a walkthrough of symbol resolution, LSP readiness handling, the retry loop, and each tool's implementation.


Contributors

  • Malaika Noor, author and maintainer

PRs and issues are welcome.


License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft