Skip to main content
Glama

get_index_progress

Check a background codebase indexing job's status to track file counts, percentage, ETA, and errors, and know when search tools are ready.

Instructions

Returns the current status of a background indexing operation started by
`index_codebase()` (with background=True, which is the default).

Statuses:
  - **idle**              — no indexing job has been run yet
  - **scanning**          — discovering indexable files (fast, ~1 s)
  - **initializing_model**— loading SentenceTransformer model (30–60 s first run)
  - **indexing**          — embedding and storing file chunks
  - **finalizing**        — flushing buffers and rebuilding BM25 index
  - **done**              — indexing complete, search tools are ready
  - **error**             — indexing failed (see `last_error` field)

Returns:
    Markdown-formatted progress report with file counts, percentage, and ETA.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.12.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it enumerates the complete status state machine, includes timing expectations for slow phases, mentions the `last_error` field on failure, and states the return format. It omits safety/read-only framing and polling-frequency guidance, which keeps it below a 5 for a no-annotation tool.

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 front-loaded with the core purpose, then uses a compact status list that directly supports correct interpretation of the tool's output. The status list is long but every entry is informative for an agent polling progress; only minor tightening is possible.

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?

Even though an output schema exists (so return detail is not strictly required), the description adds useful state-machine context and error semantics. For a read-only progress tool with no parameters, this is complete enough that an agent can call it and interpret the result correctly.

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?

The tool takes zero parameters, so there is nothing to explain beyond the absence of arguments. The baseline for 0 params is 4, and no additional param semantics are needed.

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 verb+resource ('Returns the current status of a background indexing operation') and explicitly ties it to `index_codebase()` with background=True. This distinguishes it from siblings like `index_codebase` (starts the job) and `get_index_stats` (likely reports index contents rather than live progress).

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?

It clearly establishes when to use it: after starting a background indexing operation, which it notes is the default behavior of `index_codebase()`. It does not name explicit exclusions or alternatives (e.g., when to use `get_index_stats` instead), but the context is strong enough for correct selection.

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