Skip to main content
Glama

Priority — TypeScript Compiler Intelligence

Find Symbol

find_symbol
Read-onlyIdempotent

Resolve a symbol name to deterministic ranked compiler symbol candidates; safely reports ambiguity.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNo
nameYes
pathNo
filesNo
limitNo
compactNo
snapshotNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nNo
rNo
tNo
vNo
xNo
itemsNo
queryNo
totalNo
schemaNo
returnedNo
snapshotNo
truncatedNo
resolutionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • addedInput schema / oneOf
      Added value: +[
      +  {
      +    "required": [
      +      "files"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "snapshot"
      +    ]
      +  }
      +]
    • addedInput schema / properties / compact
      Added value: +{
      +  "default": true,
      +  "type": "boolean"
      +}
    • removedInput schema / properties / files / description
      Removed value: -"Authorized JavaScript/TypeScript source files for this single request. Required every call — there is no server-side index."
    • removedInput schema / properties / files / items / properties / content / description
      Removed value: -"Full source text for that path. Only files included here are analyzed; the server does not read a repository from disk."
    • removedInput schema / properties / files / items / properties / path / description
      Removed value: -"Workspace-relative JS/TS path for this request (e.g. \"src/app.ts\"). No absolute paths, no \"..\" segments, no backslashes."
    • removedInput schema / properties / kind / description
      Removed value: -"Optional exact compiler syntax kind hint, e.g. \"MethodDeclaration\" or \"FunctionDeclaration\"."
    • removedInput schema / properties / limit / description
      Removed value: -"Maximum ranked candidates to return. Capped at 10 to keep discovery packets bounded."
    • removedInput schema / properties / name / description
      Removed value: -"Symbol name or fragment to find. Ranking is deterministic: exact, case-insensitive exact, qualified suffix, prefix, then substring."
    • removedInput schema / properties / path / description
      Removed value: -"Optional path fragment used as a ranking hint, e.g. \"src/auth\". It narrows preference but never invents a symbol."
    • addedInput schema / properties / snapshot
      Added value: +{
      +  "maxLength": 100,
      +  "minLength": 20,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "files",
      -  "name"
      -]New value: +[
      +  "name"
      +]
    • addedOutput schema / properties / n
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / r
      Added value: +{
      +  "enum": [
      +    "r",
      +    "a",
      +    "n"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / schema / const
      Previous value: -"semantic-reader/find-symbol/0.1"New value: +"semantic-reader/find-symbol/0.2"
    • addedOutput schema / properties / t
      Added value: +{
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / v
      Added value: +{
      +  "const": 1,
      +  "type": "number"
      +}
    • addedOutput schema / properties / x
      Added value: +{
      +  "items": {
      +    "items": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "number"
      +      },
      +      {
      +        "type": "number"
      +      },
      +      {
      +        "type": "string"
      +      }
      +    ],
      +    "maxItems": 7,
      +    "minItems": 7,
      +    "type": "array"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "schema",
      -  "snapshot",
      -  "query",
      -  "resolution",
      -  "items",
      -  "total",
      -  "returned",
      -  "truncated"
      -]
  2. Added

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds value beyond those: 'deterministic ranked' discloses stable result ordering, and 'safely reports ambiguity' discloses that ambiguous input yields a report rather than a failure. No contradiction with annotations — 'resolve' aligns with read-only and deterministic behavior.

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?

A single 14-word sentence carries three distinct pieces of information: the resolution action, deterministic ranked ordering, and safe ambiguity reporting. It is front-loaded with the action and contains zero filler or repetition. Every word earns its place.

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?

Despite a rich annotation set and an output schema (which lighten the return-value and safety burden), the tool is moderately complex: 7 params, a oneOf files/snapshot branching mode, and 11 siblings with overlapping symbol tools. The description is too thin to let an agent correctly choose an input mode or construct a well-formed call. The input contract and sibling-routing gaps are significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 7 parameters, so the description carries the burden of explaining inputs. It only implicitly maps to 'name' via 'a symbol name' and says nothing about kind, path, files, limit, compact, or snapshot. Critically, the oneOf files-or-snapshot input contract — a core decision for callers — is entirely unexplained. The description fails to compensate for the schema's lack of documentation.

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 a specific verb ('Resolve'), a resource ('a symbol name'), and an outcome ('deterministic ranked compiler symbol candidates'). It clearly conveys what the tool does and implies a multi-candidate result rather than a single lookup. However, it does not explicitly contrast with overlapping siblings like get_definition or get_type, so it stops short of full sibling differentiation.

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 guidance on when to use this tool versus the 11 siblings, several of which overlap in symbol resolution (get_definition, get_type, get_symbol_context, query_code). There are no when-to-use conditions, exclusions, or alternative routing. 'Safely reports ambiguity' hints at a niche (ambiguous names don't error), but that is behavioral, not usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources