Skip to main content
Glama

update_email_categories

Replace the full set of email categories for a project (upserts by key, removes any key not included). Refused with the referencing suppressions/broadcasts/workflows if a key still in use would be removed.

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": {
      "categories": "<categories>"
    },
    "name": "update_email_categories"
  }
}

Input Schema

NameRequiredDescriptionDefault
categoriesYes
project_idNoTarget project ID
project_slugNoTarget project slug (helpdesk slug)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and does well: it discloses that omitted keys are deleted, that matching keys are updated, and that the operation is refused when a removed key is still in use by suppressions, broadcasts, or workflows. It omits permission/auth requirements and whether the refusal is atomic (all-or-nothing) or per-key.

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?

Two tight sentences with zero filler; the replace-and-delete contract is front-loaded, with the refusal condition as follow-up. Every clause carries operational meaning.

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

Completeness3/5

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

For an unannotated mutation tool with no output schema, the description covers the destructive contract and its guard well but leaves gaps: which project identifier to use, whether a partial-success or atomic refusal occurs, and what the response confirms. Adequate but not complete.

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 coverage is 67% and the description reinforces the key-level semantics (upsert by key, removal of absent keys). However, it gives no guidance on the two project identifiers (project_id vs project_slug) — which are both optional and mutually redundant — leaving the agent to guess which to supply or what happens if both are given.

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 ('Replace the full set'), resource ('email categories'), and scope ('for a project'), plus semantics of the write (upserts by key, removes absent keys). This clearly distinguishes it from the read-side sibling list_email_categories, which an agent can rule out from the verb alone.

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?

Explicitly characterizes this as a full-set replacement with upsert-by-key semantics, which tells the agent it must pass the complete desired set rather than a delta. It also names a precondition for refusal (keys still referenced by suppressions/broadcasts/workflows). It stops short of naming alternatives or saying when not to use it.

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.

Resources