Skip to main content
Glama
olgasafonova

productplan-mcp-server

by olgasafonova

bulk_delete_bars

Destructive

Permanently delete up to 100 bars in one batch with per-item verification. Use dry-run to preview names first, and confirm to execute.

Instructions

Permanently delete many bars in one call, verifying each delete.

USE WHEN: "Delete these bars", "Remove all the test bars I just made", "Clean up the parked duplicates" For a single bar, use manage_bar action=delete instead. Requires confirm:true. dry_run:true looks each bar up and returns its name without deleting, so the list can be checked first. Up to 100 bar_ids, each once. Each delete is verified by reading the bar back and expecting 404; a bar that still exists after a successful-looking delete is reported as failed. Deletes run 4 at a time under the client's rate limiter. Returns per-item {index, bar_id, ok, error} and a summary like "Deleted 9 of 10 bars; 1 failed". The result is an error only when no bar was deleted. FAILS WHEN: confirm is not true (and dry_run is not set), bar_ids empty, over 100, malformed, or repeated. WARNING: delete is permanent and cannot be undone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bar_idsYesBar IDs to delete
confirmNoMust be true to delete
dry_runNoTrue to look the bars up and list them without deleting

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv6.0.0

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses rich behavioral details: it verifies each delete by reading the bar back expecting 404, runs deletions 4 at a time under the client's rate limiter, reports per-item results, and returns an error only when no bar was deleted. It also warns that deletion is permanent and cannot be undone, which aligns with and expands on the destructiveHint annotation.

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?

The description is thorough but well-organized with labeled sections (USE WHEN, FAILS WHEN, WARNING) and front-loaded purpose. Every sentence adds value, covering usage, constraints, verification, concurrency, and error reporting. While it is long, the complexity of a destructive bulk operation justifies the detail; it is not padded with fluff.

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 destructive bulk operation with no output schema, the description is exceptionally complete: it explains when to use it, parameters, failure modes, return format (per-item {index, bar_id, ok, error} and summary example), concurrency, rate limiting, and verification behavior. An agent has all the information needed to call it correctly and interpret the result.

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?

The input schema already describes all three parameters, but the description adds critical semantics: it clarifies that confirm is mandatory for actual deletion (even though not marked required in the schema), explains the dry_run behavior in detail (looks up bars and returns names without deleting), and imposes constraints on bar_ids (up to 100, each once). This goes beyond the schema's basic descriptions.

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 clearly states the tool's purpose: 'Permanently delete many bars in one call, verifying each delete.' It specifies the verb (delete), resource (bars), and scope (many bars in one call). It also distinguishes from the single-bar alternative by explicitly naming manage_bar action=delete, so an agent can immediately tell them apart.

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?

The description provides explicit usage guidance with a 'USE WHEN' section listing example user intents and a direct exclusion: 'For a single bar, use manage_bar action=delete instead.' It also explains when confirm and dry_run are appropriate, and describes failure conditions under 'FAILS WHEN.' This leaves no ambiguity about when to select this tool.

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