Ts Language Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Ts Language Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A TypeScript code intelligence server for AI coding agents via MCP (Model Context Protocol).
AI coding agents working with TypeScript treat code as text — reading entire files, grepping for patterns, guessing at types. ts-language-mcp exposes TypeScript's own compiler intelligence through MCP tools:
| Raw File Access | ts-language-mcp |
|---|---|
| Read entire file to find a function | Ask for it by name, no coordinates needed |
| Grep for usage patterns | Get all references with read/write classification and their source lines |
| Guess at types from context | Get exact types with full generic resolution |
| Hope renames don't break things | Preview and execute renames across files |
| Hand-write the fix for a compiler error | Apply the compiler's own quick fix |
Unlike LSP-based alternatives, ts-language-mcp uses the TypeScript compiler API directly — zero config, deeper intelligence (AST search, batch analysis, executable renames, project-wide diagnostics), and no external LSP server required.
symbol: "UserService.getUser" instead of a line and column. An ambiguous name returns the candidates rather than silently picking one, and an out-of-range coordinate is an error rather than a quiet answer about the wrong code.get_code_fixes and organize_imports surface TypeScript's own edits, including the correct import path, instead of leaving an agent to guess one.total, returned and truncated rather than quietly cutting off.# Analyze current directory
npx ts-language-mcp
# Analyze specific project
npx ts-language-mcp /path/to/typescript/project
# Custom server name
npx ts-language-mcp --name my-ts-server /path/to/projectClaude Code:
claude mcp add typescript -- npx ts-language-mcp /path/to/your/projectClaude Desktop, Cline, etc.:
{
"mcpServers": {
"typescript": {
"command": "npx",
"args": ["ts-language-mcp", "/path/to/your/project"]
}
}
}The target project needs a tsconfig.json and TypeScript source files. The server auto-loads compiler options, honours include/exclude, and re-checks changed files on each request (throttled; there is no filesystem watcher).
typescript://project/files - List all indexed project filestypescript://project/config - Current compiler optionstypescript://file/{path} - Read a single file's contentTools marked by name accept symbol in place of line/column.
| Category | Tool | Description |
|---|---|---|
| [Navigation](docs/navigation-tools.md) | get_definition | Jump from usage to declaration (by name, returns all declarations) |
get_type_definition | Jump to a symbol's type rather than the symbol (by name) | |
get_references | Find all usages with read/write classification (by name, paged) | |
get_implementations | Find concrete implementations of interfaces (by name) | |
get_call_hierarchy | Trace function callers / callees (by name) | |
get_type_hierarchy | Navigate inheritance chains (by name) | |
| Type Intelligence | get_hover | Type info and JSDoc (by name) |
get_signature | Function parameter help (by name) | |
| Code Structure | get_symbols | Flat list of symbols in a file (paged) |
get_outline | Hierarchical file structure | |
get_imports | List all imports with details | |
| Semantic Search | find | AST search by name pattern, kind, scope (paged) |
get_workspace_symbols | Fast fuzzy symbol search | |
| Diagnostics | get_diagnostics | Errors/warnings for a file, TypeScript + ESLint |
get_all_diagnostics | Project-wide diagnostics, including tsconfig errors | |
get_completions | Context-aware completions | |
| [Refactoring](docs/refactoring-tools.md) | get_code_fixes | The compiler's own fixes for an error (by name) |
apply_code_fix | Apply a fix and write it to disk (by name) | |
organize_imports | Sort imports and drop unused ones | |
rename_preview | Preview rename impact (by name) | |
rename_symbol | Execute rename across project, written to disk (by name) | |
format_document | Format with built-in formatter, written to disk | |
| Code Quality | calculate_metrics | Cyclomatic complexity and LOC per function/file |
detect_duplication | Structurally duplicated code blocks | |
find_indirection_hotspots | Symbols reached through deep call chains | |
get_module_dependencies | What a file imports and what imports it | |
quality_report | Top offenders across all quality categories | |
| Efficiency | analyze_position | Combined analysis in one call (by name) |
batch_analyze | Analyze multiple positions at once (by name) |
rename_symbol, format_document, apply_code_fix and organize_imports (with apply: true) modify files on disk. Everything else is read-only; rename_preview and organize_imports without apply show the edits without making them.
npm test # Run tests once
npm run test:watch # Run tests in watch mode
npm run build # Build
npm run dev # Watch modeMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.