Skip to main content
Glama

Chase the Client on rejected files

request_replacement
Idempotent

Flags rejected files on a Document Request and moves it back to awaiting the Client so replacement files can be sent again and automatic reminders resume.

Instructions

Call this when a Document Request has rejected files and the Professional wants the Client to send them again. It flags every rejected file, moves the request back to awaiting the Client, and returns it to the automatic reminder cadence, which is what reaches the Client. Nothing is emailed by this call and there is no way to email the Client immediately, not even from the dashboard; the optional message is kept in the audit trail rather than sent. Do not use it on a request with no rejected file; get_request shows which files were rejected.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageNoA note from the Professional, recorded in the audit trail of the request. Not sent to the Client.
request_idYesThe Document Request whose rejected files must be sent again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the state transitions, that nothing is emailed here, that no immediate-email path exists even from the dashboard, and that the message is audit-only. These are non-obvious behavioral facts an agent would otherwise assume incorrectly.

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?

Front-loaded with the trigger, then constraints and the negative capability note, then the exclusion. Every sentence carries a distinct, useful fact; no filler.

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?

No output schema, but the description explains the resulting request state and that there is no return-value surprise. For a two-parameter mutation with full schema coverage and clear annotations, nothing needed to call it correctly is missing.

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?

Schema description coverage is 100% and the schema already states the message is audit-trail-only, so the description largely reinforces existing field docs. Baseline 3 is appropriate; no syntax or format detail is added beyond 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 action and resource: it flags rejected files, moves the request back to awaiting the Client, and restores the reminder cadence. An agent can distinguish it from siblings because it names get_request as the read counterpart and describes a distinct mutation.

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 trigger (a request with rejected files where the Professional wants a resend) plus an explicit exclusion ('Do not use it on a request with no rejected file') and a named alternative (get_request shows which files were rejected). Nothing is left to inference.

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