Skip to main content
Glama
outlook-mcp

outlook-mcp

by ajs117

unsubscribe

Stops bulk sender emails by reading message headers and either executing one-click requests, drafting mail requests, or returning opt-out links; default mode only reports available options.

Instructions

Unsubscribe from the bulk sender of a message (ref or raw id).

Reads the message's List-Unsubscribe headers and:

  • method "one-click": with execute=True, performs the RFC 8058 one-click POST and returns the HTTP status — no browser needed.

  • method "mailto": with execute=True, creates a DRAFT unsubscribe email to the sender's unsubscribe address for you to send (our mail scope can create but not send mail).

  • method "weblink": returns the URL for you to open in a browser; not auto-fetched, since blindly GETting links embedded in email is unsafe.

With execute=False (default) it only reports the available method/target so you can decide. Caveat: unsubscribing confirms your address is live, so do it for legitimate senders — for actual spam, prefer delete/block instead.

Input Schema

NameRequiredDescriptionDefault
executeNo
message_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses the three method branches, that one-click returns HTTP status, that mailto only creates a DRAFT (scope cannot send), that weblinks are deliberately not auto-fetched for safety, and the caveat that unsubscribing confirms the address is live. These are exactly the side effects and risks an agent needs before mutating state.

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?

Front-loaded with the core action, then a scannable bullet list per method, ending with the important caveat. Dense and mostly waste-free, though the repeated 'with execute=True' phrasing in each bullet is slightly redundant against the standalone default sentence.

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?

No output schema and no annotations, yet the description explains what each branch returns (HTTP status, draft, URL, or a method/target report). It doesn't say what happens when a message has no List-Unsubscribe header, the one gap an agent might hit in practice.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate, and it does: 'message_id' is described as a ref or raw id, and 'execute' is fully explained as the gate between report-only and performing the action, far beyond the bare boolean/default in the 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 and resource ('Unsubscribe from the bulk sender of a message') and clarifies the identifier accepts a ref or raw id. It is easily separable from siblings like delete_message, unsubscribe_many, and find_newsletters because it names the exact mechanism (List-Unsubscribe headers).

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 documents that execute=False is a dry-run report and execute=True performs the action, with behavior varying by method. It also gives a real exclusion rule: 'for actual spam, prefer delete/block instead,' routing the agent to sibling tools for the wrong case.

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