Skip to main content
Glama

Cooper Email

Create a sub-account

cooper_create_workspace
Idempotent

Use this when the signed-in parent account should give a project or another agent its own API key and a fixed inbox quota. Requires auth. Inputs: name (required; 1–64 characters), inbox_quota (required integer; how many inboxes that sub-account may hold), client_id (optional idempotency key; the same key returns the original workspace and api_key is null). Returns {id, name, inbox_quota, account_id, api_key, api_key_prefix, inboxes_used, created_at}. api_key is returned only once and only sees that sub-account. Inboxes and sends on the sub-account count toward the parent plan limits. A sub-account cannot create another workspace. Plan prices are unchanged.

Input Schema

NameRequiredDescriptionDefault
nameYesName for the sub-account, 1–64 characters
client_idNoOptional idempotency key. Reuse it to get the original workspace back.
inbox_quotaYesMaximum live inboxes this sub-account may hold. Set by the parent.

Output Schema

NameRequiredDescriptionDefault
idNoWorkspace id.
nameNoHuman-readable name.
api_keyNoWorkspace API key, returned only once on create. Never repeat it in full.
account_idNoSub-account id for this workspace.
created_atNoISO-8601 time the object was created.
inbox_quotaNoMost inboxes the workspace may hold.
inboxes_usedNoLive inboxes in the workspace.
api_key_prefixNoFirst characters of the workspace key, for display.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "The new workspace. Its api_key is shown once.",
      +  "properties": {
      +    "account_id": {
      +      "description": "Sub-account id for this workspace."
      +    },
      +    "api_key": {
      +      "description": "Workspace API key, returned only once on create. Never repeat it in full."
      +    },
      +    "api_key_prefix": {
      +      "description": "First characters of the workspace key, for display."
      +    },
      +    "created_at": {
      +      "description": "ISO-8601 time the object was created."
      +    },
      +    "id": {
      +      "description": "Workspace id."
      +    },
      +    "inbox_quota": {
      +      "description": "Most inboxes the workspace may hold."
      +    },
      +    "inboxes_used": {
      +      "description": "Live inboxes in the workspace."
      +    },
      +    "name": {
      +      "description": "Human-readable name."
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare non-read-only, idempotent, non-destructive, closed-world; the description goes well beyond by disclosing that api_key is returned exactly once and is scoped to the sub-account, that the key is null on an idempotent repeat, that sub-account inboxes and sends bill against the parent's plan limits, and that nesting is not allowed. These are precisely the facts an agent cannot infer from the structured fields.

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 use case is front-loaded, then inputs, then return fields and billing caveats — a sensible order with no filler sentences. It loses a point for enumerating the full return object even though an output schema already exists, though the "api_key is returned only once" note inside that list does earn its place.

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 state-changing, quota-affecting creation tool, the description covers the auth requirement, the billing coupling to the parent plan, the null-on-retry api_key behavior, and the nesting restriction. Nothing an agent needs in order to call this correctly or set expectations afterwards appears to be missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for client_id: the same key returns the original workspace and api_key comes back null. Name length and inbox_quota semantics largely duplicate the schema and add little.

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?

The description states a concrete verb and resource — giving a project or another agent its own API key plus a fixed inbox quota — rather than restating the title. That framing separates it cleanly from siblings like cooper_update_workspace (editing an existing workspace) and cooper_create_inbox (adding an inbox inside an existing account).

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?

"Use this when the signed-in parent account should give a project or another agent its own API key" is an explicit trigger condition, and "A sub-account cannot create another workspace" is an explicit exclusion. It stops short of naming a concrete alternative tool for the adjacent case (e.g. adding inboxes under the same account), so it is clear context without full alternative routing.

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.