Skip to main content
Glama
OurFamilyWizard MCP

OurFamilyWizard MCP

by chrischall

ofw_delete_draft

Destructive

Delete an OurFamilyWizard draft message and its local cache copy, with revision checks that refuse deletion if the server version changed unless forced.

Instructions

Delete a draft message from OurFamilyWizard. Also removes the draft from the local cache. Before deleting, the draft is re-read from OFW and the delete is REFUSED if it changed since you last read it (the current server body is returned so nothing is lost) — pass expectedRevision to assert which version you mean, or force:true to delete regardless.

Input Schema

NameRequiredDescriptionDefault
forceNoDefault false. Delete even if the draft changed on OurFamilyWizard since you read it. The discarded server version is echoed back in the response.
messageIdYesDraft message ID to delete
expectedRevisionNoThe `revision` you got from ofw_list_drafts/ofw_get_message. Asserts you are deleting THAT version; if the draft changed on OFW since, the delete is refused and the current server body returned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.17.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv2.8.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, but the description goes well beyond them: it discloses the pre-delete re-read, the refusal-on-change behavior, that the current server body is returned so nothing is lost, and that the local cache is also purged. This is exactly the kind of context an agent needs before calling a destructive tool.

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-loaded with the core action, then the collision-safety semantics. It is a dense single paragraph with em-dash clauses, but nearly every clause carries distinct information; the parenthetical is load-bearing rather than 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 exists, and the description compensates by explaining what is returned on both paths (current server body on refusal, discarded version echoed when forcing). For a 3-param destructive tool with full annotation coverage, nothing material 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% and the schema already documents all three params well. The description still adds framing value by presenting expectedRevision and force as an explicit either/or choice with the trade-off stated, rather than restating field definitions.

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 ('Delete a draft message from OurFamilyWizard') plus the local-cache side effect, which no sibling tool implies. It is trivially distinguishable from ofw_save_draft, ofw_list_drafts, and ofw_delete_event.

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 conditional guidance: pass expectedRevision to assert a version, or force:true to delete regardless. It does not explicitly name sibling alternatives (e.g., why not ofw_save_draft over an existing draft), but the when-to-use decision between the two modes is fully spelled out.

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