Sign in
Docs
0%

Accounts and access

Account settings tools for assistants (MCP)

The 29 tools an assistant can call for Account settings over MCP: what each one does, the scopes it needs, its arguments and an example call.

Who is calling and the account they act for: the caller a token stands for, what the account's plan lets it use, its dashboard layouts and monitors board, the Ask Io widget's branding, and the audit log of who changed what. Start here to check that a new key works, to find the account id that most other calls take, or to review recent changes to the account. An assistant calls these tools over MCP; the same operations over HTTP are in the Account settings API. Tools for assistants lists every product, and MCP shows how to connect an assistant.

Profile and preferences

accounts_get_me

Who am I. Who is calling: the person (or API key) the gateway verified, their own account, the team accounts they belong to, and for a key the scopes it carries. Use it first to learn which account_id to pass to the other tools. Your remaining model budget is llm_get_budget; the spaces of an account are decisions_list_spaces.

Scopes: mcp:read, account:read · reads only

No arguments.

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

accounts_get_entitlements

Get entitlements. Entitlements: the account's plan, the features it may use, sorted, and the extensions it may install (none yet; the field is there for the extension marketplace). Every plan's features are data in the service's configuration. InOrbit's own accounts and the platform's admin have every feature whatever the plan. A member of the account, a key or token of the account (account:read), or the platform's admin for any account; anyone else is NOT_FOUND.

Scopes: mcp:read, account:read · reads only

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
org_idstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_get_entitlements",
    "arguments": {}
  }
}

accounts_get_preferences

My account preferences. The signed-in person's account preferences: the account they made their default, the one they used last, and the account the console opens on (open_account_id) with why (default, last, only_team, suggested, recent_team or personal).

Scopes: mcp:read · reads only

No arguments.

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

accounts_get_prompts

My one-time prompts. The signed-in person's one-time in-app prompts (today app_welcome_video): open, later (with when it asks again), done or never, and whether the app may offer it now.

Scopes: mcp:read · reads only

No arguments.

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

accounts_set_default_account

Set my default account. Make an account the signed-in person belongs to (their own or one of their teams) their default, the one every new sign-in opens on. An empty account_id clears it, back to the last used account. Only for the caller themselves; any other account is not found.

Scopes: mcp:write · changes something · safe to repeat

ArgumentTypeWhat it is
account_idstringAn account the person belongs to (their own or a team's); "" clears it.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_set_default_account",
    "arguments": {
      "account_id": "01JD8Z3QK4W5X6Y7Z8A9B0C1D2"
    }
  }
}

accounts_set_prompt

Answer a one-time prompt. Record the signed-in person's choice on a one-time prompt: later (ask again in 7 days; the third later closes it), never (don't remind me again) or done. never and done are final.

Scopes: mcp:write · changes something · safe to repeat

ArgumentTypeWhat it is
actionstring"later", "never" or "done".
keystringA known prompt key.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_set_prompt",
    "arguments": {
      "action": "later"
    }
  }
}

Appearance and themes

accounts_list_layouts

List dashboard layouts. The dashboard layouts the caller saved on an account, and the account's defaults: per page (overview, agent, local.overview), the boxes top to bottom with their width in columns of 12 (0 is the box's own) and whether each is hidden. org_id is the account (accounts_get_me names yours).

Scopes: mcp:read, account:read · reads only

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
org_idstringA team's id, or the person's own account id; empty is their own.
page_sizeintegerA person keeps at most 64 layouts on an account and an account 64 defaults, so one page holds them all: the fields are the list contract's , and next_page_token is always empty.
page_tokenstringThe next_page_token of the page before.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_list_layouts",
    "arguments": {
      "page_size": 20
    }
  }
}

accounts_get_layout

Get a dashboard layout. The layout a page shows the caller: their own, else the account's default, else the page's own (origin default, no widgets). Also the default on its own and whether the caller may change it.

Scopes: mcp:read, account:read · reads only

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
org_idstring
pagestring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_get_layout",
    "arguments": {
      "page": "home"
    }
  }
}

accounts_get_widget_branding

Ask Io widget branding. The account's Ask Io widget: its widget_id, the branding stored (name, tagline, avatar_url, logo_url, colours), its revision, whether its plan lets custom branding show (custom_branding_allowed, plan, required_plan) and the config the public widget answers now (its title is always AI Agent). An empty org_id is the caller's own account; only the account's owner or an admin, or a key of the account with account:read.

Scopes: mcp:read, account:read · reads only

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
org_idstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_get_widget_branding",
    "arguments": {}
  }
}

accounts_delete_theme

Delete a colour theme. Delete one of your colour themes. If it was your current theme, your appearance goes back to the theme's base preset. Returns your appearance.

Scopes: mcp:write · changes something · may overwrite or remove · safe to repeat

ArgumentTypeWhat it is
idstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_delete_theme",
    "arguments": {
      "id": "01JD8Z3QK4W5X6Y7Z8A9B0C1D2"
    }
  }
}

accounts_get_appearance

My appearance. Your colour mode (system, light or dark) and colour theme: a preset (default, amber, violet, indigo, green or mocha) or custom:<theme id> for a theme you made, and when it last changed. Defaults to system and default.

Scopes: mcp:read · reads only

No arguments.

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

accounts_get_notification_sounds

My notification sounds. The signed-in person's notification sounds: the sound for each kind of notification (critical, high, low, approval, resolved, message, tick) as a library id, tone:<tone_id> or silent; their own tones as ringtone specs; whether critical pages break through Do Not Disturb; the repeat rule and escalation steps; and the revision to save with.

Scopes: mcp:read · reads only

No arguments.

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

accounts_list_themes

My colour themes. The colour themes you made, oldest first: id, name, base preset, and the colour of each token for light and dark (hex or oklch values).

Scopes: mcp:read · reads only

No arguments.

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

accounts_save_theme

Save a colour theme. Make a colour theme (leave id empty) or replace one of yours (pass its id). Needs a name (1 to 60 characters), a base preset, and light and dark maps of token to colour; only the 25 known tokens (background, foreground, card, primary, border, sidebar and so on) and only #rgb, #rrggbb, #rrggbbaa or oklch(L C H) colours are accepted. At most 50 themes per person.

Scopes: mcp:write · changes something

ArgumentTypeWhat it is
basestring
darkobject
idstringEmpty makes a new theme; an id replaces that theme of the caller's.
lightobject
namestring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_save_theme",
    "arguments": {
      "id": "01JD8Z3QK4W5X6Y7Z8A9B0C1D2",
      "name": "Payments API"
    }
  }
}

accounts_set_appearance

Set my appearance. Set your colour mode (system, light or dark) and colour theme (a preset id, or custom:<theme id> for one of your own themes). Your own only; a theme that is not yours is not found. Every surface you sign in on shows it.

Scopes: mcp:write · changes something · safe to repeat

ArgumentTypeWhat it is
modestring
themestring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_set_appearance",
    "arguments": {
      "mode": "system"
    }
  }
}

accounts_set_layout

Arrange a dashboard. Save how a page's boxes are arranged: widgets in order, each {widget, span 0-12, hidden}. scope person is the caller's own; account is the team's default (owner or admin). Pass base_version from accounts_get_layout (0 when there was none); a newer save is a conflict, read again and save on that. Widget ids are the page's own; unknown ones are skipped by the page.

Scopes: mcp:write · changes something · safe to repeat

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
base_versionstringThe version the layout was made from; 0 when there was none.
org_idstring
pagestring
scopestring"person" (the default) or "account".
widgetslist of object
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_set_layout",
    "arguments": {
      "base_version": "3"
    }
  }
}

accounts_set_notification_sounds

Set my notification sounds. Save the signed-in person's notification sounds: every field, with the revision read (0 when never saved); a stale revision is refused, read again. Specs are checked like the editor's: at most 20 own tones, 32 notes each, under 30 seconds; critical is never silent. Only for the caller themselves; a key is refused.

Scopes: mcp:write · changes something · safe to repeat

ArgumentTypeWhat it is
revisionstringThe revision the caller read; 0 when they never saved.
soundsobjectThe whole record; revision and every updated_at in it are ignored.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_set_notification_sounds",
    "arguments": {
      "revision": "3"
    }
  }
}

accounts_set_widget_branding

Set Ask Io widget branding. Change the account's Ask Io widget branding: name (40), tagline (160), avatar_url and logo_url (https), colors.accent, colors.accent_foreground and colors.surface (#rrggbb); the title stays AI Agent. A field left out stays; an empty string clears it back to the default. Pass base_revision, the revision accounts_get_widget_branding answered; a newer save is ABORTED, read again and save on that. Only the account's owner or an admin, signed in. Custom values need the Team plan or above: below it the answer is PERMISSION_DENIED with reason PLAN_REQUIRED naming required_plan.

Scopes: mcp:write · changes something · safe to repeat

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
avatar_urlstringhttps only, at most 2048 characters.
base_revisionstringThe revision GetWidgetBranding answered; a newer save since is ABORTED.
colorsobject
logo_urlstring
namestringAt most 40 characters.
org_idstring
taglinestringAt most 160 characters.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_set_widget_branding",
    "arguments": {
      "avatar_url": "https://example.com/",
      "base_revision": "3",
      "logo_url": "https://example.com/",
      "name": "Payments API"
    }
  }
}

Monitor board

accounts_get_monitor_board

Get the monitors board. How an account's monitors page is organised: its own categories (id, name, colour) on top of the six built in, their order, which category a monitor was moved to (over the category the monitor or the agent's checks.toml declares, which stays as it is), the order inside each, and the caller's own view (pins, collapsed categories, sort, list or cards). Monitors themselves are connections_list_monitors.

Scopes: mcp:read, account:read · reads only

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
org_idstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_get_monitor_board",
    "arguments": {}
  }
}

accounts_move_monitors

Move monitors to a category. Put up to 500 monitors (monitor_ids from connections_list_monitors) in a category, at its end or at position (1 is first); an empty category_id puts them back in their own category. The monitor and the agent's checks.toml keep their category; the board's placement wins on the monitors page. The owner or an admin.

Scopes: mcp:write · changes something · safe to repeat

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
category_idstringEmpty: back to their own category.
monitor_idslist of stringAt most 500.
org_idstring
positionintegerWhere in the category: 1 is first; 0 or past the end is the end.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_move_monitors",
    "arguments": {
      "monitor_ids": [
        "mon_01JD8Z3QK4W5X6Y7Z8A9B0C1D2"
      ]
    }
  }
}

accounts_save_monitor_category

Make or change a monitor category. Make a category on the monitors page (empty category.id; a name of 1 to 40 characters and optionally a colour: slate, red, orange, amber, green, teal, blue, violet, pink), or rename or recolour one by its id, built in or the account's. The owner or an admin. Never deletes.

Scopes: mcp:write · changes something

ArgumentTypeWhat it is
account_idstringThe account's id; an alias of org_id. Leave both out for the caller's own account.
categoryobject
org_idstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_save_monitor_category",
    "arguments": {
      "category": {
        "colour": "#3b82f6",
        "name": "Payments API",
        "builtin": true,
        "id": "01JD8Z3QK4W5X6Y7Z8A9B0C1D2"
      }
    }
  }
}

Client policies and releases

accounts_get_client_fleet

Show a client's fleet. Which versions of a client type the gateway saw in the last days (1 to 90, 0 means 30): the share per version and how it stands, the share behind the latest and below the minimum, adoption by day, and the agents and keys most behind (query narrows them). No account names or people's ids. The platform's admins only.

Scopes: mcp:read · reads only

ArgumentTypeWhat it is
clientstring
daysintegerDays of adoption to answer, 1 to 90 (0: 30).
querystringNarrow the clients most behind: an account, a label or an id.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_get_client_fleet",
    "arguments": {
      "query": "webhook retries"
    }
  }
}

accounts_import_client_release_notes

Read a client release's notes. The release notes of a version (tag; empty: the draft's latest) as markdown, from the GitHub release under the policy's links.source, else the section of links.changelog. Saves nothing: put them in a draft's notes_md to keep them. The platform's admins only.

Scopes: mcp:read · reads only · reaches outside the platform

ArgumentTypeWhat it is
clientstring
tagstringThe release's tag; empty: the latest version's.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_import_client_release_notes",
    "arguments": {
      "client": "desktop"
    }
  }
}

accounts_list_client_overrides

List a client's overrides. The accounts and plans held to an older minimum of a client type until a date, with the reason and who set it. Setting and ending one is a person's act, in the console. The platform's admins only.

Scopes: mcp:read · reads only

ArgumentTypeWhat it is
clientstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_list_client_overrides",
    "arguments": {
      "client": "desktop"
    }
  }
}

accounts_list_client_policies

List the clients' version policies. Every client type (ios, android, cli, agent, trails-ext, sdk-<language>) with its published policy (latest, minimum, grace deadline, security minimum, enforce, links, the words in en and hr, version, who published it and why) and its draft. The platform's admins only.

Scopes: mcp:read · reads only

No arguments.

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

accounts_list_client_policy_events

List a client policy's history. Every step on a client type's policy, newest first: drafted, review_requested, approved, rejected, scheduled, published, rolled_back, paused, resumed, auto_paused, override_set, override_removed, announcement_tested; who, whether an assistant, the version and a short note. The platform's admins only.

Scopes: mcp:read · reads only

ArgumentTypeWhat it is
clientstring
page_sizeinteger
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_list_client_policy_events",
    "arguments": {
      "page_size": 20
    }
  }
}

accounts_list_client_policy_versions

List a client's published versions. A client type's published policy versions, newest first, each with who published it, when, why and the version a rollback put back. The platform's admins only.

Scopes: mcp:read · reads only

ArgumentTypeWhat it is
clientstring
page_sizeinteger
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_list_client_policy_versions",
    "arguments": {
      "page_size": 20
    }
  }
}

accounts_preview_client_policy

Preview a client policy's impact. What a draft would do now to the clients seen in the last 30 days: how many would be refused (agents, keys, people) in how many accounts, how many warned, how many held back by an override, and the refused ones by requests. Changes nothing. The platform's admins only.

Scopes: mcp:read · reads only

ArgumentTypeWhat it is
clientstring
draftobjectThe draft to measure; absent: the saved draft.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_preview_client_policy",
    "arguments": {
      "client": "desktop"
    }
  }
}

accounts_save_client_policy_draft

Draft a client's version policy. Save a client type's draft on the published version it was made from (base_version); a newer one published since is a conflict: read again. A draft goes live only after a second admin approved it and an admin published it, in the console. The words (headline, what's new, stop reason, release notes in markdown) are what people see in the app, the extension and the command line, in en and hr. A rollout (percent, accounts, plans, pause_over_refusals_per_hour) and the announcement (channels, lead_hours) are part of the draft.

Scopes: mcp:write · changes something · safe to repeat

ArgumentTypeWhat it is
base_versionintegerThe published version the draft was made from (0 before the first).
clientstring
draftobject
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "accounts_save_client_policy_draft",
    "arguments": {
      "base_version": 3
    }
  }
}