Skip to main content
Glama

Cooper Email

Show account and key

cooper_whoami
Idempotent

Use this when you need to see which Cooper account this connection is using and whether the API key is limited to one inbox or a permission list. Requires auth. Optional input lifecycle_emails is on or off and sets whether this account receives weekly product notes in its inbox. Omit it to leave the setting unchanged. Returns {account_id, parent_account_id, auth_type, key:{id, name, prefix, inbox_id, permissions, expires_at}|null, workspace:{id, inbox_quota}|null, lifecycle_emails, notices, whats_new, owner_recommended}. owner_recommended is present when the account has no verified owner. It names POST /api/v1/inboxes/{id}/owners and the onboard owner_email field, and it mentions the 50 percent Free send increase for a verified external owner. notices lists limit_warning rows when usage is at 80 percent of inboxes, monthly sends, or custom domains. whats_new lists the newest two or three user-facing changelog highlights. auth_type is api_key or oauth. key is null for an OAuth token, which has full access. permissions null means every permission. workspace is set when this account is a sub-account. Fails with 401 unauthorized, 401 api_key_revoked, or 401 api_key_expired. This tool does not mint or revoke keys. Use POST /api/v1/keys over HTTP so a key secret is not written into the chat transcript.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "cooper_whoami"
  }
}

Input Schema

NameRequiredDescriptionDefault
lifecycle_emailsNoOptional. on delivers the weekly product note. off stops it. Omit to leave the setting unchanged.

Output Schema

NameRequiredDescriptionDefault
keyNo{id, name, prefix, inbox_id, permissions, expires_at} for an API key, or null.
noticesNoUsage notices, such as [{type: limit_warning, resource, used, limit, upgrade_url}] at 80 percent of a plan limit.
auth_typeNoapi_key or oauth.
whats_newNoRecent Cooper changes worth telling the user.
workspaceNo{id, inbox_quota} for a workspace key, or null.
account_idNoCooper account id (acct_…) that owns this object.
lifecycle_emailsNoWhether Cooper lifecycle emails are on for this account.
owner_recommendedNoSuggests adding a human owner email when none is set.
parent_account_idNoParent account id for a workspace sub-account, 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": "Who this credential is.",
      +  "properties": {
      +    "account_id": {
      +      "description": "Cooper account id (acct_…) that owns this object."
      +    },
      +    "auth_type": {
      +      "description": "api_key or oauth."
      +    },
      +    "key": {
      +      "description": "{id, name, prefix, inbox_id, permissions, expires_at} for an API key, or null."
      +    },
      +    "lifecycle_emails": {
      +      "description": "Whether Cooper lifecycle emails are on for this account."
      +    },
      +    "notices": {
      +      "description": "Usage notices, such as [{type: limit_warning, resource, used, limit, upgrade_url}] at 80 percent of a plan limit."
      +    },
      +    "owner_recommended": {
      +      "description": "Suggests adding a human owner email when none is set."
      +    },
      +    "parent_account_id": {
      +      "description": "Parent account id for a workspace sub-account, or null."
      +    },
      +    "whats_new": {
      +      "description": "Recent Cooper changes worth telling the user."
      +    },
      +    "workspace": {
      +      "description": "{id, inbox_quota} for a workspace key, or null."
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / lifecycle_emails
      Added value: +{
      +  "description": "Optional. on delivers the weekly product note. off stops it. Omit to leave the setting unchanged.",
      +  "enum": [
      +    "on",
      +    "off"
      +  ],
      +  "type": "string"
      +}
  3. Added

TDQS

A4.1/5.0
Behavior4/5

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

With annotations present, the description still adds real context: auth is required, three specific 401 failure modes (unauthorized, api_key_revoked, api_key_expired), and the semantic distinctions that key=null means OAuth full access, permissions=null means all permissions, and workspace is only set for sub-accounts. It also explains why readOnlyHint=false is correct by disclosing that lifecycle_emails mutates a setting. It does not cover rate limits or pagination, but this is not a paged resource.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The usage guidance is correctly front-loaded, but the bulk of the text is a long inline enumeration of the return object (account_id, key, workspace, notices, whats_new, owner_recommended) that duplicates an existing output schema. Sentences like the owner_recommended endpoint/50-percent explanation are dense and only marginally relevant to deciding whether to call this tool.

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?

Nothing an agent needs in order to call this correctly is missing: auth requirement, failure modes, parameter default, and key/permission semantics are all covered. It is arguably over-complete on return values that the output schema already declares, which is bloat rather than 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?

Schema coverage is 100% and the single enum parameter is fully documented in the schema, so the baseline is 3. The description's explanation of lifecycle_emails (weekly product notes delivered to the account inbox, omit to leave unchanged) largely restates the schema rather than adding new meaning.

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 first sentence names a specific verb (see) and two specific resources (which Cooper account this connection uses, and whether the API key is scoped to one inbox or a permission list). No sibling tool does identity/key introspection, and the description makes that scope unambiguous, including the secondary effect on lifecycle_emails.

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?

It gives an explicit when-to-use trigger ("Use this when you need to see which Cooper account this connection is using"), a negative boundary ("This tool does not mint or revoke keys"), and an alternative ("Use POST /api/v1/keys over HTTP so a key secret is not written into the chat transcript"). The parameter guidance also states the omit-to-leave-unchanged condition.

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.