LabscoMCP early access ↗
mizchiMCP SERVER

TypeScript MCP

Give an agent a language server: go-to-definition, find-references and safe renames across TypeScript, Rust, Go, F#, OCaml and more.

by mizchi ↗Code Intelligence & Repository IndexingCommunity

LABSCO SUMMARY

Type-aware answers about a codebase, in place of the read-a-file-and-hope loop.

The path the docs recommend is overview, then search, then details: get_project_overview to see the shape, search_symbols to find the thing, get_symbol_details to read its type, definition and callers in one call — which is what makes it cheaper than opening files. Renames go through the language server, so they land everywhere the symbol is used rather than everywhere the string appears.

What it is

Lsmcp puts Language Server Protocol capability behind MCP tools. It runs a language server for your project — presets ship for tsgo, typescript, rust-analyzer, gopls, deno, moonbit, fsharp, hls and ocaml — and exposes hover, references, diagnostics, renames and code actions, with a pre-built symbol index on top for fast search.

What you get

  • Semantic navigation in place of grep: lsp_get_definitions with the option of the full body, lsp_find_references, lsp_get_hover, lsp_get_workspace_symbols, lsp_get_document_symbols
  • Refactors the language server agrees with — lsp_rename_symbol across the codebase, lsp_delete_symbol with its references, lsp_get_code_actions for the available quick fixes
  • Errors from the compiler rather than a guess: lsp_get_diagnostics per file, lsp_get_all_diagnostics for the whole project
  • A fast index over the top: get_project_overview for structure and statistics, search_symbols by name or kind, get_symbol_details returning hover, definition and references in one call
  • External library symbols — index_external_libraries over node_modules declaration files, search_external_library_symbols, resolve_symbol, get_typescript_dependencies, parse_imports
  • Edits in place: replace_range, replace_regex, and lsp_format_document through the language server
  • Project memories under .lsmcp/memories/ — write_memory, read_memory, list_memories, delete_memory

Requirements

Node.js 22.0.0 or higher — the index runs on Node's built-in SQLite. No account and no key. Install @mizchi/lsmcp next to a language server: npm add -D @mizchi/lsmcp @typescript/native-preview, then npx @mizchi/lsmcp init -p tsgo and claude mcp add lsmcp npx -- -y @mizchi/lsmcp -p tsgo. Any language server without a preset goes in through --bin. Settings live in .lsmcp/config.json, including autoIndex, indexConcurrency, maxFileSize and memoryLimit.

Setup effort

One command — claude mcp add lsmcp npx -- -y @mizchi/lsmcp -p tsgo