Skip to main content
Glama
Anselmoo

io.github.Anselmoo/mcp-ooxml-ledger

by Anselmoo

Delete paragraph

delete_paragraph
Destructive

Delete a paragraph by its ID or index+hash, choosing tracked deletion for review or direct removal, while the ledger records every change. Ensures accuracy by refusing section breaks or unaccepted revisions.

Instructions

Delete one whole paragraph and record it in the session's journal. Address it by para_id — the w14:paraId find_text returns — or by para_index TOGETHER WITH para_hash, because an index alone silently addresses a different paragraph once anything above it moves. mode 'tracked' marks the paragraph mark AND every run with w:del, so a reviewer can reject it back and nothing is actually removed; 'direct' removes it outright and is accounted for by the ledger alone, which the receipt discloses. Refused if the paragraph carries a section break, or holds an unaccepted revision by another author. Seal the session with commit_document.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNotracked
noteNo
partYes
authorYes
para_idNo
para_hashNo
para_indexNo
session_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
opYes
modeYes
noteYes
partYes
afterYes
partsYes
beforeYes
para_idYes
para_indexYes
session_idYes
revision_idsYes
result_digestYes
baseline_digestYes
document_digest_changedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

The description richly discloses behaviors beyond annotations: deletion is journaled, tracked mode marks with w:del and is reversible, direct mode removes outright and is only reflected in the ledger, and certain paragraphs cause refusal. Even with destructiveHint=true, this adds real semantic context about side effects and reversibility.

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?

Dense but efficient: every sentence provides essential operational detail. The main action is front-loaded, followed by addressing, mode semantics, refusal rules, and the follow-up commit step. No filler or repetition.

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?

For a high-risk deletion tool with 8 parameters, the description covers the major failure modes and usage requirements: correct addressing, mode differences, refusal conditions, and the required commit step. An output schema exists for return values, and the description supplies the operational context schema fields cannot.

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 description coverage is 0%, so the description carries the burden. It explains para_id via find_text, the para_index + para_hash pairing and why both are needed, and the mode enum values. However, required parameters like part and session_id are not explained, and note is not addressed, leaving a small gap for an agent.

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?

The description opens with a specific verb and resource — "Delete one whole paragraph and record it in the session's journal" — and immediately distinguishes what the tool does from related operations like insert_paragraph. It also differentiates tracked vs. direct deletion, making the purpose unambiguous.

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?

It explicitly explains when to use tracked vs. direct mode, warns against using para_index alone, specifies refusal conditions (section break, unaccepted revision by another author), and tells the agent to seal with commit_document afterward. This is clear, actionable routing guidance with no ambiguity.

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