Skip to main content
Glama

Orient on a symbol

orient
Read-onlyIdempotent

Fetch a symbol's signature, body, callers, callees, tests, and implementations from language-server indexes to understand code before broad file reads.

Instructions

Compact source context from language-server indexes: signature, body, callers, callees, tests, implementations and relevant files. Use before broad file reads in Swift, Rust, C/C++, TypeScript/JavaScript, Python and WebAssembly WAT projects. In mixed workspaces specify profile or use path:line:column. No cross-language/FFI edges are inferred. Increase up/down only when needed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
upNoHow many levels of callers to walk (default 2: test cases usually sit one helper above the code they exercise).
downNoHow many levels of callees to walk (default 1).
symbolYesA function, method, type or property: "updateLocation", "Engine.updateLocation", or an exact position "Sources/Engine.swift:204:10" (1-based line:column, on the name).
profileNoSource-language profile; required for bare names in mixed workspaces.
projectNoWorkspace-relative project directory, e.g. tools/driver for a nested Cargo package.
max_nodesNoMaximum graph nodes per direction and reference contexts; lower it for compact answers.
include_bodyNoInclude the symbol's source body.
max_body_linesNoTruncate the body after this many lines.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNo
rootNo
statsYes
testsYes
symbolYes
calleesYes
callersYes
profileNo
warningsNo
freshnessYes
truncatedYes
live_filesYesFiles that can affect or be affected by the symbol within the walked depth.
referencesNoFor non-callables or servers without hierarchy: references grouped by file.
test_run_hintNo
type_hierarchyNo
implementationsYes
reference_contextsNo
project_source_filesYes
external_callees_omittedYesSDK / package callees dropped from `callees`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.2

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish safety (readOnlyHint, idempotentHint, openWorldHint=false), so the bar is lower, and the description still adds real behavioral context: the bounded graph size ("Compact"), the no-cross-language/FFI limitation, and the implicit cost signal behind the "increase only when needed" advice. It does not say how ambiguity or unresolved symbols are surfaced.

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?

Four sentences, front-loaded with what the tool returns before how to call it. Every clause carries information: return contents, usage trigger, language scope, profiling caveat, limitation, and tuning rule. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description still covers what matters for correct invocation: language coverage, mixed-workspace profiling, graph-scope caveats, and depth-tuning guidance. Nothing an agent needs in order to call this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter guidance the schema does not state in one place: the profile/path:line:column fallback for mixed workspaces and a rationale for keeping up/down low. It is silent on max_nodes, include_body, max_body_lines, and project, which the schema already carries.

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?

States a specific verb (orient) on a specific resource (a symbol) and enumerates exactly what context is returned: signature, body, callers, callees, tests, implementations, relevant files. It also names the source of truth (language-server indexes), which is enough to distinguish it from the lone sibling status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit usage context ("Use before broad file reads"), the supported languages, the mixed-workspace routing rule (specify profile or use path:line:column), and a tuning rule ("Increase up/down only when needed"). It does not name the sibling status or state when-not to call it, so it falls just short of the top band.

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

Deploy Server

Other Tools