Skip to main content
Glama
compcode-ai

compcode-mcp

Official
by compcode-ai

Approve or unlock a statement

approve_statement
DestructiveIdempotent

Approve a rep's statement to lock it for a period, or revert it to draft to unlock and resume recalculations.

Instructions

Approve a rep's statement for a period (status='approved'), or revert it to draft (status='draft') to unlock. ⚠️ Approval LOCKS the statement: recalculations skip this rep+period until reverted to draft. The body is exactly {period, status} — there is no 'approve: true' shorthand.

Input Schema

NameRequiredDescriptionDefault
repIdYesRep whose statement to approve/unlock
periodYesStatement period, e.g. '2026-06'
statusYes'approved' locks; 'draft' unlocks

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, and the description adds substantive context beyond them: approval LOCKS the statement and causes recalculations to skip that rep+period until reverted. That downstream side effect is exactly the kind of behavioral disclosure an agent needs and is not captured by annotations; only the reversibility/response shape is left implicit.

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?

Two tight sentences with the primary action and the lock warning front-loaded. The warning glyph calls attention to the destructive consequence without wasting words.

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?

No output schema exists, and the description covers the action, both modes, and the lock side effect; annotations carry the safety profile. It stops short of describing what the response returns or what happens to already-locked statements on repeat calls, which would fully close the loop for a state-changing tool.

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 coverage is 100% and each parameter (including the status enum) is documented there, so the baseline is 3. The 'no approve: true shorthand' note adds useful API-convention clarity, but the stated body '{period, status}' omits repId, which is the required first parameter — slightly inconsistent with the actual payload.

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 and resource ('Approve a rep's statement for a period') and immediately distinguishes the two modes (status='approved' vs status='draft' to unlock). An agent can tell exactly what this tool does and which operation it maps to without inspecting the schema.

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 clear selection guidance between the two modes and their meaning ('approved' locks, 'draft' unlocks). It does not name sibling alternatives or note when this should not be used (e.g. before recalculation), but the when-to-use context is explicit enough to act on.

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