Skip to main content
Glama
Commonpost MCP for Thunderbird

Commonpost MCP for Thunderbird

Create Filter

createFilter
Destructive

Create a Thunderbird mail filter rule on an account using conditions and actions, including move, tag, forward, or reply, with sending rules requiring user confirmation.

Instructions

Create a mail filter rule on an account. A rule that forwards or replies, or any new rule in a list already holding a sending rule, is refused by default ("Filter rules that send mail: Always block"); with "Ask me each time" the call returns {status: "pending_user_confirmation", confirmationId} and Thunderbird asks the user, who alone can accept (follow up with listFilters, confirmation: true). Forward takes one plain address; reply takes a Templates message (?messageId=&subject=). Sending rules on outgoing mail, archiving or periodic runs (type 64, 128, 256) are always refused.

Input Schema

NameRequiredDescriptionDefault
nameYesFilter name
typeNoFilter type bitmask (default: 17 = inbox + manual). 1=inbox, 16=manual, 32=post-plugin, 64=post-outgoing
actionsYesArray of actions to perform
enabledNoWhether filter is active (default: true)
accountIdYesAccount ID
conditionsYesArray of filter conditions
insertAtIndexNoPosition to insert (0 = top priority, default: end of list)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, openWorldHint=true, and idempotentHint=false, but the description goes well beyond them: it discloses the server-side policy gate on sending rules, the exact refusal behavior, the pending confirmation return shape with confirmationId, and who can approve (the user alone). It also pins down the value encoding for forward and reply actions, which annotations cannot express.

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 core purpose is front-loaded in the first sentence, and every following clause carries substantive policy or format information rather than filler. It is dense and the parenthetical asides make sentences long, but nothing is genuinely expendable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a seven-parameter mutation tool with nested action/condition objects and no output schema, the description covers the risky parts: refusal policy, confirmation handoff, and action value formats. It leaves the normal success return value unspecified, which an agent might want when chaining to applyFilters or updateFilter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter, including nested actions and conditions. The description adds a little beyond it, notably that forward takes one plain address and that reply takes a Templates message URI in <folder URI>?messageId=<id>&subject=<subject> form, but this duplicates the schema's value documentation rather than introducing new semantics, keeping it at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Create a mail filter rule on an account,' which clearly separates it from updateFilter, deleteFilter, reorderFilters, and applyFilters in the sibling list. The only reason it is not a 5 is that it never names those alternatives explicitly; separation is inferred from the verb rather than stated.

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 concrete conditional guidance: sending rules are refused by default, the 'Ask me each time' preference turns the call into a pending_user_confirmation handoff that must be completed via listFilters with confirmation: true, and certain rule types (64, 128, 256) are always refused. That is real when-to-use and what-happens-next guidance, though it does not say when to prefer createFilter over updateFilter for an existing rule.

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