Priority — TypeScript Compiler Intelligence
by semanticreader.dev · remote · no sign-in to list tools · v0.3.0 · published by dev.semanticreader
Stateless TS/JS compiler facts for agents: references, imports, impact. No repo index or OAuth.
12 tools: 1 change things and 11 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads11Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http semantic-reader https://semanticreader.dev/mcp/registryFindings
Matches of fixed checks, with the text they matched.
- Warnopen_snapshot
The server marks "open_snapshot" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "open_snapshot" says "open": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
12 tools
Changes things 1Claude Code: ask
open_snapshotStore supplied source files ephemerally and return an opaque snapshot handle for reuse.1 finding
Why it is in this group
- The name "open_snapshot" says "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "open_snapshot" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "open_snapshot" says "open": a word for a change.
Description, as the server wrote it Store supplied source files ephemerally and return an opaque snapshot handle for reuse.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 11Claude Code: allow
analyze_impactReturn bounded reverse-caller impact for one exact compiler symbol.No findings
Why it is in this group
- The name "analyze_impact" says "analyze": a word for reading.
Description, as the server wrote it Return bounded reverse-caller impact for one exact compiler symbol.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
find_referencesReturn semantic static references to one exact compiler symbol.No findings
Why it is in this group
- The name "find_references" says "find": a word for reading.
Description, as the server wrote it Return semantic static references to one exact compiler symbol.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
find_symbolResolve a symbol name to deterministic ranked compiler symbol candidates; safely reports ambiguity.No findings
Why it is in this group
- The name "find_symbol" says "find": a word for reading.
Description, as the server wrote it Resolve a symbol name to deterministic ranked compiler symbol candidates; safely reports ambiguity.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_capabilitiesReturn Semantic Reader capabilities, limits, billing and discovery facts.No findings
Why it is in this group
- The name "get_capabilities" says "get": a word for reading.
Description, as the server wrote it Return Semantic Reader capabilities, limits, billing and discovery facts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_definitionReturn the compiler-resolved declaration for one supplied-file symbol.No findings
Why it is in this group
- The name "get_definition" says "get": a word for reading.
Description, as the server wrote it Return the compiler-resolved declaration for one supplied-file symbol.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_diagnosticsReturn bounded TypeScript syntactic and semantic diagnostics for supplied files.No findings
Why it is in this group
- The name "get_diagnostics" says "get": a word for reading.
Description, as the server wrote it Return bounded TypeScript syntactic and semantic diagnostics for supplied files.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_importersReturn supplied files that statically import one target file.No findings
Why it is in this group
- The name "get_importers" says "get": a word for reading.
Description, as the server wrote it Return supplied files that statically import one target file.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_importsReturn static imports made by one supplied file.No findings
Why it is in this group
- The name "get_imports" says "get": a word for reading.
Description, as the server wrote it Return static imports made by one supplied file.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_symbol_contextReturn bounded definition/callers/callees context; references or impact request paid depth.No findings
Why it is in this group
- The name "get_symbol_context" says "get": a word for reading.
Description, as the server wrote it Return bounded definition/callers/callees context; references or impact request paid depth.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_typeReturn TypeScript type facts and call/construct signatures for one declaration.No findings
Why it is in this group
- The name "get_type" says "get": a word for reading.
Description, as the server wrote it Return TypeScript type facts and call/construct signatures for one declaration.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
query_codeFree navigation for symbols, callers, callees or function facts.No findings
Why it is in this group
- The name "query_code" says "query": a word for reading.
Description, as the server wrote it Free navigation for symbols, callers, callees or function facts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.3.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http semantic-reader https://semanticreader.dev/mcp/registryRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__semantic-reader__get_capabilities",
"mcp__semantic-reader__find_symbol",
"mcp__semantic-reader__get_definition",
"mcp__semantic-reader__get_type",
"mcp__semantic-reader__get_diagnostics",
"mcp__semantic-reader__get_symbol_context",
"mcp__semantic-reader__query_code",
"mcp__semantic-reader__find_references",
"mcp__semantic-reader__get_imports",
"mcp__semantic-reader__get_importers",
"mcp__semantic-reader__analyze_impact"
],
"ask": [
"mcp__semantic-reader__open_snapshot"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as semantic-reader. Review it before you use it.