Skip to main content
Glama

Orient on a symbol

orient
Read-onlyIdempotent

Retrieve a symbol's signature, body, callers, callees, implementations, and tests from language-server indexes before broad file reads. Specify profile or path:line:column in mixed workspaces.

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

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. Without it, a path:line:column symbol is answered from its enclosing Cargo workspace, else from its nearest project marker (a warning says when that leaves part of the workspace out).
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

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. Changed1 schema field changedv0.4.2
    • changedInput schema / properties / project / description
      Previous value: -"Workspace-relative project directory, e.g. tools/driver for a nested Cargo package."New value: +"Workspace-relative project directory, e.g. tools/driver for a nested Cargo package. Without it, a path:line:column symbol is answered from its enclosing Cargo workspace, else from its nearest project marker (a warning says when that leaves part of the workspace out)."
  2. First observedv0.2.2

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and closed-world, so safety is covered. The description adds real behavioral context beyond that: the absence of cross-language/FFI edges, the default-walk rationale (test cases usually sit one helper above), and a warning that project resolution can silently omit part of a workspace. It does not describe cost or latency for large max_nodes values, keeping it just short of a 5.

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 compact sentences, front-loaded with what the tool returns, then usage, then the mixed-workspace caveat, then tuning. Every sentence carries information that is not already in the schema or annotations.

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?

With an output schema present, the description needn't explain return shape, and with annotations it needn't justify safety. It still covers language support, workspace ambiguity, graph-walk limits and the FFI blind spot — everything an agent needs to invoke this correctly with eight parameters.

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% and the schema itself documents defaults, ranges and symbol formats in detail, so the baseline is 3. The description contributes only the mixed-workspace routing rule for profile versus path:line:column and the 'increase up/down only when needed' heuristic, which are useful but marginal against a fully documented 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 enumerates exactly what comes back — signature, body, callers, callees, tests, implementations, relevant files — which lets an agent distinguish it from the status/scope siblings at a glance. It lacks a crisp single verb+resource phrase ('source context from language-server indexes' is close) but the enumeration is concrete enough that no ambiguity remains.

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

Usage Guidelines5/5

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

It states the timing explicitly ('Use before broad file reads'), names the supported languages, and gives a conditional fallback for mixed workspaces (specify profile or use path:line:column). It also states a tuning rule ('Increase up/down only when needed') and a hard limitation ('No cross-language/FFI edges are inferred'), which is exactly the when/when-not guidance an agent needs.

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