Skip to content

Oauth connections tools

MCP tools for Oauth connections: oauth_connections_create, oauth_connections_list, oauth_connections_revoke.

  • oauth_connections_create: Connect an MCP client to an organization (consent)
  • oauth_connections_list: List your connected OAuth clients
  • oauth_connections_revoke: Disconnect an OAuth client

oauth_connections_create

Connect an MCP client to an organization (consent). Operation oauth_connections.create · Platform level · permission account:write · risk tier security · since M10

Lets an OAuth client that acts for you, such as an MCP client, work in one of your organizations with the scopes you consent to. The consent screen calls it when you approve the client's authorization request; grantId is that request's grant. The client then acts as you, with at most your own role there (re-checked on every call), and never decides approval requests. Connecting again to the same organization replaces its scopes. Partner apps are installed with app_installations.create instead.

Annotations: readOnlyHint: false · destructiveHint: false · idempotentHint: true · openWorldHint: false

Arguments

ArgumentTypeRequiredDescription
clientIdID (ocl_…)yes–
grantIdID (ogr_…)yes–
orgIdID (org_…)yes–
scopesarray of one of 84 values, e.g. org:read, org:write, org:adminyes(1–200 items)
idempotency_keystringnoA unique string for this change. Retrying with the same key and arguments never acts twice. When left out, the server generates one and returns it in the result's idempotency_key. (1–255 characters)
dry_runbooleannotrue: check permissions and rules and compute the result, then roll everything back. Nothing is saved. (default false)
  • Idempotency: the result returns the idempotency_key used, yours or one the server generated. Retry with it: a call with the same key and arguments never acts twice (keys are kept for 24 hours).
  • Dry run: supported. dry_run: true checks permissions and rules and computes the result, then rolls everything back.

Errors

Example

Let Claude read filings and tasks

Arguments:

JSON
{
  "clientId": "ocl_01m4ttwd3veh9apbewxheq5xhe",
  "grantId": "ogr_01m4ttwd3veh9apbewxheq5xhd",
  "orgId": "org_01m4ttwd3veh9apbewxheq5xh3",
  "scopes": ["filings:read", "tasks:read"],
  "idempotency_key": "8d0c5f8e-4b7a-4e43-9b0f-2f6a0c1d9e21"
}

Result output:

JSON
{
  "id": "ogr_01m4ttwd3veh9apbewxheq5xhd",
  "object": "oauth_connection",
  "client": {
    "id": "ocl_01m4ttwd3veh9apbewxheq5xhe",
    "name": "Claude",
    "publisher": "Unverified (registered by the client itself)",
    "dynamic": true
  },
  "orgs": [
    {
      "orgId": "org_01m4ttwd3veh9apbewxheq5xh3",
      "scopes": ["filings:read", "tasks:read"],
      "consentedAt": "2026-10-25T09:00:00.000Z"
    }
  ],
  "createdAt": "2026-10-25T09:00:00.000Z",
  "updatedAt": "2026-10-25T09:00:00.000Z"
}

oauth_connections_list

List your connected OAuth clients. Operation oauth_connections.list · Platform level · permission account:read · risk tier read · since M10

Lists the OAuth clients (such as MCP clients) that act for you, with the organizations and scopes you connected them to, most recently changed first (at most 100). App installations aren't listed here: see app_installations.list.

Annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false

Arguments

This tool takes no arguments.

  • Read-only: changes nothing; idempotency_key is ignored.

Errors

Example

Your connections

Arguments:

JSON
{}

Result output:

JSON
{
  "object": "list",
  "data": [
    {
      "id": "ogr_01m4ttwd3veh9apbewxheq5xhd",
      "object": "oauth_connection",
      "client": {
        "id": "ocl_01m4ttwd3veh9apbewxheq5xhe",
        "name": "Claude",
        "publisher": "Unverified (registered by the client itself)",
        "dynamic": true
      },
      "orgs": [
        {
          "orgId": "org_01m4ttwd3veh9apbewxheq5xh3",
          "scopes": ["filings:read", "tasks:read"],
          "consentedAt": "2026-10-25T09:00:00.000Z"
        }
      ],
      "createdAt": "2026-10-25T09:00:00.000Z",
      "updatedAt": "2026-10-25T09:00:00.000Z"
    }
  ]
}

oauth_connections_revoke

Disconnect an OAuth client. Operation oauth_connections.revoke · Platform level · permission account:write · risk tier security · since M10

Disconnects an OAuth client that acts for you from one organization (orgId), or from all of them. Its tokens stop working there at once; once it covers no organization, every token and refresh token it holds is revoked. Disconnecting it again changes nothing.

Annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: true · openWorldHint: false

Arguments

ArgumentTypeRequiredDescription
idID (ogr_…)yes–
orgIdID (org_…)no–
idempotency_keystringnoA unique string for this change. Retrying with the same key and arguments never acts twice. When left out, the server generates one and returns it in the result's idempotency_key. (1–255 characters)
dry_runbooleannotrue: check permissions and rules and compute the result, then roll everything back. Nothing is saved. (default false)
  • Idempotency: the result returns the idempotency_key used, yours or one the server generated. Retry with it: a call with the same key and arguments never acts twice (keys are kept for 24 hours).
  • Dry run: supported. dry_run: true checks permissions and rules and computes the result, then rolls everything back.

Errors

Example

Disconnect from every organization

Arguments:

JSON
{
  "id": "ogr_01m4ttwd3veh9apbewxheq5xhd",
  "idempotency_key": "8d0c5f8e-4b7a-4e43-9b0f-2f6a0c1d9e21"
}

Result output:

JSON
{
  "id": "ogr_01m4ttwd3veh9apbewxheq5xhd",
  "object": "oauth_connection",
  "client": {
    "id": "ocl_01m4ttwd3veh9apbewxheq5xhe",
    "name": "Claude",
    "publisher": "Unverified (registered by the client itself)",
    "dynamic": true
  },
  "orgs": [],
  "createdAt": "2026-10-25T09:00:00.000Z",
  "updatedAt": "2026-10-26T14:30:00.000Z"
}