Skip to main content
Glama

research_status

Read-onlyIdempotent

Poll surface for a research job.

Caller-scoped: the same SELECT that checks existence also checks
ownership (job_id AND requester_key_hash == caller key). A mismatch
and a missing job therefore produce the SAME 404-shaped error with
identical timing — both paths do one SELECT, no existence oracle.

Requires SEAWEB_LIVE=1 and an authenticated caller. Rate limited
under "research_status" (30/min). Anonymous callers are refused.

Returns the job's status/throttled_reason/budget_ms_used/created_at/
updated_at plus estimated_wait_ms derived from the heartbeat row
(heartbeat.budget_ms_used, frozen when now - heartbeat_at >120s).
When status is "completed", also returns results[] (url/fetched_at/
expires_at/source live rows) and a live meta block, same row shape
as research() and search_web's live rows.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses important behavioral traits: the caller-scoped ownership check, identical 404-shaped error for missing vs. unauthorized jobs, absence of an existence oracle, rate limiting, and the heartbeat staleness rule that freezes estimated_wait_ms after 120s. This is substantial, non-obvious context that annotations alone would not convey.

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 front-loaded with a one-line summary, then organized into caller-scoping/security, requirements/rate limit, and return semantics. Every sentence contributes distinct information, and the density is justified by the behavioral nuance it documents. No redundant or filler phrasing.

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?

The description covers prerequisites, authentication refusals, rate limiting, error-equality behavior, conditional response structure, and the derivation of estimated_wait_ms. Since an output schema exists, the lack of an explicit status enum is not a meaningful gap. The tool is well-specified for correct invocation and response interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameter description for job_id (0% coverage), and the description never directly defines job_id. However, the phrasing 'Poll surface for a research job' and the ownership-check sentence ('job_id AND requester_key_hash') make it inferable that job_id is the identifier of the job to poll. It adds some meaning but does not fully compensate for the absent schema description.

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?

The description opens with 'Poll surface for a research job,' which names a specific verb and resource. It further clarifies what is returned (status fields, results when completed), making the tool's function clear. However, it does not explicitly differentiate itself from sibling tools like research() or agent_job_status, so it stops short of a full 5.

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 gives clear context: the tool polls a research job and requires SEAWEB_LIVE=1 plus an authenticated caller, with anonymous callers refused and a rate limit of 30/min. It does not explicitly state when to choose this over alternative status-checking tools or when not to use it, so it lacks explicit exclusions/routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources