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, showing each caller's enclosing function and path:line. Use it to trace usages, references, and file imports in your codebase.

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. Given a file instead of a name, the files that import it with the import line, from the same statically resolved import graph as the preview's used by. Answers: who calls this function; find usages and references of a function or method; which files import this file. 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

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses output structure (enclosing function and path:line, definitions first), a limitation (definition binding not resolved, and the result says so), and scoping constraints (only actual call sites, not prose). It also ties to a statically resolved import graph, giving deeper context.

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?

The description is dense but not wasteful—every sentence adds a distinct fact (scope, output, limitation, usage, shell alternatives). It's front-loaded with the core purpose and ends with practical invocation details. While slightly long, it is structured informationally and avoids redundancy.

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?

The description covers the main behavior, limitations, and usage for two of four parameters, and gives output hints. However, it leaves `ref` and `output_format` unaddressed, and since there is no output schema, the return format description is only partial. An agent would need to infer or probe to fully understand the tool's interface.

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%, so the description must compensate for all four parameters. It explains `name` (can be a function/method name or a file path) and `directory` via the shell example, but gives no information about `ref` or `output_format` (its purpose, allowed values, or defaults). This is a significant gap.

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 states the tool's role with precision: it finds actual call sites of a function/method across a directory, explicitly excluding prose/comments/docstrings/string literals. It lists the exact questions it answers (who calls this, usages/references, file imports) and differentiates itself from the broader scanning siblings by focusing on call sites.

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 clear scenarios for when to use it ('who calls this function; find usages and references; which files import this file') and includes concrete shell invocations. It does not explicitly state when not to use it or name alternative tools, but the usage context is clear enough for an agent to decide.

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