Skip to main content
Glama

list_todos

Lists TODO, FIXME, and HACK markers oldest first with file, line, blame author, commit, age, and parsed tickets; filter by path, marker, author, age, or ticket status to prioritize cleanup.

Instructions

List markers oldest first, each with file:line, text, parsed tickets, the date it was added, its age in days, the author and the commit (from git blame, mailmap applied; lines not yet committed say "uncommitted"). Filters: markers (e.g. ["FIXME"]), path (glob such as "src/**/.py" or ".ts"), author (substring of name or email, or the (name) in TODO(name)), older_than ("90d", "12w", "6m", "2y"), has_ticket (true = only ticketed, false = only orphans). limit caps the output (default 50); the reply says how many matched in total.

Input Schema

NameRequiredDescriptionDefault
pathNo
repoNo
limitNo
authorNo
markersNo
has_ticketNo
older_thanNo
include_docstringsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does well: it discloses sort order (oldest first), the git-blame/mailmap provenance and the 'uncommitted' sentinel, the default limit of 50, and that the reply reports total matches. It does not state read-only safety, truncation semantics when limit is hit, or what happens with no repo context — gaps that keep it from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the result shape, then a compact one-line filter catalogue with inline examples — dense but every clause carries information. Minor cost: the filter list is packed into a run-on sentence that is harder to scan than a short bulleted form.

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?

An output schema exists, so return values need not be explained, and the behavioral context is strong. But with 8 parameters, zero schema descriptions and no annotations, the two undocumented parameters (repo, include_docstrings) leave an agent guessing about repository scoping and whether docstring TODOs are included — material omissions for a core listing tool.

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 0% across 8 parameters, so the description must compensate, and it does for six of them: markers (example ["FIXME"]), path (glob examples "src/**/*.py", "*.ts"), author (substring of name/email or the (name) in TODO(name)), older_than ("90d","12w","6m","2y"), has_ticket (true=ticketed, false=orphans), and limit (default 50). The repo and include_docstrings parameters are entirely undocumented, leaving real gaps.

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 verb and resource (list markers/TODOs) plus the ordered result shape: file:line, text, parsed tickets, date added, age, author, blame commit. An agent knows exactly what comes back. It does not name or differentiate itself from the sibling stale_todos, which presumably overlaps on the age filter, so it falls short of a 5.

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

Usage Guidelines3/5

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

Usage is implied through the filter set (e.g. older_than for aging debt, has_ticket for orphans), but there is no explicit when-to-use guidance and no routing to siblings such as stale_todos, debt_summary or todo_history. The agent must infer which tool to pick from the sibling names alone.

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