Skip to main content
Glama

impact

Read-onlyIdempotent

Find transitive callers of a Python symbol, grouped by file, and list affected tests with pytest node IDs before code changes. Also flag unresolved call sites static analysis cannot rule out.

Instructions

Answer 'what breaks if I change this?': every transitive caller of a symbol up to depth hops, grouped by file, with the tests that reach it listed separately (each with the pytest node_id to pass to check). At most limit callers and limit tests are listed; truncated and omitted_callers / omitted_tests say how many more were found. Also lists unresolved call sites with the same name, which static analysis cannot rule out.

Input Schema

NameRequiredDescriptionDefault
depthNo
limitNo
symbolYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint/idempotent annotations, it discloses substantial behavior: transitive traversal, grouping by file, tests listed separately, limit/truncation semantics with omitted_callers/omitted_tests counts, and unresolved call sites static analysis cannot rule out.

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?

Front-loaded with the motivating question, then dense but informative clauses. The single run-on sentence is slightly long, but nearly every clause carries operational meaning.

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?

No output schema exists, and the description covers the return shape thoroughly: grouped-by-file callers, separate test list with node_ids, truncation fields, and unresolved call site listings. An agent knows what it will get back.

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?

With 0% schema coverage the description must compensate, and it does for all three: 'depth hops', 'at most limit callers and limit tests', and the symbol being queried. It stops short of format guidance for symbol (e.g., qualified name) and valid ranges/defaults.

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?

States a specific question ('what breaks if I change this?'), resource (transitive callers of a symbol), and scope (up to depth hops), plus tests reached. 'Transitive' implicitly separates it from the direct-callers sibling, but it doesn't name 'callers' as the alternative for shallow queries.

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?

The 'what breaks if I change this?' framing gives clear context for when to reach for it, and it points at 'check' via the pytest node_id follow-up. No explicit exclusions or 'use X instead for Y' guidance.

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