mcp-server-ts-analysis
Provides tools for TypeScript type resolution and dependency graph analysis, enabling AI agents to query type information, hover info, diagnostics, and dependency relationships in 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., "@mcp-server-ts-analysisshow me the dependencies of src/utils.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.
mcp-server-ts-analysis
MCP server for TypeScript type resolution and dependency graph analysis. Uses ts-morph for type intelligence and madge for dependency graphs. Stdio transport.
Setup
1. Clone and build
git clone https://github.com/akshay-nm/mcp-server-ts-analysis.git
cd mcp-server-ts-analysis
npm install
npm run build2. Add to Claude Code
Global (all projects) — add to ~/.claude.json:
{
"mcpServers": {
"ts-analysis": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp-server-ts-analysis/dist/bin/cli.js"]
}
}
}Per project — add to .mcp.json in the project root:
{
"mcpServers": {
"ts-analysis": {
"type": "stdio",
"command": "node",
"args": ["./path/to/mcp-server-ts-analysis/dist/bin/cli.js"]
}
}
}3. Restart Claude Code
The server will appear in your MCP server list. No startup config needed — all paths (tsconfig, source_root, etc.) are passed per tool call, so one server instance works across all your projects.
Other MCP clients
Any MCP client that supports stdio transport can use this server. Point it at dist/bin/cli.js with Node.js as the command.
Related MCP server: agent-workspace-mcp
Tools
Type analysis
Tool | Description |
| Fully computed type at a source position |
| Quick info similar to VS Code hover (type, docs, JSDoc tags) |
| TypeScript errors and warnings, optionally scoped to a file |
Common parameters:
file— absolute path to the TypeScript fileline— line number (1-based)col— column number (1-based)tsconfig— path to tsconfig.json (optional, uses default compiler options if omitted)
Dependency analysis
Tool | Description |
| Full dependency tree as JSON |
| All files that import a given file |
| All files that a given file imports |
| All circular dependency chains |
| Shortest import chain between two files |
Common parameters:
source_root— source root directory to analyze (required)tsconfig— path to tsconfig.json (optional)exclude— directories to exclude (defaults tonode_modules,dist,.git)exclude_patterns— regex patterns to exclude files (e.g.["\\.d\\.ts$"]to skip declaration files)
dep_graph extras:
entry— entry file to start traversal from (defaults to auto-detected root nodes)max_depth— max traversal depth from entry/root nodes (omit for full graph)
Examples
Resolve the type of a variable at line 10, column 7:
{
"tool": "resolve_type",
"args": {
"file": "/home/user/project/src/server.ts",
"line": 10,
"col": 7,
"tsconfig": "/home/user/project/tsconfig.json"
}
}Get the top-level module boundaries (depth 1) without .d.ts files:
{
"tool": "dep_graph",
"args": {
"source_root": "/home/user/project/src",
"tsconfig": "/home/user/project/tsconfig.json",
"exclude_patterns": ["\\.d\\.ts$"],
"max_depth": 1
}
}Find how auth.ts reaches database.ts through imports:
{
"tool": "import_path",
"args": {
"fileA": "auth.ts",
"fileB": "database.ts",
"source_root": "/home/user/project/src"
}
}Architecture
src/
index.ts — MCP server, tool registration, stdio transport
type-analysis.ts — ts-morph type resolution (cached by tsconfig path)
dep-analysis.ts — madge dependency graph analysis
types.ts — shared interfaces
madge.d.ts — type declarations for madge
bin/
cli.ts — entry pointLicense
MIT
Available Tools
8 toolscircular_depsB
Find all circular dependency chains
| Name | Required | Description | Default |
|---|---|---|---|
| exclude | No | Directories to exclude | |
| tsconfig | No | Path to tsconfig.json | |
| source_root | Yes | Source root directory to analyze | |
| exclude_patterns | No | Regex patterns to exclude files (e.g. "\.d\.ts$" to skip declaration files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states the action ('Find all') without explaining output format, traversal behavior, or whether the operation is read-only. Missing details like what constitutes a 'chain' and how results are returned make this inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the primary action, and contains no filler or redundant information. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should at least hint at what the result looks like or mention edge cases, but it does not. It also omits any context about required configuration (e.g., tsconfig) beyond the schema, leaving the agent under-informed about the tool's overall behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters (source_root, exclude, tsconfig, exclude_patterns) are already described in the schema. The description adds no additional parameter context, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find all circular dependency chains' clearly states a specific verb (find) and resource (circular dependency chains), which distinguishes it from sibling tools like forward_deps and reverse_deps that handle non-circular dependencies. It is unambiguous and oriented toward the tool's unique function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention scenarios where circular dependency analysis is needed, nor does it reference sibling tools or exclusions, leaving the agent to infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dep_graphC
Full dependency tree as JSON
| Name | Required | Description | Default |
|---|---|---|---|
| entry | No | Entry file or directory (defaults to source_root) | |
| exclude | No | Directories to exclude | |
| tsconfig | No | Path to tsconfig.json | |
| max_depth | No | Max traversal depth from entry/root nodes. Omit for full graph. | |
| source_root | Yes | Source root directory to analyze | |
| exclude_patterns | No | Regex patterns to exclude files (e.g. "\.d\.ts$" to skip declaration files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It only reveals the output format ('JSON') and the notion of a full tree, but does not disclose whether the operation is read-only, how it handles cycles, or what the response structure is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single short phrase with no redundant words. It is front-loaded with the key output concept, but the brevity leaves out important context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and no annotations, a one-phrase description is insufficient for reliable invocation. The description does not explain how parameters like 'entry', 'exclude', or 'max_depth' affect the result or what the JSON output looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all 6 parameters, setting the baseline at 3. The tool description adds no additional parameter meaning, relying entirely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Full dependency tree as JSON', clearly identifying the tool's output as the complete dependency graph. The word 'full' helps distinguish it from directional sibling tools like 'forward_deps' and 'reverse_deps', though it lacks an explicit verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no information about when to use this tool versus alternatives such as 'circular_deps' or 'import_path'. It does not state any exclusions, prerequisites, or preferred use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forward_depsC
Find all files that a given file imports
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Module path to find forward dependencies for | |
| exclude | No | Directories to exclude | |
| tsconfig | No | Path to tsconfig.json | |
| source_root | Yes | Source root directory to analyze | |
| exclude_patterns | No | Regex patterns to exclude files (e.g. "\.d\.ts$" to skip declaration files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the single-sentence description does not disclose behavioral details such as whether dependencies are direct or transitive, how tsconfig and exclude patterns influence results, or any side effects. It only states the basic read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single succinct sentence with no wasted words and is front-loaded with the main action. However, it borders on under-specification for a tool with 5 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description fails to specify the return format or whether the results are direct imports or all transitive dependencies. The existence of several sibling tools further highlights the missing contextual guidance needed for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all 5 parameters documented. The tool description itself adds no parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Find' and identifies the resource as 'all files that a given file imports', clearly conveying the forward dependency direction. However, it does not explicitly distinguish this tool from sibling tools like reverse_deps or dep_graph, leaving differentiation to the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use forward_deps versus alternatives such as reverse_deps, dep_graph, or circular_deps. The description lacks any context about prerequisites, recommended scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hover_infoC
Quick info at a source position, similar to VS Code hover
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | Column number (1-based) | |
| file | Yes | Absolute path to the TypeScript file | |
| line | Yes | Line number (1-based) | |
| tsconfig | No | Path to tsconfig.json (auto-detected if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only says 'similar to VS Code hover,' which gives a rough idea but does not mention read-only nature, error behavior for invalid positions, or whether tsconfig auto-detection affects results. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the core function and adds a helpful analogy. Every word earns its place with no repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters, no output schema, and no annotations, so the description needs to explain more. It does not describe what the return value looks like, how errors are reported, or any prerequisites (e.g., valid file path). The VS Code hover analogy helps but is insufficient for complete operational understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a general 'source position' concept that relates to line and column, but it does not add meaning beyond what the schema already provides. No additional parameter-specific details are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates the tool provides quick information at a source position, and the VS Code hover analogy helps convey its purpose. However, it does not explicitly state the verb (e.g., 'get') or the exact kind of info (type, documentation, etc.), so it is clear but not fully specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus siblings like resolve_type or type_diagnostics. The context is implied by the name and analogy, but there are no exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_pathB
Find the shortest import chain between two files
| Name | Required | Description | Default |
|---|---|---|---|
| fileA | Yes | Starting module path | |
| fileB | Yes | Target module path | |
| exclude | No | Directories to exclude | |
| tsconfig | No | Path to tsconfig.json | |
| source_root | Yes | Source root directory to analyze | |
| exclude_patterns | No | Regex patterns to exclude files (e.g. "\.d\.ts$" to skip declaration files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It states the goal but does not explain how the result is returned, how 'shortest' is defined, or what happens when no chain exists. There is no mention of cycles, error handling, or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. It is front-loaded with the core action and resource, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters and no output schema, yet the description is very brief. It does not explain the return format, how parameters like exclude_patterns or tsconfig affect behavior, or the meaning of 'chain' in practical terms. This leaves significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all six parameters, giving 100% coverage, so the baseline is 3. The description adds no additional parameter-specific meaning beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: finding the shortest import chain between two files. It uses a specific verb ('find') and identifies a unique resource ('import chain') that distinguishes it from sibling tools like dep_graph or circular_deps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for tracing connections between two files but does not explicitly state when to use this tool versus alternatives such as dep_graph or forward_deps. No exclusions or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_typeC
Fully computed type at a source position
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | Column number (1-based) | |
| file | Yes | Absolute path to the TypeScript file | |
| line | Yes | Line number (1-based) | |
| tsconfig | No | Path to tsconfig.json (auto-detected if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It only states the output concept and does not mention side effects, error behavior, tsconfig handling, or the read-only nature of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is concise, though it could benefit from a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with 4 well-documented parameters, but the description does not explain the return format or error conditions, and no output schema exists. Given the low complexity, this is a moderate level of completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% parameter coverage with descriptions for file, line, col, and tsconfig. The description adds no additional semantic context beyond what the schema contains, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool computes a fully resolved type at a given source position. It is clear and specific enough to distinguish from siblings like dep_graph or import_path, though it lacks a direct imperative verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like hover_info or type_diagnostics. There is no mention of ideal use cases, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_depsA
Find all files that import a given file
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Module path to find reverse dependencies for | |
| exclude | No | Directories to exclude | |
| tsconfig | No | Path to tsconfig.json | |
| source_root | Yes | Source root directory to analyze | |
| exclude_patterns | No | Regex patterns to exclude files (e.g. "\.d\.ts$" to skip declaration files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only says 'Find all files that import a given file' without stating side effects, safety (read-only), output format, or error behavior. The agent cannot infer whether the tool modifies anything or what happens with missing files, so transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose with no unnecessary words. It is front-loaded and concise, earning a perfect score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description is quite minimal. The schema covers parameter details, but the description does not clarify return values or edge cases (e.g., handling of missing modules). While the core function is clear, the lack of output format guidance and behavioral context leaves some gaps, making it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds no extra meaning about parameters like 'exclude' or 'tsconfig', but since the schema is complete, this is acceptable. The description's simplicity does not detract from parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find all files that import a given file' uses a specific verb ('Find') and resource ('files that import'), clearly distinguishing this from sibling tools like 'forward_deps' which would find files imported by a given file. The purpose is unambiguous and directly tied to the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (finding dependents of a file) but does not explicitly compare to alternatives like 'forward_deps' or mention scenarios where this tool should be preferred. There is no when-not-to-use guidance, making the usage somewhat implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_diagnosticsB
TypeScript errors and warnings, optionally scoped to a single file
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Absolute path to scope diagnostics to a single file | |
| tsconfig | No | Path to tsconfig.json (auto-detected if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It does add the useful detail that diagnostics can be scoped to a single file, implying that omitting the file parameter returns project-wide diagnostics. However, it does not disclose the return format, potential side effects (if any), or whether it uses the tsconfig project explicitly beyond the schema's auto-detection note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using only a 9-word fragment. It is front-loaded with the core content ('TypeScript errors and warnings') and includes the scoping qualifier. While it is not a full sentence, every word earns its place and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, no annotations), the description covers the primary purpose and the optional scoping behavior. However, since there is no output schema, the description should ideally hint at what the diagnostic results look like (e.g., an array of error/warning objects). The omission leaves a gap, but the core function is still understandable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both parameters, describing the 'file' as an absolute path and 'tsconfig' with auto-detection. The description's phrase 'optionally scoped to a single file' aligns with the schema but does not add new semantic meaning. Baseline 3 is appropriate when the schema fully documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as providing TypeScript errors and warnings, which distinguishes it from the sibling tools focused on dependencies and type queries. However, it lacks an explicit verb (e.g., 'retrieves' or 'reports'), so it reads more as a noun phrase than a complete statement of action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the sibling tools. It only mentions optional file scoping, implying a default whole-project behavior, but does not state exclusions, prerequisites, or alternatives. There is no 'when to use' or 'when not to use' context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v1.0.0- First observed
circular_deps - First observed
dep_graph - First observed
forward_deps - First observed
hover_info - First observed
import_path - First observed
resolve_type - First observed
reverse_deps - First observed
type_diagnostics
TDQS
Each tool targets a distinct aspect of TypeScript analysis: diagnostics, dependency graph operations, and source-position queries. Even the dependency-related tools are clearly separated by direction (reverse, forward, cycles, path) and scope.
Tool names are readable and generally snake_case, but follow mixed conventions: some are noun phrases (type_diagnostics, dep_graph, hover_info), some are verb_noun (resolve_type), and dependency tools inconsistently use 'dep_graph' vs '_deps' suffix. This creates minor inconsistency though not chaotic.
With 8 tools, the server is well-scoped for a TypeScript analysis domain. Each tool provides a distinct, non-redundant capability, and the count is in the sweet spot for usability without overwhelming agents.
The tool set covers the core analysis workflows: diagnostics, full dependency graph with query capabilities, type resolution, and hover info. Minor gaps like symbol search or find-references are absent, but the existing surface is sufficient for typical static-analysis tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A simple Typescript MCP server built using the official MCP Typescript SDK and smithery/cli. This…
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automati…
Lean 4 MCP server: compile, prove theorems, and formalize math with Mathlib.
MCP server for understanding Javascript internals from ECMAScript specification.
Related MCP Servers
- AlicenseBqualityDmaintenanceTypeScript-based MCP server designed to enhance code editing experiences by providing features such as hover information, code completion, and diagnostics.31326MIT
- AlicenseAqualityDmaintenanceA TypeScript-aware MCP server that provides coding agents with repository discovery, code intelligence, and web project context for local codebases. It enables deep symbol navigation, diagnostic reporting, and structural analysis of monorepos without requiring full IDE integration.7121MIT
- AlicenseAqualityCmaintenanceAn MCP server that indexes TypeScript/JavaScript codebases into precise call and import graphs using the TypeScript compiler API, allowing Claude or any MCP client to query definitions, callers, callees, and perform impact analysis.7MIT
- FlicenseAqualityBmaintenanceMCP server for repository mapping, dependency analysis, and architecture diagram generation for JavaScript, TypeScript, and Python projects.419-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/akshay-nm/mcp-server-ts-analysis'
If you have feedback or need assistance with the MCP directory API, please join our Discord server