Skip to main content
Glama

Cooper Email

List inbox rules

cooper_list_rules
Read-onlyIdempotent

Use this to see the deterministic rules on one inbox, in the order they run. Read-only; requires auth and message_read. Input: inbox_id (required; inbox id, username, or email). Returns {object:"list", data:[inbox_rule]}. Each rule has id, name, enabled, position, conditions, actions, stop_processing, match_count, last_matched_at, last_error, client_id, created_at, and updated_at. An inbox-scoped key for another inbox returns HTTP 404 inbox_not_found.

Input Schema

NameRequiredDescriptionDefault
inbox_idYesInbox id (inb_…), username, or full email address owned by this key

Output Schema

NameRequiredDescriptionDefault
dataNoItems on this page, in the order the tool description gives.
objectNoObject type name, such as list, message, or thread.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Inbox rules in run order.",
      +  "properties": {
      +    "data": {
      +      "description": "Items on this page, in the order the tool description gives.",
      +      "items": {
      +        "properties": {
      +          "actions": {
      +            "description": "What happens to a matching message."
      +          },
      +          "client_id": {
      +            "description": "Caller idempotency key stored with the object, or null."
      +          },
      +          "conditions": {
      +            "description": "What a message must match."
      +          },
      +          "created_at": {
      +            "description": "ISO-8601 time the object was created."
      +          },
      +          "enabled": {
      +            "description": "True when the object is active."
      +          },
      +          "id": {
      +            "description": "Rule id. Pass it as rule_id."
      +          },
      +          "inbox_id": {
      +            "description": "Inbox id (inb_…) this object belongs to. Null when it applies to every inbox."
      +          },
      +          "last_error": {
      +            "description": "Last action error, or null."
      +          },
      +          "last_matched_at": {
      +            "description": "ISO-8601 time of the last match, or null."
      +          },
      +          "match_count": {
      +            "description": "How many messages matched."
      +          },
      +          "name": {
      +            "description": "Human-readable name."
      +          },
      +          "object": {
      +            "description": "Object type name, such as list, message, or thread."
      +          },
      +          "position": {
      +            "description": "Order the rule runs in. Lower runs first."
      +          },
      +          "stop_processing": {
      +            "description": "When true, later rules are skipped after a match."
      +          },
      +          "updated_at": {
      +            "description": "ISO-8601 time the object last changed."
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "object": {
      +      "description": "Object type name, such as list, message, or thread."
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the bar is lower, and the description still adds real context: required auth and message_read scope, and the specific failure mode (HTTP 404 inbox_not_found when an inbox-scoped key targets another inbox). It doesn't cover pagination or rate limits, but for a small-scope list tool that is minor.

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?

Well front-loaded: purpose, then safety/auth, then input, then return, then error case. The one waste is the full enumeration of the thirteen rule fields, which duplicates what the output schema already provides and pads an otherwise tight definition.

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 one-parameter read tool with full schema coverage and an output schema, the description covers everything an agent needs: what it returns, what auth/scope is required, and the one error an agent might hit. Nothing necessary to call it correctly is missing.

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% and the single parameter already documents 'inb_…, username, or full email address'. The description restates the same three accepted forms ('inbox id, username, or email') without adding format or validation detail, so it neither compensates for a gap nor enriches 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 ('see the deterministic rules on one inbox') plus ordering semantics ('in the order they run'). This clearly distinguishes it from cooper_create_rule, cooper_update_rule, cooper_delete_rule, and cooper_test_rule without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies read-only inspection of one inbox's rules, and 'Read-only' plus the auth/scope note signals this is the safe, non-mutating path versus create/update/delete siblings. However, it never names an alternative tool or states an explicit when-not-to-use condition, so routing remains inferential.

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.