Skip to main content
Glama
akshay-nm

mcp-server-ts-analysis

by akshay-nm

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    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.

    Naming Consistency3/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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.

  • Average 3.1/5 across 8 of 8 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    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.

    Conciseness4/5

    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.

    Completeness2/5

    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.

    Parameters3/5

    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.

    Purpose4/5

    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.

    Usage Guidelines2/5

    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.

  • Behavior2/5

    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.

    Conciseness4/5

    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.

    Completeness2/5

    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.

    Parameters3/5

    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.

    Purpose4/5

    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.

    Usage Guidelines2/5

    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.

  • Behavior2/5

    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.

    Conciseness5/5

    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.

    Completeness2/5

    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.

    Parameters3/5

    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.

    Purpose4/5

    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.

    Usage Guidelines2/5

    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.

  • Behavior2/5

    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.

    Conciseness4/5

    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.

    Completeness3/5

    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.

    Parameters3/5

    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.

    Purpose4/5

    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.

    Usage Guidelines2/5

    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.

  • Behavior2/5

    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.

    Conciseness5/5

    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.

    Completeness2/5

    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.

    Parameters3/5

    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.

    Purpose5/5

    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.

    Usage Guidelines2/5

    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.

  • Behavior3/5

    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.

    Conciseness4/5

    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.

    Completeness3/5

    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.

    Parameters3/5

    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.

    Purpose4/5

    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.

    Usage Guidelines2/5

    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.

  • Behavior2/5

    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.

    Conciseness5/5

    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.

    Completeness2/5

    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.

    Parameters3/5

    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.

    Purpose5/5

    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.

    Usage Guidelines3/5

    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.

  • Behavior2/5

    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.

    Conciseness5/5

    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.

    Completeness3/5

    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.

    Parameters3/5

    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.

    Purpose5/5

    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.

    Usage Guidelines3/5

    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.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-server-ts-analysis MCP server

Copy to your README.md:

Score Badge

mcp-server-ts-analysis MCP server

Copy to your README.md:

Latest Blog Posts

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