Skip to main content
Glama
ishayshalev

Morning (Green Invoice) MCP

by ishayshalev

execute_draft

Destructive

Submit an approved accounting draft action after the user reviews it and confirms in chat; altered, expired, duplicate, or uncertain requests remain blocked.

Instructions

Execute the exact prepared action directly. First show its review and PDF to the user, ask for confirmation in chat, and wait for their explicit reply. If declined, do not call this tool. No custom dialog or typed code. Human consent is an agent instruction, not enforced by this server. Content/target changes, expiry and duplicate/uncertain requests remain blocked.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
payloadHashYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag this as destructive, non-idempotent, and open-world, but the description adds material context they cannot convey: consent is 'an agent instruction, not enforced by this server,' and content/target changes, expiry, and duplicate/uncertain requests 'remain blocked.' It does not explain what the payloadHash protects against, which would have completed the picture.

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?

Front-loads the core action, then the consent workflow, then the blocking caveats. Every sentence carries weight, though the sequence of terse clauses in the final sentences reads slightly compressed.

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 destructive, non-idempotent, non-reversible mutation with no output schema, the description covers the safety path, consent expectations, and blocked conditions thoroughly. The remaining gap is parameter explanation for the two required fields, which the empty schema does nothing to fill.

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

Parameters2/5

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

Schema description coverage is 0% for two required params, so the schema documents neither id nor payloadHash. The description only hints that the action must be 'exact' and that content/target changes are blocked, indirectly implying that payloadHash validates integrity, but it never defines either parameter or the relationship between them.

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 and resource: 'Execute the exact prepared action directly,' which tells the agent this commits a previously prepared draft. It implies a relationship with preview_document_draft ('show its review and PDF') but never names the sibling tool that produces that review, so differentiation is present but indirect.

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 and when-not-to-use: show review and PDF, ask for confirmation in chat, wait for an explicit reply, and 'If declined, do not call this tool.' This is an unusually complete procedural gating instruction.

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