Skip to main content
Glama
Discord MCP - Discord server management MCP for AI agents

Discord MCP - Discord server management MCP for AI agents

End poll

end_poll
Destructive

Close one of the bot's own polls early to finalize results and permanently stop voting. Preview first, then confirm with the returned token to apply the change.

Instructions

Close one of the bot's own polls early and finalize the results. Voting stops for good, since a poll cannot be reopened. Safe to call directly: the first call changes nothing and returns a preview plus a confirm_token; repeating the call with the token ends the poll. A poll that has already closed is left alone.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "channel": "<channel>",
      "message_id": "<message_id>"
    },
    "name": "end_poll"
  }
}

Input Schema

NameRequiredDescriptionDefault
guildNoGuild (server) name or ID. Omit to use the default guild.
channelYesChannel name or ID.
dry_runNo
message_idYesMessage ID, or the message's link.
confirm_tokenNoThe token from this exact action's preview. Where the app can show a confirmation dialog, calling with it asks the user there, and it happens only if they agree.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.4.2
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / properties / confirm_token
      Added value: +{
      +  "description": "The token from this exact action's preview. Where the app can show a confirmation dialog, calling with it asks the user there, and it happens only if they agree.",
      +  "type": "string"
      +}
    • addedInput schema / properties / dry_run
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / message_id / description
      Added value: +"Message ID, or the message's link."
  2. Changed1 schema field changedv1.3.0
    • removedInput schema / additionalProperties
      Removed value: -false
  3. First observedv1.0.2

TDQS

A4.5/5.0
Behavior4/5

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

Goes beyond the destructiveHint=true annotation by disclosing the consequence ("Voting stops for good, since a poll cannot be reopened") and that a bare call is non-destructive because it returns a preview plus confirm_token. The two-step confirmation contract and the no-op on already-closed polls are behaviors an agent cannot infer from annotations. It stops short of stating who may end a poll (author vs. moderator permissions).

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?

Three sentences, front-loaded with the most decision-relevant facts in order: what it does, the irreversibility, then the safe-call protocol. No restatement of the title and no 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?

For a destructive tool with no output schema this covers what an agent needs: the mutation's permanence, the confirmation dance, and the already-closed edge case. The only gap is permission requirements, which is minor relative to what is disclosed.

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?

With 80% schema coverage the baseline is 3, and the description earns the bump by explaining the confirm_token protocol — the token comes from this exact action's preview and repeating the call with it completes the operation. It also implicitly documents the dry-run path as 'the first call changes nothing,' though it never names the dry_run field, so the agent must map prose onto 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?

Names a specific verb and resource ("Close one of the bot's own polls early and finalize the results") and adds a scope constraint — only the bot's own polls — that separates it from create_poll and get_poll_results. The 'finalize the results' framing makes the outcome unambiguous.

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?

Establishes when to reach for it (closing an open poll before its natural end) and what happens when the poll is not open ("A poll that has already closed is left alone"). It never names the read-side alternative get_poll_results as the route for merely inspecting results, so sibling routing is implied rather than explicit.

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

Deploy Server

Other Tools