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

Events

domain.events.v2

Resolve an event before reading its roster, attendance or assignments. Ingest rosters through events.import.preview.v2 then events.import.start.v2 using the exact token; people-only imports belong to Accounts. Preview grading/enrichment scope and cost before starting. Assignment preview persists suggestions: obtain authorization and require read-back; confirmation is a separate action.

Confirm event roster assignments

events.assignments.confirm.v2

Use when: Use the existing Core workflow: Confirm event roster assignments. Confirms existing suggestions and fills ownership for unowned accounts. Read the exact event preview first.

Avoid when: Do not infer unsupported history, attribution, or commitments from this response.

Effects: Confirms existing suggestions and fills ownership for unowned accounts. Read the exact event preview first.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.assignments.confirm.v2",
      "arguments": {
        "event_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": {
    "event_id": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "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": [
    "event_id"
  ],
  "title": "McpMcpPublicEventsAssignmentsConfirmInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.assignments.confirm.v2; preserves the established validators.",
  "properties": {
    "title": {
      "title": "Title",
      "type": "string"
    },
    "data": {
      "additionalProperties": true,
      "title": "Data",
      "type": "object"
    },
    "limitations": {
      "title": "Limitations",
      "type": "string"
    },
    "applied_parameters": {
      "additionalProperties": true,
      "title": "Applied Parameters",
      "type": "object"
    },
    "source_path": {
      "title": "Source Path",
      "type": "string"
    },
    "job_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Core job identifier when an operation enqueues work; poll jobs.status.get.v2 and read the resulting resource.",
      "title": "Job Id"
    },
    "queued": {
      "default": false,
      "title": "Queued",
      "type": "boolean"
    },
    "outcome_status": {
      "default": "partial",
      "enum": [
        "completed",
        "partial",
        "needs_input",
        "awaiting_approval"
      ],
      "title": "Outcome Status",
      "type": "string"
    },
    "read_back_verified": {
      "default": false,
      "title": "Read Back Verified",
      "type": "boolean"
    },
    "verification_message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Verification Message"
    }
  },
  "required": [
    "title",
    "data",
    "limitations",
    "source_path"
  ],
  "title": "PublicEventsAssignmentsConfirmResultV2",
  "type": "object"
}

Event roster assignments

events.assignments.get.v2

Use when: Use the existing Core workflow: Event roster assignments. Event-roster scope only; not arbitrary account/territory optimization.

Avoid when: Do not infer unsupported history, attribution, or commitments from this response.

Effects: 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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.assignments.get.v2",
      "arguments": {
        "event_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": {
    "event_id": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    }
  },
  "required": [
    "event_id"
  ],
  "title": "McpPublicEventsAssignmentsGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.assignments.get.v2; preserves the established validators.",
  "properties": {
    "title": {
      "title": "Title",
      "type": "string"
    },
    "data": {
      "additionalProperties": true,
      "title": "Data",
      "type": "object"
    },
    "limitations": {
      "title": "Limitations",
      "type": "string"
    },
    "applied_parameters": {
      "additionalProperties": true,
      "title": "Applied Parameters",
      "type": "object"
    },
    "source_path": {
      "title": "Source Path",
      "type": "string"
    },
    "job_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Core job identifier when an operation enqueues work; poll jobs.status.get.v2 and read the resulting resource.",
      "title": "Job Id"
    },
    "queued": {
      "default": false,
      "title": "Queued",
      "type": "boolean"
    },
    "outcome_status": {
      "default": "partial",
      "enum": [
        "completed",
        "partial",
        "needs_input",
        "awaiting_approval"
      ],
      "title": "Outcome Status",
      "type": "string"
    },
    "read_back_verified": {
      "default": false,
      "title": "Read Back Verified",
      "type": "boolean"
    },
    "verification_message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Verification Message"
    }
  },
  "required": [
    "title",
    "data",
    "limitations",
    "source_path"
  ],
  "title": "PublicEventsAssignmentsGetResultV2",
  "type": "object"
}

Suggest event roster assignments

events.assignments.preview.v2

Use when: Use the existing Core workflow: Suggest event roster assignments. Persists suggested event assignments. This preview is a write; it does not confirm ownership.

Avoid when: Do not infer unsupported history, attribution, or commitments from this response.

Effects: Persists suggested event assignments. This preview is a write; it does not confirm ownership.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.assignments.preview.v2",
      "arguments": {
        "event_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": {
    "event_id": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "strategy": {
      "default": "territory",
      "description": "Strategy used by the public events assignments preview input v2 operation.",
      "enum": [
        "territory",
        "round_robin",
        "manual"
      ],
      "title": "Strategy",
      "type": "string"
    },
    "tiers": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "maxItems": 8,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Tiers used by the public events assignments preview input v2 operation.",
      "title": "Tiers"
    },
    "ae_user_ids": {
      "anyOf": [
        {
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "maxItems": 100,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact ae user UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Ae User Ids"
    },
    "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": [
    "event_id"
  ],
  "title": "McpMcpPublicEventsAssignmentsPreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.assignments.preview.v2; preserves the established validators.",
  "properties": {
    "title": {
      "title": "Title",
      "type": "string"
    },
    "data": {
      "additionalProperties": true,
      "title": "Data",
      "type": "object"
    },
    "limitations": {
      "title": "Limitations",
      "type": "string"
    },
    "applied_parameters": {
      "additionalProperties": true,
      "title": "Applied Parameters",
      "type": "object"
    },
    "source_path": {
      "title": "Source Path",
      "type": "string"
    },
    "job_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Core job identifier when an operation enqueues work; poll jobs.status.get.v2 and read the resulting resource.",
      "title": "Job Id"
    },
    "queued": {
      "default": false,
      "title": "Queued",
      "type": "boolean"
    },
    "outcome_status": {
      "default": "partial",
      "enum": [
        "completed",
        "partial",
        "needs_input",
        "awaiting_approval"
      ],
      "title": "Outcome Status",
      "type": "string"
    },
    "read_back_verified": {
      "default": false,
      "title": "Read Back Verified",
      "type": "boolean"
    },
    "verification_message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Verification Message"
    }
  },
  "required": [
    "title",
    "data",
    "limitations",
    "source_path"
  ],
  "title": "PublicEventsAssignmentsPreviewResultV2",
  "type": "object"
}

Where an account or contact was last seen

events.attendance.list.v2

Use when: Ask an account or a contact which events it has appeared at and when, with the RSVP and check-in state the organizer exported.

Avoid when: Do not use this to read one event's guest list — that is events.roster.get.v2.

Effects: Reads current workspace state.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.attendance.list.v2",
      "arguments": {
        "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": {
    "account_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact account UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Account Id"
    },
    "contact_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact contact UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Contact Id"
    },
    "limit": {
      "default": 25,
      "description": "Maximum number of records to return in this page.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "McpPublicEventsAttendanceListInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "EventAppearanceV1": {
      "additionalProperties": false,
      "description": "One sighting on one roster.",
      "properties": {
        "event_id": {
          "format": "uuid",
          "title": "Event Id",
          "type": "string"
        },
        "event_name": {
          "maxLength": 500,
          "title": "Event Name",
          "type": "string"
        },
        "event_type": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Event Type"
        },
        "start_date": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Start Date"
        },
        "location_city": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location City"
        },
        "location_country": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location Country"
        },
        "venue": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Venue"
        },
        "url": {
          "anyOf": [
            {
              "maxLength": 1000,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        },
        "event_participant_id": {
          "format": "uuid",
          "title": "Event Participant Id",
          "type": "string"
        },
        "role": {
          "maxLength": 32,
          "title": "Role",
          "type": "string"
        },
        "person_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Name"
        },
        "person_title": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Title"
        },
        "company_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Name"
        },
        "rsvp_status": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Approval/RSVP state as the organizer's export spelled it.",
          "title": "Rsvp Status"
        },
        "checked_in": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "True/False when the roster spoke to attendance, null when it had no check-in column at all — null and false are different answers.",
          "title": "Checked In"
        },
        "role_attributes": {
          "additionalProperties": {
            "$ref": "#/$defs/JsonValue"
          },
          "description": "The untouched source bucket: ticket, revenue stage, order.",
          "title": "Role Attributes",
          "type": "object"
        },
        "match_method": {
          "default": "resolution",
          "enum": [
            "resolution",
            "domain",
            "email"
          ],
          "title": "Match Method",
          "type": "string"
        },
        "seen_on": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Seen On"
        }
      },
      "required": [
        "event_id",
        "event_name",
        "event_participant_id",
        "role"
      ],
      "title": "EventAppearanceV1",
      "type": "object"
    },
    "JsonValue": {}
  },
  "additionalProperties": false,
  "description": "V2 result for events.attendance.list.v2; preserves the established validators.",
  "properties": {
    "event_count": {
      "default": 0,
      "minimum": 0,
      "title": "Event Count",
      "type": "integer"
    },
    "appearance_count": {
      "default": 0,
      "minimum": 0,
      "title": "Appearance Count",
      "type": "integer"
    },
    "last_seen_on": {
      "anyOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Last Seen On"
    },
    "last_event_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Last Event Id"
    },
    "last_event_name": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Last Event Name"
    },
    "last_event_location": {
      "anyOf": [
        {
          "maxLength": 512,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Last Event Location"
    },
    "appearances": {
      "default": [],
      "items": {
        "$ref": "#/$defs/EventAppearanceV1"
      },
      "maxItems": 200,
      "title": "Appearances",
      "type": "array"
    }
  },
  "title": "PublicEventsAttendanceListResultV2",
  "type": "object"
}

Enrich event attendees

events.enrich.v2

Use when: Reveal contact details for named roster rows, usually the A/B tier from events.roster.get.v2.

Avoid when: Do not use this to find an attendee's colleagues; this only enriches the people who were there.

Effects: Calls the enrichment vendor. Billing happens when a contact is promoted, not here.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.enrich.v2",
      "arguments": {
        "event_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": {
    "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"
    },
    "event_id": {
      "description": "Exact event UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "participant_ids": {
      "default": [],
      "description": "Rows to enrich. Omit to enrich the whole roster — usually you want the A/B tier from events.roster.get.v2 with min_grade='B'.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 500,
      "title": "Participant Ids",
      "type": "array"
    },
    "force": {
      "default": false,
      "description": "Re-enrich rows that already have a result.",
      "title": "Force",
      "type": "boolean"
    }
  },
  "required": [
    "event_id"
  ],
  "title": "McpMcpPublicEventsEnrichInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.enrich.v2; preserves the established validators.",
  "properties": {
    "event_id": {
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "run_id": {
      "format": "uuid",
      "title": "Run Id",
      "type": "string"
    },
    "status": {
      "maxLength": 32,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    },
    "requested": {
      "default": 0,
      "minimum": 0,
      "title": "Requested",
      "type": "integer"
    }
  },
  "required": [
    "event_id",
    "run_id",
    "status"
  ],
  "title": "PublicEventsEnrichResultV2",
  "type": "object"
}

Event enrichment status

events.enrichment_status.get.v2

Use when: Check how far a roster enrichment run has got, including how many rows the vendor could not match.

Avoid when: Do not use this to poll grading — that is events.scoring_status.get.v2.

Effects: Reads current workspace state.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.enrichment_status.get.v2",
      "arguments": {
        "event_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": {
    "event_id": {
      "description": "Exact event UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    }
  },
  "required": [
    "event_id"
  ],
  "title": "McpPublicEventsEnrichmentStatusGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.enrichment_status.get.v2; preserves the established validators.",
  "properties": {
    "run_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Run Id"
    },
    "status": {
      "anyOf": [
        {
          "maxLength": 32,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "trigger": {
      "anyOf": [
        {
          "maxLength": 32,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Trigger"
    },
    "requested": {
      "default": 0,
      "minimum": 0,
      "title": "Requested",
      "type": "integer"
    },
    "processed": {
      "default": 0,
      "minimum": 0,
      "title": "Processed",
      "type": "integer"
    },
    "cached_reuse": {
      "default": 0,
      "minimum": 0,
      "title": "Cached Reuse",
      "type": "integer"
    },
    "enriched": {
      "default": 0,
      "minimum": 0,
      "title": "Enriched",
      "type": "integer"
    },
    "no_match": {
      "default": 0,
      "minimum": 0,
      "title": "No Match",
      "type": "integer"
    },
    "failed": {
      "default": 0,
      "minimum": 0,
      "title": "Failed",
      "type": "integer"
    },
    "error_message": {
      "anyOf": [
        {
          "maxLength": 2000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error Message"
    },
    "total_roster": {
      "default": 0,
      "minimum": 0,
      "title": "Total Roster",
      "type": "integer"
    },
    "total_enriched": {
      "default": 0,
      "minimum": 0,
      "title": "Total Enriched",
      "type": "integer"
    },
    "total_stale": {
      "default": 0,
      "minimum": 0,
      "title": "Total Stale",
      "type": "integer"
    }
  },
  "title": "PublicEventsEnrichmentStatusGetResultV2",
  "type": "object"
}

Preview an event roster import

events.import.preview.v2

Use when: Show what a guest list would land as in Hive Events before writing anything: column mapping, row counts, and which companies and people already exist. Send the file whole; the response's column_policy names any columns that look like source-system noise, and nothing is left out unless you send that choice back as exclude_columns.

Avoid when: Do not use this for people not tied to an event — that is prospects.import.preview.v2 — or for a company-only list, which is accounts.import.preview.v2.

Effects: Writes nothing. Returns an import_token that events.import.start.v2 commits as-is -- the exact rows and columns shown here.

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.

Invocation example using fictional fixtures
{
  "tool": "domain.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.import.preview.v2",
      "arguments": {
        "event_name": "Example event name",
        "participants": [
          {
            "company_name": "Example company",
            "person_email": "person@example.com",
            "person_name": "Example Person"
          }
        ]
      },
      "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": {
    "EventParticipantInputV1": {
      "additionalProperties": false,
      "description": "One roster row. Role defaults to attendee, which is what guest lists are.",
      "properties": {
        "role": {
          "default": "attendee",
          "enum": [
            "speaker",
            "sponsor",
            "exhibitor",
            "attendee",
            "organizer",
            "panelist",
            "host"
          ],
          "title": "Role",
          "type": "string"
        },
        "person_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Name"
        },
        "person_email": {
          "anyOf": [
            {
              "maxLength": 320,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Email"
        },
        "person_title": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Title"
        },
        "person_linkedin": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Linkedin"
        },
        "company_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Name"
        },
        "company_domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Domain"
        },
        "role_attributes": {
          "additionalProperties": {
            "$ref": "#/$defs/JsonValue"
          },
          "description": "Event metadata to preserve verbatim: rsvp_status, checked_in, waitlisted, ticket_type, registered_at.",
          "title": "Role Attributes",
          "type": "object"
        }
      },
      "title": "EventParticipantInputV1",
      "type": "object"
    },
    "JsonValue": {}
  },
  "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"
    },
    "event_name": {
      "description": "Event name used by the public events import preview input v2 operation.",
      "maxLength": 500,
      "minLength": 1,
      "title": "Event Name",
      "type": "string"
    },
    "event_date": {
      "anyOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Event date used by the public events import preview input v2 operation.",
      "title": "Event Date"
    },
    "event_type": {
      "anyOf": [
        {
          "maxLength": 64,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Event type used by the public events import preview input v2 operation.",
      "title": "Event Type"
    },
    "location_city": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Location city used by the public events import preview input v2 operation.",
      "title": "Location City"
    },
    "location_country": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Location country used by the public events import preview input v2 operation.",
      "title": "Location Country"
    },
    "venue": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Venue used by the public events import preview input v2 operation.",
      "title": "Venue"
    },
    "url": {
      "anyOf": [
        {
          "maxLength": 1000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Url used by the public events import preview input v2 operation.",
      "title": "Url"
    },
    "target_event_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Append the roster to this existing event instead of creating one. The event metadata fields are ignored when set.",
      "title": "Target Event Id"
    },
    "visibility": {
      "default": "private",
      "description": "Visibility used by the public events import preview input v2 operation.",
      "enum": [
        "private",
        "shared"
      ],
      "title": "Visibility",
      "type": "string"
    },
    "participants": {
      "default": [],
      "description": "Participants used by the public events import preview input v2 operation.",
      "items": {
        "$ref": "#/$defs/EventParticipantInputV1"
      },
      "maxItems": 2000,
      "title": "Participants",
      "type": "array"
    }
  },
  "required": [
    "event_name"
  ],
  "title": "McpPublicEventsImportPreviewInputV2",
  "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"
    },
    "ImportRowErrorV1": {
      "additionalProperties": false,
      "description": "One row the parser could not use. Row numbers are 1-based and header-aware.",
      "properties": {
        "row": {
          "minimum": 1,
          "title": "Row",
          "type": "integer"
        },
        "reason": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Reason",
          "type": "string"
        }
      },
      "required": [
        "row",
        "reason"
      ],
      "title": "ImportRowErrorV1",
      "type": "object"
    },
    "JsonValue": {}
  },
  "additionalProperties": false,
  "description": "V2 result for events.import.preview.v2; preserves the established validators.",
  "properties": {
    "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"
    },
    "rows_skipped": {
      "default": 0,
      "minimum": 0,
      "title": "Rows Skipped",
      "type": "integer"
    },
    "used_llm": {
      "default": false,
      "title": "Used Llm",
      "type": "boolean"
    },
    "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."
    },
    "column_mapping": {
      "additionalProperties": {
        "type": "string"
      },
      "title": "Column Mapping",
      "type": "object"
    },
    "parse_errors": {
      "default": [],
      "items": {
        "$ref": "#/$defs/ImportRowErrorV1"
      },
      "maxItems": 50,
      "title": "Parse Errors",
      "type": "array"
    },
    "matches_existing_accounts": {
      "default": 0,
      "minimum": 0,
      "title": "Matches Existing Accounts",
      "type": "integer"
    },
    "matches_existing_contacts": {
      "default": 0,
      "minimum": 0,
      "title": "Matches Existing Contacts",
      "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": "PublicEventsImportPreviewResultV2",
  "type": "object"
}

Import an event roster

events.import.start.v2

Use when: Land a guest list in Hive Events. Attendees are matched to existing accounts and contacts or created as new ones, and badged with the event's source; ICP scoring is a separate step (events.score.v2). Pass the import_token from the preview to commit exactly the rows and columns that were shown; sending data or column choices alongside a token is refused.

Avoid when: Do not use this for people not tied to an event — that is prospects.import.start.v2. Only source.kind is read here; source name and details are ignored (the badge is named after the event).

Effects: Creates an event and its participants. Attendees are matched or created as accounts and contacts in the background and badged with the event's source (record_source_id). Pass source.kind (workshop, event or webinar) to set the badge kind. Scores, enriches and sends nothing.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.import.start.v2",
      "arguments": {
        "event_name": "Example event name",
        "import_token": "use-the-exact-token-from-the-approved-preview"
      },
      "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": {
    "EventParticipantInputV1": {
      "additionalProperties": false,
      "description": "One roster row. Role defaults to attendee, which is what guest lists are.",
      "properties": {
        "role": {
          "default": "attendee",
          "enum": [
            "speaker",
            "sponsor",
            "exhibitor",
            "attendee",
            "organizer",
            "panelist",
            "host"
          ],
          "title": "Role",
          "type": "string"
        },
        "person_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Name"
        },
        "person_email": {
          "anyOf": [
            {
              "maxLength": 320,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Email"
        },
        "person_title": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Title"
        },
        "person_linkedin": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Linkedin"
        },
        "company_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Name"
        },
        "company_domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Domain"
        },
        "role_attributes": {
          "additionalProperties": {
            "$ref": "#/$defs/JsonValue"
          },
          "description": "Event metadata to preserve verbatim: rsvp_status, checked_in, waitlisted, ticket_type, registered_at.",
          "title": "Role Attributes",
          "type": "object"
        }
      },
      "title": "EventParticipantInputV1",
      "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"
    },
    "JsonValue": {}
  },
  "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"
    },
    "event_name": {
      "description": "Event name used by the public events import start input v2 operation.",
      "maxLength": 500,
      "minLength": 1,
      "title": "Event Name",
      "type": "string"
    },
    "event_date": {
      "anyOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Event date used by the public events import start input v2 operation.",
      "title": "Event Date"
    },
    "event_type": {
      "anyOf": [
        {
          "maxLength": 64,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Event type used by the public events import start input v2 operation.",
      "title": "Event Type"
    },
    "location_city": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Location city used by the public events import start input v2 operation.",
      "title": "Location City"
    },
    "location_country": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Location country used by the public events import start input v2 operation.",
      "title": "Location Country"
    },
    "venue": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Venue used by the public events import start input v2 operation.",
      "title": "Venue"
    },
    "url": {
      "anyOf": [
        {
          "maxLength": 1000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Url used by the public events import start input v2 operation.",
      "title": "Url"
    },
    "target_event_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Append the roster to this existing event instead of creating one. The event metadata fields are ignored when set.",
      "title": "Target Event Id"
    },
    "visibility": {
      "default": "private",
      "description": "Visibility used by the public events import start input v2 operation.",
      "enum": [
        "private",
        "shared"
      ],
      "title": "Visibility",
      "type": "string"
    },
    "participants": {
      "default": [],
      "description": "Participants used by the public events import start input v2 operation.",
      "items": {
        "$ref": "#/$defs/EventParticipantInputV1"
      },
      "maxItems": 2000,
      "title": "Participants",
      "type": "array"
    },
    "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). For events only `kind` is used (workshop, event or webinar): the event itself is the source."
    },
    "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": "Token from the matching preview. Reuses the exact rows that were previewed and skips re-normalising them.",
      "title": "Import Token"
    },
    "auto_enrich": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "When true, once this roster is graded the A/B tier is enriched and imported into Hive Base automatically. This spends Apollo credits and is off unless asked for. Leave unset to keep the workspace's existing choice. Grading still has to be started with events.score.v2 — importing alone never enriches anything.",
      "title": "Auto Enrich"
    }
  },
  "required": [
    "event_name"
  ],
  "title": "McpMcpPublicEventsImportStartInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "ImportRowErrorV1": {
      "additionalProperties": false,
      "description": "One row the parser could not use. Row numbers are 1-based and header-aware.",
      "properties": {
        "row": {
          "minimum": 1,
          "title": "Row",
          "type": "integer"
        },
        "reason": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Reason",
          "type": "string"
        }
      },
      "required": [
        "row",
        "reason"
      ],
      "title": "ImportRowErrorV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for events.import.start.v2; preserves the established validators.",
  "properties": {
    "event_id": {
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "source_event_id": {
      "maxLength": 500,
      "minLength": 1,
      "title": "Source Event Id",
      "type": "string"
    },
    "visibility": {
      "default": "private",
      "enum": [
        "private",
        "shared"
      ],
      "title": "Visibility",
      "type": "string"
    },
    "rows_parsed": {
      "default": 0,
      "minimum": 0,
      "title": "Rows Parsed",
      "type": "integer"
    },
    "rows_skipped": {
      "default": 0,
      "minimum": 0,
      "title": "Rows Skipped",
      "type": "integer"
    },
    "participants_inserted": {
      "default": 0,
      "minimum": 0,
      "title": "Participants Inserted",
      "type": "integer"
    },
    "participants_updated": {
      "default": 0,
      "minimum": 0,
      "title": "Participants Updated",
      "type": "integer"
    },
    "parse_errors": {
      "default": [],
      "items": {
        "$ref": "#/$defs/ImportRowErrorV1"
      },
      "maxItems": 50,
      "title": "Parse Errors",
      "type": "array"
    },
    "record_source_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Id of the source badge attached to the accounts and contacts this roster creates.",
      "title": "Record Source Id"
    },
    "tags": {
      "default": [],
      "description": "Account tags added to every account this import created or matched.",
      "items": {
        "type": "string"
      },
      "title": "Tags",
      "type": "array"
    }
  },
  "required": [
    "event_id",
    "source_event_id"
  ],
  "title": "PublicEventsImportStartResultV2",
  "type": "object"
}

Discover contacts at an attendee's company

events.participant.discover_contacts.v2

Use when: Find other people at an attendee's company when you already have a reason to widen beyond the person who attended.

Avoid when: Do not reach for this on a fresh roster. The attendee is the warm lead; their colleagues are not, and this bills per person revealed.

Effects: Queues a vendor search that creates contacts and meters enrichment per contact created.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.participant.discover_contacts.v2",
      "arguments": {
        "event_id": "00000000-0000-4000-8000-000000000001",
        "event_participant_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": {
    "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"
    },
    "event_id": {
      "description": "Exact event UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "event_participant_id": {
      "description": "Exact event participant UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Participant Id",
      "type": "string"
    },
    "titles": {
      "default": [],
      "description": "Job titles to look for. Omit to use the workspace's config.",
      "items": {
        "type": "string"
      },
      "maxItems": 25,
      "title": "Titles",
      "type": "array"
    },
    "per_page": {
      "anyOf": [
        {
          "maximum": 100,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Per page used by the public events participant discover contacts input v2 operation.",
      "title": "Per Page"
    }
  },
  "required": [
    "event_id",
    "event_participant_id"
  ],
  "title": "McpMcpPublicEventsParticipantDiscoverContactsInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.participant.discover_contacts.v2; preserves the established validators.",
  "properties": {
    "job_id": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Job Id",
      "type": "string"
    },
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "account_created": {
      "default": false,
      "title": "Account Created",
      "type": "boolean"
    }
  },
  "required": [
    "job_id",
    "account_id"
  ],
  "title": "PublicEventsParticipantDiscoverContactsResultV2",
  "type": "object"
}

Promote an attendee into Hive Base

events.participant.promote.v2

Use when: Turn one roster row into a real account and contact once you have decided to pursue them.

Avoid when: Do not use this to import a whole roster; stage that with events.import.start.v2 and promote what grades well.

Effects: Creates or reuses an account and contact. Meters enrichment only when vendor data was used.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.participant.promote.v2",
      "arguments": {
        "event_id": "00000000-0000-4000-8000-000000000001",
        "event_participant_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": {
    "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"
    },
    "event_id": {
      "description": "Exact event UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "event_participant_id": {
      "description": "Exact event participant UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Participant Id",
      "type": "string"
    }
  },
  "required": [
    "event_id",
    "event_participant_id"
  ],
  "title": "McpMcpPublicEventsParticipantPromoteInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.participant.promote.v2; preserves the established validators.",
  "properties": {
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "contact_id": {
      "format": "uuid",
      "title": "Contact Id",
      "type": "string"
    },
    "account_created": {
      "default": false,
      "title": "Account Created",
      "type": "boolean"
    },
    "contact_created": {
      "default": false,
      "title": "Contact Created",
      "type": "boolean"
    }
  },
  "required": [
    "account_id",
    "contact_id"
  ],
  "title": "PublicEventsParticipantPromoteResultV2",
  "type": "object"
}

List an event roster

events.roster.get.v2

Use when: Read who was on an event's guest list, with their ICP grade once scored. Filter with min_grade='B' for the tier worth enriching.

Avoid when: Do not use this to find events — that is events.search.v2.

Effects: Reads current workspace state.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.roster.get.v2",
      "arguments": {
        "event_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": {
    "event_id": {
      "description": "Exact event UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "role": {
      "anyOf": [
        {
          "enum": [
            "speaker",
            "sponsor",
            "exhibitor",
            "attendee",
            "organizer",
            "panelist",
            "host"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Role used by the events roster get input v2 operation.",
      "title": "Role"
    },
    "min_grade": {
      "anyOf": [
        {
          "enum": [
            "A",
            "B",
            "C",
            "D",
            "E",
            "F"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only rows graded at or above this ICP grade. Pass 'B' for the A/B tier worth enriching. Unresolved and unscored rows are excluded.",
      "title": "Min Grade"
    },
    "offset": {
      "default": 0,
      "description": "Zero-based number of matching records to skip for pagination.",
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "limit": {
      "default": 50,
      "description": "Maximum number of records to return in this page.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "event_id"
  ],
  "title": "McpEventsRosterGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "EventRosterItemV1": {
      "additionalProperties": false,
      "description": "One roster row with everything needed to decide whether to promote it.",
      "properties": {
        "event_participant_id": {
          "format": "uuid",
          "title": "Event Participant Id",
          "type": "string"
        },
        "role": {
          "maxLength": 32,
          "minLength": 1,
          "title": "Role",
          "type": "string"
        },
        "person_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Name"
        },
        "person_email": {
          "anyOf": [
            {
              "maxLength": 320,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Email"
        },
        "person_title": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Title"
        },
        "person_linkedin": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Linkedin"
        },
        "company_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Name"
        },
        "company_domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Domain"
        },
        "role_attributes": {
          "additionalProperties": {
            "$ref": "#/$defs/JsonValue"
          },
          "description": "Event metadata preserved from the source: RSVP, check-in, ticket.",
          "title": "Role Attributes",
          "type": "object"
        },
        "account_grade": {
          "anyOf": [
            {
              "maxLength": 2,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Account Grade"
        },
        "account_score": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Account Score"
        },
        "person_grade": {
          "anyOf": [
            {
              "maxLength": 2,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Grade"
        },
        "person_score": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Person Score"
        },
        "composite_score": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Composite Score"
        },
        "resolution_status": {
          "anyOf": [
            {
              "maxLength": 32,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Resolution Status"
        },
        "account_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Account Id"
        },
        "contact_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Contact Id"
        },
        "enrichment_status": {
          "anyOf": [
            {
              "maxLength": 32,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "null when never enriched; 'success' rows can be promoted.",
          "title": "Enrichment Status"
        },
        "is_materialized": {
          "default": false,
          "title": "Is Materialized",
          "type": "boolean"
        },
        "is_competitor": {
          "default": false,
          "description": "Competitors carry no grade or account link by design.",
          "title": "Is Competitor",
          "type": "boolean"
        },
        "in_active_loop": {
          "default": false,
          "description": "Promoting this interrupts and branches a running Hiveloop.",
          "title": "In Active Loop",
          "type": "boolean"
        }
      },
      "required": [
        "event_participant_id",
        "role"
      ],
      "title": "EventRosterItemV1",
      "type": "object"
    },
    "JsonValue": {}
  },
  "additionalProperties": false,
  "properties": {
    "items": {
      "default": [],
      "items": {
        "$ref": "#/$defs/EventRosterItemV1"
      },
      "maxItems": 200,
      "title": "Items",
      "type": "array"
    },
    "total": {
      "default": 0,
      "minimum": 0,
      "title": "Total",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "EventsRosterGetResultV2",
  "type": "object"
}

Grade an event roster

events.score.v2

Use when: Grade a staged roster against the workspace ICP so you can see which attendees are worth pursuing.

Avoid when: Do not use this to grade accounts generally — that is icp.grading.start.v2 with a scope.

Effects: Resolves the roster into Hive Base first, creating candidate accounts and contacts, then meters scoring per account and per contact.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.score.v2",
      "arguments": {
        "event_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": {
    "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"
    },
    "event_id": {
      "description": "Exact event UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    },
    "score_all_roles": {
      "default": false,
      "description": "Include plain attendees. Off by default because it costs more.",
      "title": "Score All Roles",
      "type": "boolean"
    },
    "persons_per_company_cap": {
      "default": 3,
      "description": "Persons per company cap used by the public events score input v2 operation.",
      "maximum": 20,
      "minimum": 1,
      "title": "Persons Per Company Cap",
      "type": "integer"
    },
    "event_participant_ids": {
      "default": [],
      "description": "Restrict scoring to these rows. Omit to score the roster.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 500,
      "title": "Event Participant Ids",
      "type": "array"
    }
  },
  "required": [
    "event_id"
  ],
  "title": "McpMcpPublicEventsScoreInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.score.v2; preserves the established validators.",
  "properties": {
    "rubric_id": {
      "format": "uuid",
      "title": "Rubric Id",
      "type": "string"
    },
    "accounts_to_score": {
      "default": 0,
      "minimum": 0,
      "title": "Accounts To Score",
      "type": "integer"
    },
    "persons_to_score": {
      "default": 0,
      "minimum": 0,
      "title": "Persons To Score",
      "type": "integer"
    },
    "account_chunks_dispatched": {
      "default": 0,
      "minimum": 0,
      "title": "Account Chunks Dispatched",
      "type": "integer"
    },
    "person_chunks_dispatched": {
      "default": 0,
      "minimum": 0,
      "title": "Person Chunks Dispatched",
      "type": "integer"
    },
    "persona_scoring_skipped": {
      "default": false,
      "title": "Persona Scoring Skipped",
      "type": "boolean"
    },
    "persona_scoring_skip_reason": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Persona Scoring Skip Reason"
    },
    "unresolved_participants": {
      "default": 0,
      "minimum": 0,
      "title": "Unresolved Participants",
      "type": "integer"
    }
  },
  "required": [
    "rubric_id"
  ],
  "title": "PublicEventsScoreResultV2",
  "type": "object"
}

Event grading status

events.scoring_status.get.v2

Use when: Check how far a roster grading run has got and the grade spread so far.

Avoid when: Do not use this to poll an import — that is jobs.status.get.v2.

Effects: Reads current workspace state.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.scoring_status.get.v2",
      "arguments": {
        "event_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": {
    "event_id": {
      "description": "Exact event UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Event Id",
      "type": "string"
    }
  },
  "required": [
    "event_id"
  ],
  "title": "McpPublicEventsScoringStatusGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for events.scoring_status.get.v2; preserves the established validators.",
  "properties": {
    "grade_counts": {
      "additionalProperties": {
        "type": "integer"
      },
      "description": "Account grades only — A, B, C, D and unscored.",
      "title": "Grade Counts",
      "type": "object"
    },
    "total_resolved": {
      "default": 0,
      "minimum": 0,
      "title": "Total Resolved",
      "type": "integer"
    },
    "total_accounts": {
      "default": 0,
      "minimum": 0,
      "title": "Total Accounts",
      "type": "integer"
    },
    "total_contacts": {
      "default": 0,
      "minimum": 0,
      "title": "Total Contacts",
      "type": "integer"
    },
    "in_progress_runs": {
      "default": 0,
      "minimum": 0,
      "title": "In Progress Runs",
      "type": "integer"
    },
    "completed_runs": {
      "default": 0,
      "minimum": 0,
      "title": "Completed Runs",
      "type": "integer"
    },
    "failed_runs": {
      "default": 0,
      "minimum": 0,
      "title": "Failed Runs",
      "type": "integer"
    },
    "last_run_at": {
      "anyOf": [
        {
          "maxLength": 64,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Last Run At"
    }
  },
  "title": "PublicEventsScoringStatusGetResultV2",
  "type": "object"
}

List events

events.search.v2

Use when: Find events staged in Hive Events, with roster counts, so you can pick one to work.

Avoid when: Do not use this to read who was there — that is events.roster.get.v2.

Effects: Reads current workspace state.

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.events.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "events.search.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": {
    "upcoming_only": {
      "default": false,
      "description": "Upcoming only used by the events search input v2 operation.",
      "title": "Upcoming Only",
      "type": "boolean"
    },
    "main_only": {
      "default": false,
      "description": "Exclude side events.",
      "title": "Main Only",
      "type": "boolean"
    },
    "offset": {
      "default": 0,
      "description": "Zero-based number of matching records to skip for pagination.",
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "limit": {
      "default": 25,
      "description": "Maximum number of records to return in this page.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "McpEventsSearchInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "EventSummaryV1": {
      "additionalProperties": false,
      "properties": {
        "event_id": {
          "format": "uuid",
          "title": "Event Id",
          "type": "string"
        },
        "name": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "start_date": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Start Date"
        },
        "end_date": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "End Date"
        },
        "location_city": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location City"
        },
        "location_country": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location Country"
        },
        "venue": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Venue"
        },
        "url": {
          "anyOf": [
            {
              "maxLength": 1000,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        },
        "event_type": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Event Type"
        },
        "role_counts": {
          "additionalProperties": {
            "type": "integer"
          },
          "title": "Role Counts",
          "type": "object"
        },
        "side_event_count": {
          "default": 0,
          "minimum": 0,
          "title": "Side Event Count",
          "type": "integer"
        }
      },
      "required": [
        "event_id",
        "name"
      ],
      "title": "EventSummaryV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "events": {
      "default": [],
      "items": {
        "$ref": "#/$defs/EventSummaryV1"
      },
      "maxItems": 200,
      "title": "Events",
      "type": "array"
    }
  },
  "title": "EventsSearchResultV2",
  "type": "object"
}