Skip to content

Ownership transfers tools

MCP tools for Ownership transfers: ownership_transfers_accept, ownership_transfers_cancel, ownership_transfers_create, ownership_transfers_get, ownership_transfers_list_mine.

  • ownership_transfers_accept: Accept ownership of an organization
  • ownership_transfers_cancel: Cancel the open offer of ownership
  • ownership_transfers_create: Offer ownership to another member
  • ownership_transfers_get: Get the open offer of ownership
  • ownership_transfers_list_mine: List the offers of ownership for you

ownership_transfers_accept

Accept ownership of an organization. Operation ownership_transfers.accept · Platform level · permission account:write · risk tier security · since M12

Accepts the offer of ownership an owner made to you: you become an owner of the whole organization (org_owner), and the owner who offered it becomes an admin. You must be signed in as the member the offer is for, with a sign-in in the last 15 minutes; the offer must still be open (7 days).

Who can call it: the signed-in member the offer is addressed to.

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

Arguments

ArgumentTypeRequiredDescription
orgIdID (org_…)yes–
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

Accept the offer

Arguments:

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

Result output:

JSON
{
  "organization": {
    "id": "org_01m4tx5nj7ekd958x53w4bntcg",
    "slug": "acme",
    "name": "Acme"
  },
  "membership": {
    "id": "mem_01m4tx5nj8emwbyf7y9vcf47x6",
    "object": "membership",
    "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
    "userId": "usr_01m4tx5nj8emwbyf7y9vcf47xb",
    "role": "org_owner",
    "scope": {
      "type": "brand",
      "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4"
    },
    "livemodeAccess": false,
    "invitedBy": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
    "user": {
      "email": "dev@acme.example",
      "name": "Dana Developer"
    },
    "createdAt": "2026-10-13T12:00:00.000Z",
    "updatedAt": "2026-10-13T12:00:00.000Z"
  },
  "previousOwnerMembership": {
    "id": "mem_01m4tx5nj8emwbyf7y9vcf47x6",
    "object": "membership",
    "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
    "userId": "usr_01m4tx5nj8emwbyf7y9vcf47xb",
    "role": "org_admin",
    "scope": {
      "type": "brand",
      "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4"
    },
    "livemodeAccess": false,
    "invitedBy": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
    "user": {
      "email": "dev@acme.example",
      "name": "Dana Developer"
    },
    "createdAt": "2026-10-13T12:00:00.000Z",
    "updatedAt": "2026-10-13T12:00:00.000Z"
  }
}

ownership_transfers_cancel

Cancel the open offer of ownership. Operation ownership_transfers.cancel · Organization level · permission org:admin · risk tier write · since M12

Withdraws the organization's open offer of ownership before the member accepts it. Returns the cancelled offer. Only an owner can cancel it.

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

Arguments

ArgumentTypeRequiredDescription
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

Withdraw the offer

Arguments:

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

Result output:

JSON
{
  "object": "ownership_transfer",
  "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
  "fromUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
  "toUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xb",
  "toEmail": "ana@acme.example",
  "status": "pending",
  "createdAt": "2026-10-26T09:00:00.000Z",
  "expiresAt": "2026-11-02T09:00:00.000Z"
}

ownership_transfers_create

Offer ownership to another member. Operation ownership_transfers.create · Organization level · permission org:admin · risk tier security · since M12

An owner offers ownership of the organization to another member. The member is emailed and has 7 days to accept (ownership_transfers.accept, with their own recent sign-in). When they accept, they become an owner and you become an admin (org_admin), so the organization keeps the same number of owners. Until then nothing changes, and you can withdraw the offer (ownership_transfers.cancel). One offer is open at a time.

Only an owner can offer ownership, from the console, with a sign-in in the last 15 minutes.

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

Arguments

ArgumentTypeRequiredDescription
toUserIdID (usr_…)yesThe member who would become the owner.
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

Offer ownership to an admin

Arguments:

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

Result output:

JSON
{
  "object": "ownership_transfer",
  "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
  "fromUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
  "toUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xb",
  "toEmail": "ana@acme.example",
  "status": "pending",
  "createdAt": "2026-10-26T09:00:00.000Z",
  "expiresAt": "2026-11-02T09:00:00.000Z"
}

ownership_transfers_get

Get the open offer of ownership. Operation ownership_transfers.get · Organization level · permission org:read · risk tier read · since M12

Returns the organization's open offer of ownership (pending), or null when there's none: who offered it, to whom, and until when it can be accepted. Offers lapse after 7 days.

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

An offer waiting for the member

Arguments:

JSON
{}

Result output:

JSON
{
  "object": "ownership_transfer_status",
  "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
  "pending": {
    "object": "ownership_transfer",
    "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
    "fromUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
    "toUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xb",
    "toEmail": "ana@acme.example",
    "status": "pending",
    "createdAt": "2026-10-26T09:00:00.000Z",
    "expiresAt": "2026-11-02T09:00:00.000Z"
  }
}

ownership_transfers_list_mine

List the offers of ownership for you. Operation ownership_transfers.list_mine · Platform level · permission account:read · risk tier read · since M12

Lists the open offers of ownership addressed to you, with the organization and when each offer lapses. Accept one with ownership_transfers.accept.

Who can call it: any signed-in user.

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

One offer

Arguments:

JSON
{}

Result output:

JSON
{
  "object": "list",
  "data": [
    {
      "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
      "organization": {
        "slug": "acme",
        "name": "Acme"
      },
      "fromUserId": "usr_01m4tx5nj8emwbyf7y9vcf47xa",
      "expiresAt": "2026-11-02T09:00:00.000Z"
    }
  ]
}