Skip to main content
Glama
lburnscissp

discord-mcp

by lburnscissp

discord_bulk_delete_messages

Destructive

Bulk delete 2–100 recent messages from a Discord channel in one call. Requires Manage Messages; messages older than 14 days must be deleted individually.

Instructions

Delete 2–100 messages from one channel in a single call. Irreversible. Needs Manage Messages.

Discord refuses messages older than 14 days — delete those one at a time with
discord_delete_message. Confirm with the user before calling.

Returns: Confirmation with the count deleted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonNoReason recorded in the server's audit log.
channel_idYes
message_idsYes2–100 message IDs, all younger than 14 days.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is partly covered. The description still adds non-obvious behavior: irreversibility, the Manage Messages permission requirement, and Discord's 14-day refusal rule — genuinely useful context beyond the structured fields, though it doesn't cover audit-log semantics or partial-failure handling.

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?

Four short, front-loaded sentences: action and irreversibility first, then the platform limit and the alternative, then the confirmation guardrail, then the return shape. No sentence is padded.

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-mutation tool with an output schema present, the description covers the action, limits, permission requirement, required user confirmation, fallback tool, and return summary. Nothing an agent needs to call it correctly 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 67% and the uncovered channel_id has no description in either place. The description compensates by reinforcing that all message_ids must live in one channel and be under 14 days old, and that the count is bounded at 2–100 — adding constraint meaning beyond the raw schema.

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 (Delete), resource (messages), and scope (2–100, single channel) in one call. It clearly distinguishes itself from the sibling discord_delete_message by specifying the bulk range, so an agent can route without opening either schema.

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?

Explicitly names the when-not case: messages older than 14 days must be deleted one at a time with discord_delete_message, naming the alternative. It also adds a procedural guardrail ('Confirm with the user before calling'), which is actionable usage guidance rather than vague advice.

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