Skip to main content
Glama

Record Application Consent

record_consent
Destructive

Log a user's explicit approve or reject decision for a job proposal as an append-only audit row, reserving a daily slot for approvals and making rejections final.

Instructions

Record the user's explicit approve/reject decision for this proposal as an append-only audit row (channel = where the user said it, note = their words). The stored decision is attributed to the user; the server cannot verify it came from them. approved is accepted only when the proposal has final_review evidence, the linked application is not already applied, and a daily-cap slot is free, and it reserves that slot. rejected is a posting-scoped decline and is terminal. auto is the agent's own yes in full automation mode: accepted only for approved and only while full automation is on.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
actionYes
channelYes
proposal_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.11.1

TDQS

A4.2/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: append-only audit semantics, the explicit caveat that the server cannot verify user attribution, that 'approved' reserves a daily-cap slot, and that 'rejected' is posting-scoped and terminal. This is exactly the kind of mutation/irreversibility detail the destructiveHint alone does 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.

Conciseness4/5

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

Dense but every clause carries a rule the agent needs (acceptance preconditions, terminality, slot reservation). Front-loaded with the core purpose before the conditional detail. Slightly long for a single paragraph but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent, destructive mutation with no output schema and no annotation detail on preconditions, the description supplies the acceptance rules, attribution caveat, and terminality needed to call it correctly. Minor gap: no mention of failure behavior when the preconditions are unmet.

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%, so the description carries the burden and does: it explains channel ('where the user said it'), note ('their words'), and the semantics and acceptance constraints of each action. proposal_id is left implicit, and the treatment of 'auto' as a channel value rather than an action is slightly ambiguous against the schema enum.

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+resource ('Record the user's explicit approve/reject decision for this proposal as an append-only audit row') and defines the scope clearly. However, it never distinguishes itself from the sibling record_decision, which an agent could easily confuse with this tool.

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?

Gives detailed conditions governing each action ('approved' requires final_review evidence, no prior application, a free daily-cap slot; 'rejected' is terminal; 'auto' only for approved under full automation). It stops short of naming when to prefer this over record_decision or request_decision, so it is context-rich but not alternative-aware.

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

Deploy Server

Other Tools