Skip to main content
Glama

Cooper Email

Remove a suppressed address

cooper_delete_suppression
DestructiveIdempotent

Use this when an address should receive mail again after it was suppressed for a bounce, a complaint, or a manual add. Requires auth. Deletes that one account-wide row. Inputs: address (required; email). Returns the suppression with deleted true. Fails with 400 invalid_address, 404 suppression_not_found, or 403 permission_denied for an inbox-scoped key. Sending to a still-suppressed address returns 403 recipient_suppressed and nothing is sent.

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": {
      "address": "<address>"
    },
    "name": "cooper_delete_suppression"
  }
}

Input Schema

NameRequiredDescriptionDefault
addressYesEmail address to remove from the account suppression list.

Output Schema

NameRequiredDescriptionDefault
objectNoObject type name, such as list, message, or thread.
reasonNobounce, complaint, or manual.
addressNoSuppressed recipient address.
deletedNoTrue when the object was deleted.
created_atNoISO-8601 time the object was created.
source_message_idNoMessage that caused the suppression, or null.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "The suppression, with deleted true.",
      +  "properties": {
      +    "address": {
      +      "description": "Suppressed recipient address."
      +    },
      +    "created_at": {
      +      "description": "ISO-8601 time the object was created."
      +    },
      +    "deleted": {
      +      "description": "True when the object was deleted."
      +    },
      +    "object": {
      +      "description": "Object type name, such as list, message, or thread."
      +    },
      +    "reason": {
      +      "description": "bounce, complaint, or manual."
      +    },
      +    "source_message_id": {
      +      "description": "Message that caused the suppression, or null."
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations, which only give destructive/idempotent/readOnly flags. The description adds the removal scope (one account-wide row), the auth requirement, the exact success shape, concrete failure codes (400 invalid_address, 404 suppression_not_found, 403 permission_denied), and the downstream consequence that mail to a still-suppressed address is refused with 403 recipient_suppressed. That last sentence is about sending, not deleting, but it supplies useful behavioral context.

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?

It is dense and front-loaded: usage trigger, prerequisites, scope, inputs, return shape, and failure modes arrive in a logical order. The final sentence about sending to a still-suppressed address is tangential to this tool and slightly dilutes focus, but it is short and informative.

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?

The definition is complete for a single-input destructive tool: it covers when to call it, what is removed, what the caller needs, the success response, and every documented error path. An output schema exists, so the return-value sentence is a bonus, not a gap.

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?

This is a single-parameter tool, and the schema already documents it at 100% coverage, so the baseline is 3. The description only adds that the address is an email and is required, which is already in the schema, so no extra meaning is contributed.

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: deleting one address from the account-wide suppression list. It also names the conditions that put an address on that list (bounce, complaint, manual add), so an agent can tell it apart from cooper_list_suppressions and the delete_* siblings without opening a schema.

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?

Opens with an explicit trigger condition: use this when an address should receive mail again. It also states the auth prerequisite. It does not name a sibling alternative (e.g., cooper_list_suppressions for inspection), so routing is slightly inferential, but the when-to-use case is unambiguous.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.