Skip to main content
Glama
mariusei

Scantool - File Scanner MCP

by mariusei

Callers

callers

Find actual call sites of a function or method across a directory, ignoring comments and string literals. Shows each call's enclosing function and path:line, with definitions listed first.

Instructions

Actual call sites of a function or method across a directory, never a mention in prose, a comment, a docstring or a string literal; each with its enclosing function and path:line, the definition(s) first. A qualified name (Class.method) narrows the definitions; which definition a site binds to is not resolved, and the answer says so. In your shell: sct callers <name> or sct callers <name> --dir <dir> (if sct is not on PATH, "/app/.venv/bin/python" -m scantool.cli replaces sct).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
refNo
nameYes
directoryNo.
output_formatNotree

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.26.0

TDQS

A4/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the behavioral disclosure burden. It reveals output ordering (definitions first), output components (enclosing function and path:line), filtering behavior, and a key limitation (binding to a specific definition is not resolved). It does not explicitly state read-only behavior, but the overall query nature and lack of contradiction compensate partially.

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 dense but economical: three sentences deliver the definition, scope exclusions, output details, resolution limitation, and runnable command. Every sentence contributes unique value, and the core meaning is front-loaded.

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 no annotations and no output schema, the description does a solid job explaining output structure and limitations. However, it omits semantics for `ref` and `output_format`, both of which are present in the schema and could affect invocation or result rendering. It is adequate for basic use but incomplete for full parameter understanding.

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?

The input schema has no property descriptions, and schema coverage is 0%, so the description must explain the parameters. It does cover `name` and `directory` (via the CLI command), but it says nothing about `ref` or `output_format`. Two of the four parameters remain unexplained, leaving the agent to guess their meaning.

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 opens with a precise action and resource: 'Actual call sites of a function or method across a directory.' It further clarifies what is excluded (prose, comments, docstrings, string literals), making the tool's purpose unambiguous. The qualified-name behavior adds another distinguishing detail.

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 description gives explicit invocation patterns and defines the tool's scope boundaries: actual code call sites only, never textual mentions. It also explains when to use a qualified name to narrow definitions. It stops short of naming alternative sibling tools, but the usage context is clearly established.

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