Skip to main content
Every tool has a class — READ, WRITE, or COST_BEARING — that determines what scope it needs. Every class is registered in every deployment; what a caller may actually do is decided by their own role in the active organization, which Logto intersects with the token’s requested scopes. Two different things get called “idempotent” here, and they apply to disjoint sets of tools — don’t read one marker as the other:
  • (idempotency_key) — the tool accepts an optional idempotency_key argument; retrying the same call with the same key returns the original result instead of repeating the effect. This is a best-effort, in-process safeguard against an agent retrying a call within one conversation — not a distributed guarantee (see Idempotency). Exactly five tools are in this set: create_account, create_contact, create_deal, log_activity, cx_start_run.
  • (idempotent) — the tool is naturally idempotent: repeating it converges on the same state rather than stacking up new records, which is exactly what the MCP idempotentHint annotation advertises to your client. These tools do not accept an idempotency_key, and passing one anyway is silently dropped (the argument models ignore unknown fields) — so a retry genuinely re-runs the write and re-fires its side effects: stage history, notifications, follow-up workflows. If a retry must not double-fire those, guard it on your side.
Tools marked (destructive) perform an irreversible hard delete — everything else that “removes” a record does a reversible soft-delete/archive instead.

The organization argument

Every tool takes an optional organization (a name or an id) that redirects that one call to another organization, leaving the connection where it is. It’s what lets a single question reach across organizations without a switch first. The value is checked against your live Logto memberships on every call, so it can only ever point at an organization you already belong to. One you aren’t in is refused, not silently ignored.

Organizations

Accounts

Contacts

Deals

Activities

Customer Intelligence — runs

Customer Intelligence — gates

A “gate” is a human-in-the-loop checkpoint a run pauses at until answered.

Customer Intelligence — results & deliverables

A “result” is one target company within a run; a “deliverable” is a generated artifact about it (a research report, an outreach email draft, a stakeholder brief, an ROI model, etc.).

Customer Intelligence — regeneration

These all call out to paid providers.

Customer Intelligence — exports & config

Jobs

Every Customer Intelligence “spend redaction” mentioned above (and the superadmin-only tools) is based on the caller’s email domain matching the platform operator’s domain — it isn’t a scope, and no credential can grant it, however it was obtained. See Superadmin-gated tools.