Skip to main content
Glama

File a report

file_report

File a free-form project report for manually found bugs, backlog items, or agent tasks so it enters triage and can be dispatched for fixing.

Instructions

File a free-form report on a project by hand: a bug you found yourself, a backlog item, or work for an agent. Pass title (3-200 chars) and description (up to 10000 chars: what happens, steps, what you expected, how to check it is fixed); severity (critical | high | medium | low) and component are optional hints that triage may refine. The report is stored with status new and goes through the same triage as a user report (classification, diagnosis), so it can then be dispatched with dispatch_fix. Returns { reportId, projectId, title, status, severity, component }. Write; not idempotent (a retry files a second report); at most 30 filed reports per project an hour; viewers cannot file. Use for work no user reported; for issues already in Sentry use import_sentry_issues. Then call triage_issue on the new reportId.

Input Schema

NameRequiredDescriptionDefault
titleYesOne-line title (3-200 characters)
severityNoYour severity hint; triage may refine it
componentNoArea of the app, e.g. "checkout"
projectIdNoProject UUID. Defaults to configured project. (`project_id` is accepted too.)
descriptionYesWhat happens, steps to reproduce, what you expected, and how to check it is fixed

Output Schema

NameRequiredDescriptionDefault
titleYes
statusYesAlways new: triage starts right away
reportIdYesThe new report id; pass it to triage_issue or dispatch_fix
severityYes
componentYes
projectIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.17

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: states the stored status is 'new', that the report enters the same triage pipeline (classification, diagnosis), that retries create duplicates, a concrete rate limit (30/project/hour), and that viewers are blocked. The annotations only say non-readOnly, openWorld, non-idempotent — the description supplies the operational consequences.

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?

Dense but front-loaded: purpose first, then params, then lifecycle, then constraints, then next steps. Every sentence carries signal, though the return-shape listing and next-step routing are packed into a single run-on paragraph that would read better split.

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?

For a write tool with 5 params, an output schema, and non-idempotent semantics, it covers purpose, field guidance, side effects (triage queue), rate limits, permissions, and the downstream call chain. Nothing an agent needs to invoke it correctly is missing.

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 100%, so the baseline is 3; the description adds real meaning by explaining that severity and component are optional hints triage may refine, and by specifying what the description field should contain (what happens, steps, expected, how to verify). The length constraints it cites are redundant with the schema.

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?

States a specific verb+resource ('File a free-form report on a project by hand') and immediately scopes what kinds of items qualify (bug, backlog item, agent work). It also names the sibling it is NOT (import_sentry_issues for Sentry-sourced issues), so an agent can distinguish it without reading either schema.

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

Usage Guidelines5/5

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

Explicit when-to-use ('work no user reported'), explicit alternative for the Sentry case, and an explicit follow-up ('then call triage_issue on the new reportId') plus eventual dispatch_fix. Nothing is left to inference about routing.

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