Now talk to Hivekind in Claude or ChatGPT. Your priority accounts, GTM context, right where you work.

Partners

domain.partners.v2

Resolve/save the Partner with exact ownership and relationship context, inspect routes and unified account access. Preview the full network company list with mandatory Partner context, review the exact token/cost, then start and poll workspace jobs. Partner network imports cannot replace general company imports. Archive invalidates usable routes.

Archive a Channel Partner

partners.archive.v2

Use when: The user explicitly approved archiving one exact Partner after reviewing its network-account impact.

Avoid when: You intend only to deactivate one route; use partners.network.route.set.v2 with an appropriate relationship status.

Effects: Archives the Partner version chain and linked Partner Account; its network routes stop contributing to access. Destructive.

Cost: No gateway rate is configured. Check the Core workflow preview/quote for downstream charges and final settlement. Gateway rate code: none; downstream billing may apply.

Access: actions:execute. Approval: exact_scope_single_action. A stable operation UUID is required.

Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.

Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.

Invocation example using fictional fixtures
{
  "tool": "domain.partners.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "partners.archive.v2",
      "arguments": {
        "partner_id": "00000000-0000-4000-8000-000000000001"
      },
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {
    "partner_id": {
      "description": "Exact Partner UUID returned by partners.list.v2.",
      "format": "uuid",
      "title": "Partner Id",
      "type": "string"
    },
    "reason": {
      "anyOf": [
        {
          "maxLength": 2000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Reason used by the partner archive input v2 operation.",
      "title": "Reason"
    },
    "action_proposal_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional. Hivekind fills this from the MCP consent grant.",
      "title": "Action Proposal Id"
    }
  },
  "required": [
    "partner_id"
  ],
  "title": "McpMcpPartnerArchiveInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "partner_id": {
      "format": "uuid",
      "title": "Partner Id",
      "type": "string"
    },
    "workspace_id": {
      "format": "uuid",
      "title": "Workspace Id",
      "type": "string"
    },
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "name": {
      "maxLength": 160,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "domain": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "partner_type": {
      "const": "Channel",
      "default": "Channel",
      "title": "Partner Type",
      "type": "string"
    },
    "status": {
      "enum": [
        "Active",
        "Inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Id"
    },
    "owner_name": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Name"
    },
    "network_account_count": {
      "default": 0,
      "minimum": 0,
      "title": "Network Account Count",
      "type": "integer"
    },
    "version_number": {
      "minimum": 1,
      "title": "Version Number",
      "type": "integer"
    },
    "version_label": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Version Label"
    },
    "archived_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Archived At"
    },
    "archived_by": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Archived By"
    },
    "created_at": {
      "format": "date-time",
      "title": "Created At",
      "type": "string"
    },
    "updated_at": {
      "format": "date-time",
      "title": "Updated At",
      "type": "string"
    }
  },
  "required": [
    "partner_id",
    "workspace_id",
    "account_id",
    "name",
    "status",
    "version_number",
    "created_at",
    "updated_at"
  ],
  "title": "PartnerArchiveResultV2",
  "type": "object"
}

Get a Channel Partner

partners.get.v2

Use when: You have an exact partner_id and need its current metadata and network-account count.

Avoid when: You need all Channel Partners or do not yet have a partner_id; use partners.list.v2.

Effects: Returns one workspace-scoped Partner record. Read only.

Cost: No gateway credit charge; reads saved workspace data without starting paid provider work. Gateway rate code: none; downstream billing may apply.

Access: accounts:read. Approval: operation authorization. Reads do not need an operation UUID.

Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.

Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.

Invocation example using fictional fixtures
{
  "tool": "domain.partners.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "partners.get.v2",
      "arguments": {
        "partner_id": "00000000-0000-4000-8000-000000000001"
      },
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {
    "partner_id": {
      "description": "Exact Partner UUID returned by partners.list.v2.",
      "format": "uuid",
      "title": "Partner Id",
      "type": "string"
    }
  },
  "required": [
    "partner_id"
  ],
  "title": "McpPartnerGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "partner_id": {
      "format": "uuid",
      "title": "Partner Id",
      "type": "string"
    },
    "workspace_id": {
      "format": "uuid",
      "title": "Workspace Id",
      "type": "string"
    },
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "name": {
      "maxLength": 160,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "domain": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "partner_type": {
      "const": "Channel",
      "default": "Channel",
      "title": "Partner Type",
      "type": "string"
    },
    "status": {
      "enum": [
        "Active",
        "Inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Id"
    },
    "owner_name": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Name"
    },
    "network_account_count": {
      "default": 0,
      "minimum": 0,
      "title": "Network Account Count",
      "type": "integer"
    },
    "version_number": {
      "minimum": 1,
      "title": "Version Number",
      "type": "integer"
    },
    "version_label": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Version Label"
    },
    "archived_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Archived At"
    },
    "archived_by": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Archived By"
    },
    "created_at": {
      "format": "date-time",
      "title": "Created At",
      "type": "string"
    },
    "updated_at": {
      "format": "date-time",
      "title": "Updated At",
      "type": "string"
    }
  },
  "required": [
    "partner_id",
    "workspace_id",
    "account_id",
    "name",
    "status",
    "version_number",
    "created_at",
    "updated_at"
  ],
  "title": "PartnerGetResultV2",
  "type": "object"
}

List Channel Partners

partners.list.v2

Use when: You need the current active Library version and stable IDs of the workspace's Channel Partners.

Avoid when: You already have one exact partner_id; use partners.get.v2.

Effects: Returns current Partner records and their network-account counts. Read only.

Cost: No gateway credit charge; reads saved workspace data without starting paid provider work. Gateway rate code: none; downstream billing may apply.

Access: accounts:read. Approval: operation authorization. Reads do not need an operation UUID.

Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.

Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.

Invocation example using fictional fixtures
{
  "tool": "domain.partners.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "partners.list.v2",
      "arguments": {},
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {},
  "title": "McpPartnersListInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "PartnerRecordV2": {
      "additionalProperties": false,
      "properties": {
        "partner_id": {
          "format": "uuid",
          "title": "Partner Id",
          "type": "string"
        },
        "workspace_id": {
          "format": "uuid",
          "title": "Workspace Id",
          "type": "string"
        },
        "account_id": {
          "format": "uuid",
          "title": "Account Id",
          "type": "string"
        },
        "name": {
          "maxLength": 160,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domain"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "partner_type": {
          "const": "Channel",
          "default": "Channel",
          "title": "Partner Type",
          "type": "string"
        },
        "status": {
          "enum": [
            "Active",
            "Inactive"
          ],
          "title": "Status",
          "type": "string"
        },
        "owner_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner Id"
        },
        "owner_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner Name"
        },
        "network_account_count": {
          "default": 0,
          "minimum": 0,
          "title": "Network Account Count",
          "type": "integer"
        },
        "version_number": {
          "minimum": 1,
          "title": "Version Number",
          "type": "integer"
        },
        "version_label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Version Label"
        },
        "archived_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Archived At"
        },
        "archived_by": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Archived By"
        },
        "created_at": {
          "format": "date-time",
          "title": "Created At",
          "type": "string"
        },
        "updated_at": {
          "format": "date-time",
          "title": "Updated At",
          "type": "string"
        }
      },
      "required": [
        "partner_id",
        "workspace_id",
        "account_id",
        "name",
        "status",
        "version_number",
        "created_at",
        "updated_at"
      ],
      "title": "PartnerRecordV2",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "items": {
      "default": [],
      "items": {
        "$ref": "#/$defs/PartnerRecordV2"
      },
      "maxItems": 500,
      "title": "Items",
      "type": "array"
    }
  },
  "title": "PartnersListResultV2",
  "type": "object"
}

Get a Partner's network accounts

partners.network.accounts.get.v2

Use when: You have an exact partner_id and need every target Account route supplied by that Partner, including stale or unusable route states.

Avoid when: You need all access sources for one target Account; use network.account.access.get.v2.

Effects: Returns Partner-to-account route states and freshness. Read only.

Cost: No gateway credit charge; reads saved workspace data without starting paid provider work. Gateway rate code: none; downstream billing may apply.

Access: accounts:read. Approval: operation authorization. Reads do not need an operation UUID.

Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.

Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.

Invocation example using fictional fixtures
{
  "tool": "domain.partners.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "partners.network.accounts.get.v2",
      "arguments": {
        "partner_id": "00000000-0000-4000-8000-000000000001"
      },
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {
    "partner_id": {
      "description": "Exact Partner UUID returned by partners.list.v2.",
      "format": "uuid",
      "title": "Partner Id",
      "type": "string"
    }
  },
  "required": [
    "partner_id"
  ],
  "title": "McpPartnerNetworkAccountsGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "PartnerNetworkAccountV2": {
      "additionalProperties": false,
      "properties": {
        "route_id": {
          "format": "uuid",
          "title": "Route Id",
          "type": "string"
        },
        "account_id": {
          "format": "uuid",
          "title": "Account Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domain"
        },
        "account_type": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Account Type"
        },
        "relationship_status": {
          "enum": [
            "confirmed",
            "sourced",
            "stale",
            "revoked",
            "unavailable"
          ],
          "title": "Relationship Status",
          "type": "string"
        },
        "introduction_status": {
          "enum": [
            "not_requested",
            "requested",
            "introduced",
            "declined",
            "unavailable"
          ],
          "title": "Introduction Status",
          "type": "string"
        },
        "last_confirmed_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Last Confirmed At"
        },
        "stale_after_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Stale After At"
        },
        "network_strength": {
          "anyOf": [
            {
              "maximum": 3,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Network Strength"
        }
      },
      "required": [
        "route_id",
        "account_id",
        "name",
        "relationship_status",
        "introduction_status"
      ],
      "title": "PartnerNetworkAccountV2",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "items": {
      "default": [],
      "items": {
        "$ref": "#/$defs/PartnerNetworkAccountV2"
      },
      "maxItems": 5000,
      "title": "Items",
      "type": "array"
    }
  },
  "title": "PartnerNetworkAccountsGetResultV2",
  "type": "object"
}

Preview a Partner network import

partners.network.import.preview.v2

Use when: You have a CSV or structured company list supplied by an exact Channel Partner and need dedupe, mapping, and new-versus-existing counts before adding routes.

Avoid when: You are setting one known account route; use partners.network.route.set.v2.

Effects: Stages and previews the complete company list without creating Accounts or Partner routes. Returns an import token for the matching start tool.

Cost: No gateway rate is configured. Check the Core workflow preview/quote for downstream charges and final settlement. Gateway rate code: none; downstream billing may apply.

Access: runs:create. Approval: operation authorization. A stable operation UUID is required.

Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.

Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.

  1. partners.network.import.preview.v2
  2. partners.network.import.start.v2
  3. jobs.status.get.v2
  4. partners.network.accounts.get.v2
Invocation example using fictional fixtures
{
  "tool": "domain.partners.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "partners.network.import.preview.v2",
      "arguments": {
        "companies": [
          {
            "domain": "example.com",
            "name": "Example company"
          }
        ],
        "partner_account_id": "00000000-0000-4000-8000-000000000001",
        "partner_relationship_status": "confirmed"
      },
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "$defs": {
    "CompanyInputV1": {
      "additionalProperties": false,
      "description": "Fields mirror the account CSV importer's canonical columns exactly, so a\nstructured row and an uploaded file take the same path with no remapping.",
      "properties": {
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domain"
        },
        "industry": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Industry"
        },
        "city": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "City"
        },
        "country": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Country"
        },
        "employee_count": {
          "anyOf": [
            {
              "maximum": 10000000,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Employee Count"
        },
        "annual_revenue": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Annual Revenue"
        },
        "account_type": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Account Type"
        },
        "account_tier": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Account Tier"
        },
        "owner_email": {
          "anyOf": [
            {
              "maxLength": 320,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner Email"
        }
      },
      "required": [
        "name"
      ],
      "title": "CompanyInputV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "csv_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Verbatim contents of a CSV the caller holds. Send the file exactly as it is: never retype values, reorder or drop rows, summarise, or leave columns out. The server maps arbitrary column layouts itself, and the preview reports which columns it reads as source-system noise, and why, in column_policy. Decide there with the user -- not here.",
      "title": "Csv Text"
    },
    "exclude_columns": {
      "default": [],
      "description": "Source columns to leave out, after the user agreed to it. Leave empty on a first preview. Naming a column the server protects, or one that is mapped to a canonical field, fails the whole call.",
      "items": {
        "type": "string"
      },
      "maxItems": 200,
      "title": "Exclude Columns",
      "type": "array"
    },
    "keep_columns": {
      "default": [],
      "description": "Source columns to retain whatever the server makes of them. Use it when the user says a column matters. Outranks exclude_columns.",
      "items": {
        "type": "string"
      },
      "maxItems": 200,
      "title": "Keep Columns",
      "type": "array"
    },
    "tags": {
      "anyOf": [
        {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 10,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Account tags (1-64 characters each, at most 10) added to every account this import creates or matches -- existing accounts get the tag and nothing else on them changes. Matched case-insensitively against existing tags; resolve them with accounts.tags.list.v2 first. The preview's import_token locks these in: omit tags on the commit to reuse them, and a different list is refused. Separate from the source badge.",
      "title": "Tags"
    },
    "companies": {
      "default": [],
      "description": "Companies used by the partner network import preview input v2 operation.",
      "items": {
        "$ref": "#/$defs/CompanyInputV1"
      },
      "maxItems": 2000,
      "title": "Companies",
      "type": "array"
    },
    "partner_account_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact active Channel Partner Account whose network supplied these companies. When set, existing Accounts are preserved and routes are attached instead of reclassifying them.",
      "title": "Partner Account Id"
    },
    "partner_relationship_status": {
      "anyOf": [
        {
          "enum": [
            "confirmed",
            "sourced"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Required with partner_account_id. Confirmed means the Partner attests a usable relationship; sourced stays visible but adds no strength.",
      "title": "Partner Relationship Status"
    }
  },
  "title": "McpPartnerNetworkImportPreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "ExcludedColumnV1": {
      "additionalProperties": false,
      "description": "One source column the server left out, or proposes leaving out.",
      "properties": {
        "column": {
          "maxLength": 255,
          "title": "Column",
          "type": "string"
        },
        "reason": {
          "enum": [
            "empty_column",
            "opaque_source_id",
            "payment_metadata",
            "source_system_link",
            "caller_selected"
          ],
          "title": "Reason",
          "type": "string"
        },
        "detail": {
          "default": "",
          "maxLength": 500,
          "title": "Detail",
          "type": "string"
        }
      },
      "required": [
        "column",
        "reason"
      ],
      "title": "ExcludedColumnV1",
      "type": "object"
    },
    "ImportColumnPolicyV1": {
      "additionalProperties": false,
      "description": "What the server made of the file's columns.\n\n``applied`` is the field that matters. False -- the default for any preview\nthat was not given a selection -- means ``excluded_columns`` is a proposal\nand every column was still imported. Show it to the user, take their answer,\nand send it back as ``exclude_columns`` if they agree. Never act on it alone.",
      "properties": {
        "version": {
          "default": 1,
          "title": "Version",
          "type": "integer"
        },
        "applied": {
          "default": false,
          "title": "Applied",
          "type": "boolean"
        },
        "retained_columns": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "Retained Columns",
          "type": "array"
        },
        "excluded_columns": {
          "default": [],
          "items": {
            "$ref": "#/$defs/ExcludedColumnV1"
          },
          "title": "Excluded Columns",
          "type": "array"
        }
      },
      "title": "ImportColumnPolicyV1",
      "type": "object"
    },
    "JsonValue": {}
  },
  "additionalProperties": false,
  "properties": {
    "column_policy": {
      "anyOf": [
        {
          "$ref": "#/$defs/ImportColumnPolicyV1"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "What the server made of the file's columns. When applied is false this is a proposal only and nothing was left out."
    },
    "import_token": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Pass to the matching commit tool to reuse exactly these rows. Null when no cache backend was reachable -- resend the data instead.",
      "title": "Import Token"
    },
    "rows_parsed": {
      "default": 0,
      "minimum": 0,
      "title": "Rows Parsed",
      "type": "integer"
    },
    "column_mapping": {
      "additionalProperties": {
        "type": "string"
      },
      "title": "Column Mapping",
      "type": "object"
    },
    "matches_existing_accounts": {
      "default": 0,
      "minimum": 0,
      "title": "Matches Existing Accounts",
      "type": "integer"
    },
    "new_companies": {
      "default": 0,
      "minimum": 0,
      "title": "New Companies",
      "type": "integer"
    },
    "sample_rows": {
      "default": [],
      "items": {
        "additionalProperties": {
          "$ref": "#/$defs/JsonValue"
        },
        "type": "object"
      },
      "maxItems": 5,
      "title": "Sample Rows",
      "type": "array"
    },
    "tags": {
      "default": [],
      "description": "Account tags the import_token is locked to.",
      "items": {
        "type": "string"
      },
      "title": "Tags",
      "type": "array"
    },
    "accounts_to_tag": {
      "default": 0,
      "description": "Accounts the commit would tag: matches_existing_accounts plus new_companies. Zero when no tags were given.",
      "minimum": 0,
      "title": "Accounts To Tag",
      "type": "integer"
    }
  },
  "title": "PartnerNetworkImportPreviewResultV2",
  "type": "object"
}

Start a Partner network import

partners.network.import.start.v2

Use when: The user approved the exact previewed company list, Partner Account, and confirmed-or-sourced relationship state.

Avoid when: You have not previewed the list or need to create the Partner first with partners.save.v2.

Effects: Queues creation of missing Prospect Accounts and attaches routes to existing Accounts without overwriting them. Poll jobs.status.get.v2; nothing is sent or auto-scored.

Cost: No gateway rate is configured. Check the Core workflow preview/quote for downstream charges and final settlement. Gateway rate code: none; downstream billing may apply.

Access: actions:execute. Approval: exact_scope_single_action. A stable operation UUID is required.

Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.

Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.

  1. partners.network.import.start.v2
  2. jobs.status.get.v2
  3. partners.network.accounts.get.v2
Invocation example using fictional fixtures
{
  "tool": "domain.partners.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "partners.network.import.start.v2",
      "arguments": {
        "import_token": "use-the-exact-token-from-the-approved-preview",
        "partner_account_id": "00000000-0000-4000-8000-000000000001",
        "partner_relationship_status": "confirmed"
      },
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "$defs": {
    "CompanyInputV1": {
      "additionalProperties": false,
      "description": "Fields mirror the account CSV importer's canonical columns exactly, so a\nstructured row and an uploaded file take the same path with no remapping.",
      "properties": {
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domain"
        },
        "industry": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Industry"
        },
        "city": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "City"
        },
        "country": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Country"
        },
        "employee_count": {
          "anyOf": [
            {
              "maximum": 10000000,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Employee Count"
        },
        "annual_revenue": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Annual Revenue"
        },
        "account_type": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Account Type"
        },
        "account_tier": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Account Tier"
        },
        "owner_email": {
          "anyOf": [
            {
              "maxLength": 320,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner Email"
        }
      },
      "required": [
        "name"
      ],
      "title": "CompanyInputV1",
      "type": "object"
    },
    "ImportSourceInputV1": {
      "additionalProperties": false,
      "description": "Where this list came from. Every record the import creates or matches is badged with it.",
      "properties": {
        "source_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Add to an existing source instead of creating one.",
          "title": "Source Id"
        },
        "name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "New source name, e.g. 'AI for CFOs workshop'. Omit to name it after the file.",
          "title": "Name"
        },
        "kind": {
          "default": "list",
          "enum": [
            "workshop",
            "event",
            "webinar",
            "list",
            "other"
          ],
          "title": "Kind",
          "type": "string"
        },
        "occurred_on": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Occurred On"
        },
        "details": {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": "Location, host, link, notes. Flat: at most 20 keys (each up to 64 characters), values are text up to 1000 characters, numbers, booleans or null. No nested objects or lists.",
          "title": "Details",
          "type": "object"
        }
      },
      "title": "ImportSourceInputV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "csv_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Verbatim contents of a CSV the caller holds. Send the file exactly as it is: never retype values, reorder or drop rows, summarise, or leave columns out. The server maps arbitrary column layouts itself, and the preview reports which columns it reads as source-system noise, and why, in column_policy. Decide there with the user -- not here.",
      "title": "Csv Text"
    },
    "exclude_columns": {
      "default": [],
      "description": "Source columns to leave out, after the user agreed to it. Leave empty on a first preview. Naming a column the server protects, or one that is mapped to a canonical field, fails the whole call.",
      "items": {
        "type": "string"
      },
      "maxItems": 200,
      "title": "Exclude Columns",
      "type": "array"
    },
    "keep_columns": {
      "default": [],
      "description": "Source columns to retain whatever the server makes of them. Use it when the user says a column matters. Outranks exclude_columns.",
      "items": {
        "type": "string"
      },
      "maxItems": 200,
      "title": "Keep Columns",
      "type": "array"
    },
    "tags": {
      "anyOf": [
        {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 10,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Account tags (1-64 characters each, at most 10) added to every account this import creates or matches -- existing accounts get the tag and nothing else on them changes. Matched case-insensitively against existing tags; resolve them with accounts.tags.list.v2 first. The preview's import_token locks these in: omit tags on the commit to reuse them, and a different list is refused. Separate from the source badge.",
      "title": "Tags"
    },
    "companies": {
      "default": [],
      "description": "Companies used by the partner network import start input v2 operation.",
      "items": {
        "$ref": "#/$defs/CompanyInputV1"
      },
      "maxItems": 2000,
      "title": "Companies",
      "type": "array"
    },
    "partner_account_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact active Channel Partner Account whose network supplied these companies. When set, existing Accounts are preserved and routes are attached instead of reclassifying them.",
      "title": "Partner Account Id"
    },
    "partner_relationship_status": {
      "anyOf": [
        {
          "enum": [
            "confirmed",
            "sourced"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Required with partner_account_id. Confirmed means the Partner attests a usable relationship; sourced stays visible but adds no strength.",
      "title": "Partner Relationship Status"
    },
    "source": {
      "anyOf": [
        {
          "$ref": "#/$defs/ImportSourceInputV1"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Label this list so every account and contact it creates or matches is badged with where it came from (workshop, event, webinar, list). The id comes back as source_id on the result."
    },
    "action_proposal_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional. Hivekind fills this from the MCP consent grant.",
      "title": "Action Proposal Id"
    },
    "import_token": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Import token used by the partner network import start input v2 operation.",
      "title": "Import Token"
    }
  },
  "title": "McpMcpPartnerNetworkImportStartInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "job_id": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Job Id",
      "type": "string"
    },
    "status": {
      "default": "queued",
      "maxLength": 32,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    },
    "queued": {
      "default": true,
      "title": "Queued",
      "type": "boolean"
    },
    "rows_parsed": {
      "default": 0,
      "minimum": 0,
      "title": "Rows Parsed",
      "type": "integer"
    },
    "source_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source the imported records are badged with.",
      "title": "Source Id"
    },
    "tags": {
      "default": [],
      "description": "Account tags added to every account this import created or matched.",
      "items": {
        "type": "string"
      },
      "title": "Tags",
      "type": "array"
    }
  },
  "required": [
    "job_id"
  ],
  "title": "PartnerNetworkImportStartResultV2",
  "type": "object"
}

Set a Channel Partner route

partners.network.route.set.v2

Use when: The user approved creating or updating one exact Partner-to-target-Account relationship and its introduction state.

Avoid when: You have not resolved both IDs or only need to inspect existing access.

Effects: Upserts one route. Revoked or unavailable states deactivate it; a confirmed route cannot be silently downgraded to sourced.

Cost: No gateway rate is configured. Check the Core workflow preview/quote for downstream charges and final settlement. Gateway rate code: none; downstream billing may apply.

Access: actions:execute. Approval: exact_scope_single_action. A stable operation UUID is required.

Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.

Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.

Invocation example using fictional fixtures
{
  "tool": "domain.partners.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "partners.network.route.set.v2",
      "arguments": {
        "partner_id": "00000000-0000-4000-8000-000000000001",
        "relationship_status": "confirmed",
        "target_account_id": "00000000-0000-4000-8000-000000000001"
      },
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {
    "partner_id": {
      "description": "Exact active Partner UUID returned by partners.list.v2.",
      "format": "uuid",
      "title": "Partner Id",
      "type": "string"
    },
    "target_account_id": {
      "description": "Exact target Account UUID returned by accounts.search.v2.",
      "format": "uuid",
      "title": "Target Account Id",
      "type": "string"
    },
    "relationship_status": {
      "description": "Relationship status used by the partner network route set input v2 operation.",
      "enum": [
        "confirmed",
        "sourced",
        "stale",
        "revoked",
        "unavailable"
      ],
      "title": "Relationship Status",
      "type": "string"
    },
    "introduction_status": {
      "default": "not_requested",
      "description": "Introduction status used by the partner network route set input v2 operation.",
      "enum": [
        "not_requested",
        "requested",
        "introduced",
        "declined",
        "unavailable"
      ],
      "title": "Introduction Status",
      "type": "string"
    },
    "last_confirmed_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Last confirmed at timestamp in the format accepted by the schema.",
      "title": "Last Confirmed At"
    },
    "stale_after_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Stale after at timestamp in the format accepted by the schema.",
      "title": "Stale After At"
    },
    "source_reference": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source reference used by the partner network route set input v2 operation.",
      "title": "Source Reference"
    },
    "notes": {
      "anyOf": [
        {
          "maxLength": 4000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Notes used by the partner network route set input v2 operation.",
      "title": "Notes"
    },
    "contact_ids": {
      "default": [],
      "description": "Optional contacts belonging to the Partner Account who support this route.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 200,
      "title": "Contact Ids",
      "type": "array"
    },
    "action_proposal_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional. Hivekind fills this from the MCP consent grant.",
      "title": "Action Proposal Id"
    }
  },
  "required": [
    "partner_id",
    "target_account_id",
    "relationship_status"
  ],
  "title": "McpMcpPartnerNetworkRouteSetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "route_id": {
      "format": "uuid",
      "title": "Route Id",
      "type": "string"
    },
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "name": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "domain": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "account_type": {
      "anyOf": [
        {
          "maxLength": 64,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Account Type"
    },
    "relationship_status": {
      "enum": [
        "confirmed",
        "sourced",
        "stale",
        "revoked",
        "unavailable"
      ],
      "title": "Relationship Status",
      "type": "string"
    },
    "introduction_status": {
      "enum": [
        "not_requested",
        "requested",
        "introduced",
        "declined",
        "unavailable"
      ],
      "title": "Introduction Status",
      "type": "string"
    },
    "last_confirmed_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Last Confirmed At"
    },
    "stale_after_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Stale After At"
    },
    "network_strength": {
      "anyOf": [
        {
          "maximum": 3,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Network Strength"
    }
  },
  "required": [
    "route_id",
    "account_id",
    "name",
    "relationship_status",
    "introduction_status"
  ],
  "title": "PartnerNetworkRouteSetResultV2",
  "type": "object"
}

Create or update a Channel Partner

partners.save.v2

Use when: The user approved creating one Channel Partner or versioning the mutable fields of an exact existing Partner.

Avoid when: You only need to inspect Partners, archive one, or set an account route.

Effects: Creates a Partner plus its linked Partner Account, or creates a new version of an existing Partner. Does not add network routes.

Cost: No gateway rate is configured. Check the Core workflow preview/quote for downstream charges and final settlement. Gateway rate code: none; downstream billing may apply.

Access: actions:execute. Approval: exact_scope_single_action. A stable operation UUID is required.

Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.

Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.

  1. partners.save.v2
  2. partners.network.import.preview.v2
  3. partners.network.import.start.v2
  4. jobs.status.get.v2
  5. partners.network.accounts.get.v2
Invocation example using fictional fixtures
{
  "tool": "domain.partners.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "partners.save.v2",
      "arguments": {
        "name": "Example Partner"
      },
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {
    "partner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Existing Partner UUID to update; omit only when creating a new Partner.",
      "title": "Partner Id"
    },
    "name": {
      "anyOf": [
        {
          "maxLength": 160,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Required for create; immutable and therefore omitted for update.",
      "title": "Name"
    },
    "domain": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional domain for create; immutable and therefore omitted for update.",
      "title": "Domain"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Human-readable description of the record or requested outcome.",
      "title": "Description"
    },
    "status": {
      "anyOf": [
        {
          "enum": [
            "Active",
            "Inactive"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Status used by the partner save input v2 operation.",
      "title": "Status"
    },
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact owner UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Owner Id"
    },
    "clear_owner": {
      "default": false,
      "description": "Clear owner used by the partner save input v2 operation.",
      "title": "Clear Owner",
      "type": "boolean"
    },
    "version_label": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Version label used by the partner save input v2 operation.",
      "title": "Version Label"
    },
    "action_proposal_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional. Hivekind fills this from the MCP consent grant.",
      "title": "Action Proposal Id"
    }
  },
  "title": "McpMcpPartnerSaveInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "partner_id": {
      "format": "uuid",
      "title": "Partner Id",
      "type": "string"
    },
    "workspace_id": {
      "format": "uuid",
      "title": "Workspace Id",
      "type": "string"
    },
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "name": {
      "maxLength": 160,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "domain": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "partner_type": {
      "const": "Channel",
      "default": "Channel",
      "title": "Partner Type",
      "type": "string"
    },
    "status": {
      "enum": [
        "Active",
        "Inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Id"
    },
    "owner_name": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Name"
    },
    "network_account_count": {
      "default": 0,
      "minimum": 0,
      "title": "Network Account Count",
      "type": "integer"
    },
    "version_number": {
      "minimum": 1,
      "title": "Version Number",
      "type": "integer"
    },
    "version_label": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Version Label"
    },
    "archived_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Archived At"
    },
    "archived_by": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Archived By"
    },
    "created_at": {
      "format": "date-time",
      "title": "Created At",
      "type": "string"
    },
    "updated_at": {
      "format": "date-time",
      "title": "Updated At",
      "type": "string"
    }
  },
  "required": [
    "partner_id",
    "workspace_id",
    "account_id",
    "name",
    "status",
    "version_number",
    "created_at",
    "updated_at"
  ],
  "title": "PartnerSaveResultV2",
  "type": "object"
}