Exposes TypeScript LSP-like functionality including type inspection, definition lookup, references finding, hover documentation, diagnostics, and type testing capabilities for TypeScript projects.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TypeScript LSP MCPget the type at line 15 column 8 in src/user.ts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ts-lsp-mcp
MCP server exposing TypeScript LSP-like functionality to AI agents.
Gives AI agents the same "what's the type at this position?" powers that IDE users have.
Quick Start
Install into Claude Code
# Install to current project (recommended)
npx ts-lsp-mcp install cc
# Or install globally for all projects
npx ts-lsp-mcp install cc --globalThat's it! The MCP server is now available to Claude Code.
Uninstall
npx ts-lsp-mcp uninstall ccManual Installation
Global npm install
npm install -g ts-lsp-mcp
ts-lsp-mcp install ccManual config
Add to your Claude Code MCP config (.mcp.json in project or ~/.claude/settings.json globally):
{
"mcpServers": {
"ts-lsp-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ts-lsp-mcp", "serve", "--stdio"]
}
}
}HTTP/SSE Mode
For remote clients or debugging:
ts-lsp-mcp --http --port 3000Endpoints:
GET /sse- SSE connectionPOST /message- Send messagesGET /health- Health check
Available Tools
Tool | Description |
| Get the TypeScript type at a specific file:line:col |
| Go to definition |
| Find all references |
| Get hover documentation |
| Get autocomplete suggestions |
| Get type errors and warnings |
| Trace where a type comes from and how it's composed |
| Run type assertions from |
| Type-check inline TypeScript without creating files |
Type Test Assertions
Add type assertions to your code:
// @ts-lsp-mcp expect-type: string
const name = user.name;
// @ts-lsp-mcp expect-type: User
const user = createUser({ name: 'Alice' });
// @ts-lsp-mcp expect-error: 2322
const bad: number = "oops"; // Should have error 2322Run tests:
runTypeTests({ file: "src/types.ts" })
runTypeTests({ pattern: "**/*.type-test.ts" })Example Usage
Get type at position
Supports unified file:line:col format:
{
"tool": "getTypeAtPosition",
"arguments": {
"file": "src/user.ts:10:5"
}
}Or separate parameters:
{
"tool": "getTypeAtPosition",
"arguments": {
"file": "src/user.ts",
"line": 10,
"col": 5
}
}Response:
{
"type": "User",
"expanded": "{ id: number; name: string; email: string }",
"symbol": "user",
"kind": "variable"
}Check for type errors
{
"tool": "getDiagnostics",
"arguments": {
"file": "src/user.ts"
}
}Type-check inline code
{
"tool": "checkInlineCode",
"arguments": {
"code": "const x: number = 'bad';"
}
}Response:
{
"valid": false,
"diagnostics": [{
"line": 1,
"col": 7,
"code": 2322,
"message": "Type 'string' is not assignable to type 'number'."
}]
}Features
Multi-project support: Works with monorepos with multiple tsconfigs
Auto-discovery: Finds tsconfig.json automatically
Smart file resolution: Accepts absolute, relative, or unique filenames
Virtual files: Type-check unsaved code with the
contentparameterEfficient: Long-lived daemon caches TypeScript projects
CLI Options
ts-lsp-mcp [command] [options]
Commands:
serve Start the MCP server (default)
install <target> Install into an AI assistant (cc, claude-code, claude)
uninstall <target> Uninstall from an AI assistant
Serve options:
--stdio Use stdio transport (default)
--http Use HTTP/SSE transport
--port <port> HTTP server port (default: 3000)
--host <host> HTTP server host (default: 127.0.0.1)
--debug Enable debug logging
Install options:
--global Install globally (user scope) instead of project
--name <name> Custom name for the MCP server (default: ts-lsp-mcp)
General:
-V, --version Output version number
-h, --help Display helpLicense
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.