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

Intelligence

domain.intelligence.v2

Use existing account search for saved companies and discovery preview for new companies. Inspect actor-selected ICP rubrics and account scope before grading/research; explain the quote and obtain exact authorization. Poll job/discovery status. Analytics reports describe recorded evidence, not causal attribution or guaranteed historical coverage.

Read an account's buying committee

accounts.buyer_groups.get.v2

Use when: See who is on an account and what buying role each holds, ordered by influence.

Avoid when: Do not use this to search people across the workspace — that is contacts.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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "accounts.buyer_groups.get.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": {
      "description": "Exact account UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    }
  },
  "required": [
    "account_id"
  ],
  "title": "McpPublicAccountsBuyerGroupsGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "BuyerGroupMemberV1": {
      "additionalProperties": false,
      "properties": {
        "contact_id": {
          "format": "uuid",
          "title": "Contact Id",
          "type": "string"
        },
        "first_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "First Name"
        },
        "last_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Last Name"
        },
        "email": {
          "anyOf": [
            {
              "maxLength": 320,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Email"
        },
        "title": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "linkedin_url": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Linkedin Url"
        },
        "buyer_role": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Buyer Role"
        },
        "needs_review": {
          "default": false,
          "description": "The classifier was below its 0.70 confidence threshold, so the role is a suggestion held for review, not a committed value.",
          "title": "Needs Review",
          "type": "boolean"
        }
      },
      "required": [
        "contact_id"
      ],
      "title": "BuyerGroupMemberV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for accounts.buyer_groups.get.v2; preserves the established validators.",
  "properties": {
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "total_contacts": {
      "default": 0,
      "minimum": 0,
      "title": "Total Contacts",
      "type": "integer"
    },
    "roles_identified": {
      "default": 0,
      "minimum": 0,
      "title": "Roles Identified",
      "type": "integer"
    },
    "unclassified_contacts": {
      "default": 0,
      "minimum": 0,
      "title": "Unclassified Contacts",
      "type": "integer"
    },
    "sorted_roles": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 32,
      "title": "Sorted Roles",
      "type": "array"
    },
    "members": {
      "default": [],
      "items": {
        "$ref": "#/$defs/BuyerGroupMemberV1"
      },
      "maxItems": 500,
      "title": "Members",
      "type": "array"
    },
    "needs_review": {
      "default": [],
      "items": {
        "$ref": "#/$defs/BuyerGroupMemberV1"
      },
      "maxItems": 200,
      "title": "Needs Review",
      "type": "array"
    }
  },
  "required": [
    "account_id"
  ],
  "title": "PublicAccountsBuyerGroupsGetResultV2",
  "type": "object"
}

Classify contacts into buying roles

accounts.classify_buyers.v2

Use when: Place an account's existing contacts into buying roles. Declines when the account has too few contacts to be a committee.

Avoid when: Do not use this to find people you do not have; it only organises the contacts already on the account.

Effects: Queues classification and meters one unit per contact classified. Poll jobs.status.get.v2.

Cost: buyer_classification 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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "accounts.classify_buyers.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": {
    "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"
    },
    "account_id": {
      "description": "Exact account UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "methodology": {
      "anyOf": [
        {
          "maxLength": 64,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sales methodology whose role list to classify against. Omit for the workspace default.",
      "title": "Methodology"
    },
    "min_contacts": {
      "default": 2,
      "description": "Do nothing unless the account has at least this many contacts. One contact is not a committee — labelling a solo founder the economic buyer costs a credit and says nothing. Pass 1 to classify regardless.",
      "maximum": 1000,
      "minimum": 1,
      "title": "Min Contacts",
      "type": "integer"
    },
    "include_classified": {
      "default": false,
      "description": "By default only contacts with no committed buyer_role are sent, so re-running is cheap. Set true to reclassify everyone.",
      "title": "Include Classified",
      "type": "boolean"
    }
  },
  "required": [
    "account_id"
  ],
  "title": "McpMcpPublicAccountsClassifyBuyersInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for accounts.classify_buyers.v2; preserves the established validators.",
  "properties": {
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "job_id": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Job Id"
    },
    "queued": {
      "default": false,
      "title": "Queued",
      "type": "boolean"
    },
    "contact_count": {
      "default": 0,
      "minimum": 0,
      "title": "Contact Count",
      "type": "integer"
    },
    "skipped_reason": {
      "anyOf": [
        {
          "enum": [
            "below_min_contacts",
            "nothing_unclassified"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Skipped Reason"
    }
  },
  "required": [
    "account_id"
  ],
  "title": "PublicAccountsClassifyBuyersResultV2",
  "type": "object"
}

Preview account discovery

accounts.discovery.preview.v2

Use when: You want new companies outside the workspace and need the exact rubric, order size, credit quote, and conflict state before starting.

Avoid when: You are searching accounts already in Hivekind; use accounts.search.v2 instead.

Effects: No write, provider query, grading, account creation, or charge.

Cost: Free. Returns the exact maximum delivery charge. Gateway rate code: none; downstream billing may apply.

Access: accounts:read. 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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "accounts.discovery.preview.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": {
    "count": {
      "default": 25,
      "description": "How many accounts to deliver. This is an order size, not a search limit: raising it grades proportionally more companies and costs proportionally more.",
      "maximum": 100,
      "minimum": 1,
      "title": "Count",
      "type": "integer"
    },
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Rubric to discover against. Omit for the caller's active one.",
      "title": "Rubric Id"
    },
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Who the delivered accounts are assigned to. Omit to let it resolve: to you when you grade against this rubric, otherwise to its sole holder. An account is graded against its owner's rubric, so an owner who does not hold this one is refused, as is a rubric nobody holds — preview it to see the resolved owner, or the reason there is none.",
      "title": "Owner Id"
    },
    "recompile": {
      "default": false,
      "description": "Re-author the Clay query instead of reusing the pinned one. Authoring is an LLM step and is not stable, so the new query will not be the old query. Use this when the rubric itself has changed — not to retry a week that returned few accounts.",
      "title": "Recompile",
      "type": "boolean"
    }
  },
  "title": "McpAccountsDiscoveryPreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "rubric_id": {
      "format": "uuid",
      "title": "Rubric Id",
      "type": "string"
    },
    "rubric_name": {
      "default": "",
      "maxLength": 255,
      "title": "Rubric Name",
      "type": "string"
    },
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Id"
    },
    "owner_name": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Name"
    },
    "owner_blocker": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner Blocker"
    },
    "requested_count": {
      "maximum": 100,
      "minimum": 1,
      "title": "Requested Count",
      "type": "integer"
    },
    "credits_per_account": {
      "minimum": 0,
      "title": "Credits Per Account",
      "type": "number"
    },
    "estimated_credits": {
      "minimum": 0,
      "title": "Estimated Credits",
      "type": "number"
    },
    "available_credits": {
      "minimum": 0,
      "title": "Available Credits",
      "type": "number"
    },
    "can_afford": {
      "title": "Can Afford",
      "type": "boolean"
    },
    "recompile": {
      "default": false,
      "title": "Recompile",
      "type": "boolean"
    },
    "in_flight_run_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "In Flight Run Id"
    },
    "in_flight_status": {
      "anyOf": [
        {
          "maxLength": 32,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "In Flight Status"
    }
  },
  "required": [
    "rubric_id",
    "requested_count",
    "credits_per_account",
    "estimated_credits",
    "available_credits",
    "can_afford"
  ],
  "title": "AccountsDiscoveryPreviewResultV2",
  "type": "object"
}

Start account discovery

accounts.discovery.start.v2

Use when: You approved the exact order returned by accounts.discovery.preview.v2 and want to discover, grade, and add new matching companies.

Avoid when: You have not previewed the order, need existing accounts, or another run for the rubric is active.

Effects: Queues a background provider workflow and adds delivered accounts. Poll accounts.discovery.status.get.v2.

Cost: Billed per account delivered at the previewed rate; failed and undelivered accounts are free. 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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "accounts.discovery.start.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": {
    "count": {
      "default": 25,
      "description": "How many accounts to deliver. This is an order size, not a search limit: raising it grades proportionally more companies and costs proportionally more.",
      "maximum": 100,
      "minimum": 1,
      "title": "Count",
      "type": "integer"
    },
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Rubric to discover against. Omit for the caller's active one.",
      "title": "Rubric Id"
    },
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Who the delivered accounts are assigned to. Omit to let it resolve: to you when you grade against this rubric, otherwise to its sole holder. An account is graded against its owner's rubric, so an owner who does not hold this one is refused, as is a rubric nobody holds — preview it to see the resolved owner, or the reason there is none.",
      "title": "Owner Id"
    },
    "recompile": {
      "default": false,
      "description": "Re-author the Clay query instead of reusing the pinned one. Authoring is an LLM step and is not stable, so the new query will not be the old query. Use this when the rubric itself has changed — not to retry a week that returned few accounts.",
      "title": "Recompile",
      "type": "boolean"
    },
    "action_proposal_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional. Hivekind fills this from the MCP consent grant.",
      "title": "Action Proposal Id"
    }
  },
  "title": "McpMcpAccountsDiscoveryStartInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "run_id": {
      "format": "uuid",
      "title": "Run Id",
      "type": "string"
    },
    "rubric_id": {
      "format": "uuid",
      "title": "Rubric Id",
      "type": "string"
    },
    "requested_count": {
      "minimum": 0,
      "title": "Requested Count",
      "type": "integer"
    },
    "status": {
      "default": "pending",
      "enum": [
        "pending",
        "planning",
        "harvesting",
        "scoring",
        "succeeded",
        "failed",
        "blocked"
      ],
      "title": "Status",
      "type": "string"
    },
    "queued": {
      "default": false,
      "title": "Queued",
      "type": "boolean"
    },
    "pool_available": {
      "default": 0,
      "minimum": 0,
      "title": "Pool Available",
      "type": "integer"
    }
  },
  "required": [
    "run_id",
    "rubric_id",
    "requested_count"
  ],
  "title": "AccountsDiscoveryStartResultV2",
  "type": "object"
}

Get account discovery status

accounts.discovery.status.get.v2

Use when: You have a discovery run_id, or need the latest run for an exact rubric, and want progress plus ranked delivered accounts.

Avoid when: You want to create a new order; preview it first.

Effects: Returns bounded progress, limitations, and delivered account IDs. 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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "accounts.discovery.status.get.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": {
    "run_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Omit for the most recent run in this workspace.",
      "title": "Run Id"
    },
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Narrows the 'most recent run' lookup to one rubric. Ignored when run_id is given.",
      "title": "Rubric Id"
    }
  },
  "title": "McpAccountsDiscoveryStatusInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "DiscoveredAccountV1": {
      "additionalProperties": false,
      "properties": {
        "account_id": {
          "format": "uuid",
          "title": "Account Id",
          "type": "string"
        },
        "name": {
          "maxLength": 512,
          "title": "Name",
          "type": "string"
        },
        "domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domain"
        },
        "industry": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Industry"
        },
        "icp_score": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Icp Score"
        },
        "icp_grade": {
          "anyOf": [
            {
              "maxLength": 8,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Icp Grade"
        },
        "rank": {
          "minimum": 1,
          "title": "Rank",
          "type": "integer"
        }
      },
      "required": [
        "account_id",
        "name",
        "rank"
      ],
      "title": "DiscoveredAccountV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "run_id": {
      "format": "uuid",
      "title": "Run Id",
      "type": "string"
    },
    "rubric_id": {
      "format": "uuid",
      "title": "Rubric Id",
      "type": "string"
    },
    "status": {
      "enum": [
        "pending",
        "planning",
        "harvesting",
        "scoring",
        "succeeded",
        "failed",
        "blocked"
      ],
      "title": "Status",
      "type": "string"
    },
    "requested_count": {
      "default": 0,
      "minimum": 0,
      "title": "Requested Count",
      "type": "integer"
    },
    "delivered_count": {
      "default": 0,
      "minimum": 0,
      "title": "Delivered Count",
      "type": "integer"
    },
    "short_delivery": {
      "default": false,
      "title": "Short Delivery",
      "type": "boolean"
    },
    "pool_remaining": {
      "default": 0,
      "minimum": 0,
      "title": "Pool Remaining",
      "type": "integer"
    },
    "unsearchable": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Unsearchable",
      "type": "array"
    },
    "warnings": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Warnings",
      "type": "array"
    },
    "accounts": {
      "default": [],
      "items": {
        "$ref": "#/$defs/DiscoveredAccountV1"
      },
      "maxItems": 100,
      "title": "Accounts",
      "type": "array"
    },
    "started_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Started At"
    },
    "completed_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Completed At"
    },
    "error_message": {
      "anyOf": [
        {
          "maxLength": 2000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error Message"
    }
  },
  "required": [
    "run_id",
    "rubric_id",
    "status"
  ],
  "title": "AccountsDiscoveryStatusResultV2",
  "type": "object"
}

Account research

accounts.research.v2

Use when: Run billed research for one account (evidence, fit). Does not send mail.

Avoid when: Do not use this to list accounts or to launch a campaign.

Effects: May change workspace state or start work; describe before invoking.

Cost: account_research Gateway rate code: account_research.

Access: accounts:read, research:run. 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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "accounts.research.v2",
      "arguments": {
        "account_id": "00000000-0000-4000-8000-000000000001",
        "name": "Example name",
        "objective": "Example objective"
      },
      "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": {
      "description": "Exact account UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "name": {
      "description": "Human-readable name for the record.",
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "domain": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Domain used by the public accounts research input v2 operation.",
      "title": "Domain"
    },
    "objective": {
      "description": "Plain-language outcome the user wants from this operation.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Objective",
      "type": "string"
    }
  },
  "required": [
    "account_id",
    "name",
    "objective"
  ],
  "title": "McpPublicAccountsResearchInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "EvidenceFindingV1": {
      "additionalProperties": false,
      "properties": {
        "claim": {
          "maxLength": 2000,
          "minLength": 1,
          "title": "Claim",
          "type": "string"
        },
        "source_url": {
          "anyOf": [
            {
              "format": "uri",
              "maxLength": 2083,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Source Url"
        },
        "source_label": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Source Label",
          "type": "string"
        },
        "observed_at": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Observed At"
        }
      },
      "required": [
        "claim",
        "source_label"
      ],
      "title": "EvidenceFindingV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for accounts.research.v2; preserves the established validators.",
  "properties": {
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "summary": {
      "maxLength": 4000,
      "minLength": 1,
      "title": "Summary",
      "type": "string"
    },
    "findings": {
      "default": [],
      "items": {
        "$ref": "#/$defs/EvidenceFindingV1"
      },
      "title": "Findings",
      "type": "array"
    }
  },
  "required": [
    "account_id",
    "summary"
  ],
  "title": "PublicAccountsResearchResultV2",
  "type": "object"
}

Campaign and loop execution metrics

analytics.campaigns.get.v2

Use when: Use the existing Core workflow: Campaign and loop execution metrics. Loop execution counts; no program spend or causal ROI.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.campaigns.get.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": {
    "time_period": {
      "default": "quarter",
      "description": "Time period used by the analytics campaigns get input v2 operation.",
      "enum": [
        "day",
        "week",
        "month",
        "quarter"
      ],
      "title": "Time Period",
      "type": "string"
    }
  },
  "title": "McpAnalyticsCampaignsGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "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": "AnalyticsResultV2",
  "type": "object"
}

Recorded outcome counts

analytics.outcomes.get.v2

Use when: Use the existing Core workflow: Recorded outcome counts. Recorded outcomes and unmatched records; no causal attribution or commercial commitments.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.outcomes.get.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": {
    "period": {
      "default": "quarter",
      "description": "Backend-supported reporting window. Quarter is 90 days, not fiscal-quarter history.",
      "enum": [
        "7d",
        "30d",
        "quarter"
      ],
      "title": "Period",
      "type": "string"
    }
  },
  "title": "McpPublicAnalyticsOutcomesGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for analytics.outcomes.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": "PublicAnalyticsOutcomesGetResultV2",
  "type": "object"
}

Revenue outcome overview

analytics.overview.get.v2

Use when: Use the existing Core workflow: Revenue outcome overview. Aggregate KPIs; not a historical rep-by-tier cohort funnel.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.overview.get.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": {
    "period": {
      "default": "quarter",
      "description": "Backend-supported reporting window. Quarter is 90 days, not fiscal-quarter history.",
      "enum": [
        "7d",
        "30d",
        "quarter"
      ],
      "title": "Period",
      "type": "string"
    }
  },
  "title": "McpAnalyticsOverviewGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "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": "AnalyticsResultV2",
  "type": "object"
}

Pipeline snapshot comparison

analytics.pipeline.compare.v2

Use when: Use the existing Core workflow: Pipeline snapshot comparison. Compare available snapshots; not eight-quarter win/loss cohorts or a commitment baseline.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.pipeline.compare.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": {
    "comparison_days": {
      "default": 90,
      "description": "Comparison days used by the analytics pipeline compare input v2 operation.",
      "maximum": 3650,
      "minimum": 1,
      "title": "Comparison Days",
      "type": "integer"
    },
    "current_snapshot_date": {
      "anyOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact available snapshot date; requires previous_snapshot_date.",
      "title": "Current Snapshot Date"
    },
    "previous_snapshot_date": {
      "anyOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Earlier available snapshot date; requires current_snapshot_date.",
      "title": "Previous Snapshot Date"
    }
  },
  "title": "McpAnalyticsPipelineCompareInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "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": "AnalyticsResultV2",
  "type": "object"
}

Available pipeline snapshot dates

analytics.pipeline.dates.get.v2

Use when: Use the existing Core workflow: Available pipeline snapshot dates. Available snapshots and periods only; resolve exact comparison dates before requesting historical analysis.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.pipeline.dates.get.v2",
      "arguments": {},
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {},
  "title": "McpAnalyticsPipelineDatesGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "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": "AnalyticsResultV2",
  "type": "object"
}

Pre-pipeline funnel and owner coverage

analytics.readiness.get.v2

Use when: Use the existing Core workflow: Pre-pipeline funnel and owner coverage. Current readiness and owner scorecard; not historical owner/tier conversion.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.readiness.get.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": {
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Existing workspace member UUID; omitted means workspace scope.",
      "title": "Owner Id"
    },
    "owner_scope": {
      "default": "any",
      "description": "Use mine for the authenticated actor; do not guess or send the actor identity. Cannot combine mine with owner_id.",
      "enum": [
        "any",
        "mine"
      ],
      "title": "Owner Scope",
      "type": "string"
    }
  },
  "title": "McpPublicAnalyticsReadinessGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for analytics.readiness.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": "PublicAnalyticsReadinessGetResultV2",
  "type": "object"
}

LinkedIn individual and team match coverage

analytics.relationships.coverage.v2

Use when: Use the existing Core workflow: LinkedIn individual and team match coverage. Consented LinkedIn match coverage only; not board/investor/advisor paths, relationship strength, or proof that an unmatched account is cold.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.relationships.coverage.v2",
      "arguments": {},
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {},
  "title": "McpPublicAnalyticsRelationshipsCoverageInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for analytics.relationships.coverage.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": "PublicAnalyticsRelationshipsCoverageResultV2",
  "type": "object"
}

Signal geography and coverage

analytics.signals.geography.get.v2

Use when: Use the existing Core workflow: Signal geography and coverage. Recorded signals by geography; not collector completeness, urgency scoring, or a notification subscription.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.signals.geography.get.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": {
    "start_date": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Start date used by the analytics signals geography get input v2 operation.",
      "title": "Start Date"
    },
    "end_date": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "End date used by the analytics signals geography get input v2 operation.",
      "title": "End Date"
    },
    "owner_id": {
      "default": [],
      "description": "Exact owner UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Owner Id",
      "type": "array"
    },
    "region": {
      "default": [],
      "description": "Region used by the analytics signals geography get input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Region",
      "type": "array"
    },
    "signal_type": {
      "default": [],
      "description": "Signal type used by the analytics signals geography get input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Signal Type",
      "type": "array"
    },
    "icp_grade": {
      "default": [],
      "description": "Icp grade used by the analytics signals geography get input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 8,
      "title": "Icp Grade",
      "type": "array"
    },
    "granularity": {
      "default": "region",
      "description": "Granularity used by the analytics signals geography get input v2 operation.",
      "enum": [
        "city",
        "state",
        "country",
        "region"
      ],
      "title": "Granularity",
      "type": "string"
    },
    "signal_scope": {
      "default": "important",
      "description": "Signal scope used by the analytics signals geography get input v2 operation.",
      "enum": [
        "important",
        "all"
      ],
      "title": "Signal Scope",
      "type": "string"
    },
    "owner_scope": {
      "default": "any",
      "description": "Use mine for the authenticated actor; do not guess or send the actor identity. Cannot combine mine with owner_id.",
      "enum": [
        "any",
        "mine"
      ],
      "title": "Owner Scope",
      "type": "string"
    }
  },
  "title": "McpAnalyticsSignalsGeographyGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "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": "AnalyticsResultV2",
  "type": "object"
}

Tier and ICP account coverage

analytics.tiers.get.v2

Use when: Use the existing Core workflow: Tier and ICP account coverage. Current tier/grade matrix and paginated list; no historical tier reassignment.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "analytics.tiers.get.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": {
    "owner_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Existing workspace member UUID; omitted means workspace scope.",
      "title": "Owner Id"
    },
    "tier": {
      "anyOf": [
        {
          "maxLength": 64,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Tier used by the public analytics tiers get input v2 operation.",
      "title": "Tier"
    },
    "icp_grade": {
      "anyOf": [
        {
          "maxLength": 32,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Icp grade used by the public analytics tiers get input v2 operation.",
      "title": "Icp Grade"
    },
    "industry": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Industry used by the public analytics tiers get input v2 operation.",
      "title": "Industry"
    },
    "limit": {
      "default": 100,
      "description": "Maximum number of records to return in this page.",
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "description": "Zero-based number of matching records to skip for pagination.",
      "maximum": 1000000,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "view": {
      "default": "accounts",
      "description": "View used by the public analytics tiers get input v2 operation.",
      "enum": [
        "accounts",
        "contacts"
      ],
      "title": "View",
      "type": "string"
    },
    "owner_scope": {
      "default": "any",
      "description": "Use mine for the authenticated actor; do not guess or send the actor identity. Cannot combine mine with owner_id.",
      "enum": [
        "any",
        "mine"
      ],
      "title": "Owner Scope",
      "type": "string"
    }
  },
  "title": "McpPublicAnalyticsTiersGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for analytics.tiers.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": "PublicAnalyticsTiersGetResultV2",
  "type": "object"
}

Account score evidence and rubric

icp.account.breakdown.get.v2

Use when: Use the existing Core workflow: Account score evidence and rubric. Existing score breakdown and the rubric actually used, not new evaluation.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.account.breakdown.get.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": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    }
  },
  "required": [
    "account_id"
  ],
  "title": "McpPublicIcpAccountBreakdownGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for icp.account.breakdown.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": "PublicIcpAccountBreakdownGetResultV2",
  "type": "object"
}

Account score and rubric version history

icp.account.history.get.v2

Use when: Use the existing Core workflow: Account score and rubric version history. Existing per-run score history; not historical win/loss cohort attribution.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.account.history.get.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": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    }
  },
  "required": [
    "account_id"
  ],
  "title": "McpPublicIcpAccountHistoryGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for icp.account.history.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": "PublicIcpAccountHistoryGetResultV2",
  "type": "object"
}

Propose client-fit rubric changes

icp.clients.suggest.v2

Use when: Use the existing Core workflow: Propose client-fit rubric changes. Model proposal only; does not persist or rescore. Not a historical holdout experiment.

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

Effects: Model proposal only; does not persist or rescore. Not a historical holdout experiment.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.clients.suggest.v2",
      "arguments": {
        "rubric_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": {
    "rubric_id": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Rubric 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": [
    "rubric_id"
  ],
  "title": "McpMcpPublicIcpClientsSuggestInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for icp.clients.suggest.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": "PublicIcpClientsSuggestResultV2",
  "type": "object"
}

Client fit validation

icp.clients.validation.get.v2

Use when: Use the existing Core workflow: Client fit validation. Current/prior clients owned by rubric assignees; not closed-won/lost deal history.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.clients.validation.get.v2",
      "arguments": {
        "rubric_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": {
    "rubric_id": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Rubric Id",
      "type": "string"
    }
  },
  "required": [
    "rubric_id"
  ],
  "title": "McpPublicIcpClientsValidationGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for icp.clients.validation.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": "PublicIcpClientsValidationGetResultV2",
  "type": "object"
}

Propose CRM-evidence rubric dimensions

icp.crm.suggest.v2

Use when: Use the existing Core workflow: Propose CRM-evidence rubric dimensions. Requires connected CRM and built won-customer profile. Does not persist or claim signal causality.

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

Effects: Requires connected CRM and built won-customer profile. Does not persist or claim signal causality.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.crm.suggest.v2",
      "arguments": {
        "rubric_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": {
    "rubric_id": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Rubric 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": [
    "rubric_id"
  ],
  "title": "McpMcpPublicIcpCrmSuggestInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for icp.crm.suggest.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": "PublicIcpCrmSuggestResultV2",
  "type": "object"
}

Get ICP rubric

icp.get.v2

Use when: Read the workspace ICP rubric the user already approved.

Avoid when: Do not use this to score an account — that is icp.score.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: icp: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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.get.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": {
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact rubric UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Rubric Id"
    }
  },
  "title": "McpPublicIcpGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "IcpDimensionV1": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "maxLength": 160,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "maxLength": 2000,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "weight": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Weight"
        }
      },
      "required": [
        "name"
      ],
      "title": "IcpDimensionV1",
      "type": "object"
    },
    "IcpRubricSnapshotV1": {
      "additionalProperties": false,
      "properties": {
        "rubric_id": {
          "format": "uuid",
          "title": "Rubric Id",
          "type": "string"
        },
        "name": {
          "maxLength": 160,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "version_number": {
          "minimum": 1,
          "title": "Version Number",
          "type": "integer"
        },
        "version_label": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Version Label"
        },
        "summary": {
          "anyOf": [
            {
              "maxLength": 4000,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "dimensions": {
          "default": [],
          "items": {
            "$ref": "#/$defs/IcpDimensionV1"
          },
          "maxItems": 50,
          "title": "Dimensions",
          "type": "array"
        },
        "disqualifiers": {
          "default": [],
          "items": {
            "type": "string"
          },
          "maxItems": 50,
          "title": "Disqualifiers",
          "type": "array"
        }
      },
      "required": [
        "rubric_id",
        "name",
        "version_number"
      ],
      "title": "IcpRubricSnapshotV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for icp.get.v2; preserves the established validators.",
  "properties": {
    "rubric": {
      "anyOf": [
        {
          "$ref": "#/$defs/IcpRubricSnapshotV1"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "title": "PublicIcpGetResultV2",
  "type": "object"
}

Preview an ICP grading run

icp.grading.preview.v2

Use when: Count what a grading scope would cover and what it would cost, before spending anything.

Avoid when: Do not use this to grade — that is icp.grading.start.v2.

Effects: Writes nothing and grades nothing. Deliberately not credit-gated: a workspace out of credits is the one that needs the number.

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: scoring:run. 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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.grading.preview.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": {
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Grade against this rubric and everyone assigned to it. Omit to use the calling user's own pinned rubric and only their accounts. Setting it does not change what any user has pinned.",
      "title": "Rubric Id"
    },
    "account_ids": {
      "default": [],
      "description": "Grade exactly these accounts. Resolve the request to a concrete set first — accounts.search.v2, an event roster, or the account_ids an import returns — then pass them here. This is the right answer whenever the user means a particular set rather than a rule. It narrows: archived and scoring-exempt accounts stay excluded even if listed.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 500,
      "title": "Account Ids",
      "type": "array"
    },
    "only_unscored": {
      "default": false,
      "description": "Skip accounts already scored under the TARGET RUBRIC. Rubric-relative and workspace-wide, so after importing a handful of accounts this still selects every other account nobody has scored under that rubric. For 'what I just added', pass account_ids.",
      "title": "Only Unscored",
      "type": "boolean"
    },
    "never_scored": {
      "default": false,
      "description": "No grade under any rubric. Usually what 'unscored' means.",
      "title": "Never Scored",
      "type": "boolean"
    },
    "industries": {
      "default": [],
      "description": "Industries used by the icp grading preview input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Industries",
      "type": "array"
    },
    "regions": {
      "default": [],
      "description": "Regions used by the icp grading preview input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Regions",
      "type": "array"
    },
    "account_types": {
      "default": [],
      "description": "Prospect, Client, Partner and so on. Competitor and Self are never scored, so asking for them returns nothing.",
      "items": {
        "type": "string"
      },
      "maxItems": 16,
      "title": "Account Types",
      "type": "array"
    },
    "icp_grades": {
      "default": [],
      "description": "Icp grades used by the icp grading preview input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 8,
      "title": "Icp Grades",
      "type": "array"
    },
    "owner_ids": {
      "default": [],
      "description": "Account owners. Use icp.scope.facets.v2 to resolve names to ids.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Owner Ids",
      "type": "array"
    },
    "minimum_icp_score": {
      "anyOf": [
        {
          "maximum": 100,
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum icp score used to bound matching records.",
      "title": "Minimum Icp Score"
    },
    "maximum_icp_score": {
      "anyOf": [
        {
          "maximum": 100,
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum icp score used to bound matching records.",
      "title": "Maximum Icp Score"
    },
    "minimum_employee_count": {
      "anyOf": [
        {
          "maximum": 10000000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum employee count used to bound matching records.",
      "title": "Minimum Employee Count"
    },
    "maximum_employee_count": {
      "anyOf": [
        {
          "maximum": 10000000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum employee count used to bound matching records.",
      "title": "Maximum Employee Count"
    },
    "contact_count_min": {
      "anyOf": [
        {
          "maximum": 100000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Contact count min used by the icp grading preview input v2 operation.",
      "title": "Contact Count Min"
    },
    "contact_count_max": {
      "anyOf": [
        {
          "maximum": 100000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Contact count max used by the icp grading preview input v2 operation.",
      "title": "Contact Count Max"
    },
    "created_since": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Accounts added on or after this instant.",
      "title": "Created Since"
    },
    "created_before": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Created before used by the icp grading preview input v2 operation.",
      "title": "Created Before"
    },
    "not_scored_since": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only accounts with no score recorded since this instant. Never-scored accounts count as stale.",
      "title": "Not Scored Since"
    }
  },
  "title": "McpIcpGradingPreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rubric Id"
    },
    "total_in_scope": {
      "default": 0,
      "minimum": 0,
      "title": "Total In Scope",
      "type": "integer"
    },
    "would_score": {
      "default": 0,
      "description": "What the run will actually grade.",
      "minimum": 0,
      "title": "Would Score",
      "type": "integer"
    },
    "already_scored": {
      "default": 0,
      "minimum": 0,
      "title": "Already Scored",
      "type": "integer"
    },
    "skipped_no_rubric": {
      "default": 0,
      "description": "Matched the filters but their owner has no rubric pinned, so the dispatcher would drop them.",
      "minimum": 0,
      "title": "Skipped No Rubric",
      "type": "integer"
    },
    "credits_per_account": {
      "default": 0,
      "minimum": 0,
      "title": "Credits Per Account",
      "type": "number"
    },
    "estimated_credits": {
      "default": 0,
      "minimum": 0,
      "title": "Estimated Credits",
      "type": "number"
    },
    "credit_balance": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Credit Balance"
    },
    "sufficient_credits": {
      "default": true,
      "title": "Sufficient Credits",
      "type": "boolean"
    },
    "requested_account_ids": {
      "default": 0,
      "description": "How many ids the caller asked for.",
      "minimum": 0,
      "title": "Requested Account Ids",
      "type": "integer"
    },
    "excluded_not_active": {
      "default": 0,
      "description": "Requested but archived or candidate.",
      "minimum": 0,
      "title": "Excluded Not Active",
      "type": "integer"
    },
    "excluded_exempt_type": {
      "default": 0,
      "description": "Requested but Competitor, Self or Partner.",
      "minimum": 0,
      "title": "Excluded Exempt Type",
      "type": "integer"
    },
    "excluded_other_owner": {
      "default": 0,
      "description": "Requested but owned by someone outside the rubric's assignees. Name that owner in owner_ids, or grade against their rubric.",
      "minimum": 0,
      "title": "Excluded Other Owner",
      "type": "integer"
    },
    "excluded_not_found": {
      "default": 0,
      "description": "Requested but not an account in this workspace.",
      "minimum": 0,
      "title": "Excluded Not Found",
      "type": "integer"
    }
  },
  "title": "IcpGradingPreviewResultV2",
  "type": "object"
}

Start ICP grading

icp.grading.start.v2

Use when: You approved the exact account scope and cost returned by icp.grading.preview.v2 and want fresh asynchronous grading.

Avoid when: You only need existing audited scores; use icp.scores.get.v2.

Effects: Queues metered grading. Poll jobs.status.get.v2 with the returned job_id.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.grading.start.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": {
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Grade against this rubric and everyone assigned to it. Omit to use the calling user's own pinned rubric and only their accounts. Setting it does not change what any user has pinned.",
      "title": "Rubric Id"
    },
    "account_ids": {
      "default": [],
      "description": "Grade exactly these accounts. Resolve the request to a concrete set first — accounts.search.v2, an event roster, or the account_ids an import returns — then pass them here. This is the right answer whenever the user means a particular set rather than a rule. It narrows: archived and scoring-exempt accounts stay excluded even if listed.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 500,
      "title": "Account Ids",
      "type": "array"
    },
    "only_unscored": {
      "default": false,
      "description": "Skip accounts already scored under the TARGET RUBRIC. Rubric-relative and workspace-wide, so after importing a handful of accounts this still selects every other account nobody has scored under that rubric. For 'what I just added', pass account_ids.",
      "title": "Only Unscored",
      "type": "boolean"
    },
    "never_scored": {
      "default": false,
      "description": "No grade under any rubric. Usually what 'unscored' means.",
      "title": "Never Scored",
      "type": "boolean"
    },
    "industries": {
      "default": [],
      "description": "Industries used by the icp grading start input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Industries",
      "type": "array"
    },
    "regions": {
      "default": [],
      "description": "Regions used by the icp grading start input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Regions",
      "type": "array"
    },
    "account_types": {
      "default": [],
      "description": "Prospect, Client, Partner and so on. Competitor and Self are never scored, so asking for them returns nothing.",
      "items": {
        "type": "string"
      },
      "maxItems": 16,
      "title": "Account Types",
      "type": "array"
    },
    "icp_grades": {
      "default": [],
      "description": "Icp grades used by the icp grading start input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 8,
      "title": "Icp Grades",
      "type": "array"
    },
    "owner_ids": {
      "default": [],
      "description": "Account owners. Use icp.scope.facets.v2 to resolve names to ids.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Owner Ids",
      "type": "array"
    },
    "minimum_icp_score": {
      "anyOf": [
        {
          "maximum": 100,
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum icp score used to bound matching records.",
      "title": "Minimum Icp Score"
    },
    "maximum_icp_score": {
      "anyOf": [
        {
          "maximum": 100,
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum icp score used to bound matching records.",
      "title": "Maximum Icp Score"
    },
    "minimum_employee_count": {
      "anyOf": [
        {
          "maximum": 10000000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum employee count used to bound matching records.",
      "title": "Minimum Employee Count"
    },
    "maximum_employee_count": {
      "anyOf": [
        {
          "maximum": 10000000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum employee count used to bound matching records.",
      "title": "Maximum Employee Count"
    },
    "contact_count_min": {
      "anyOf": [
        {
          "maximum": 100000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Contact count min used by the icp grading start input v2 operation.",
      "title": "Contact Count Min"
    },
    "contact_count_max": {
      "anyOf": [
        {
          "maximum": 100000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Contact count max used by the icp grading start input v2 operation.",
      "title": "Contact Count Max"
    },
    "created_since": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Accounts added on or after this instant.",
      "title": "Created Since"
    },
    "created_before": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Created before used by the icp grading start input v2 operation.",
      "title": "Created Before"
    },
    "not_scored_since": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only accounts with no score recorded since this instant. Never-scored accounts count as stale.",
      "title": "Not Scored Since"
    },
    "action_proposal_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional. Hivekind fills this from the MCP consent grant.",
      "title": "Action Proposal Id"
    }
  },
  "title": "McpMcpIcpGradingStartInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "job_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Job Id"
    },
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rubric Id"
    },
    "account_count": {
      "default": 0,
      "description": "Accounts dispatched for grading.",
      "minimum": 0,
      "title": "Account Count",
      "type": "integer"
    },
    "queued": {
      "default": true,
      "title": "Queued",
      "type": "boolean"
    }
  },
  "title": "IcpGradingStartResultV2",
  "type": "object"
}

Full grading rubric

icp.rubric.details.get.v2

Use when: Use the existing Core workflow: Full grading rubric. Existing workspace rubric and provenance; read only.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.rubric.details.get.v2",
      "arguments": {
        "rubric_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": {
    "rubric_id": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Rubric Id",
      "type": "string"
    }
  },
  "required": [
    "rubric_id"
  ],
  "title": "McpPublicIcpRubricDetailsGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for icp.rubric.details.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": "PublicIcpRubricDetailsGetResultV2",
  "type": "object"
}

Select active grading rubric

icp.rubric.pin.v2

Use when: Use the existing Core workflow: Select active grading rubric. Changes only the calling user’s active rubric; does not score accounts.

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

Effects: Changes only the calling user’s active rubric; does not score accounts.

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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.rubric.pin.v2",
      "arguments": {
        "rubric_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": {
    "rubric_id": {
      "description": "Exact existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Rubric 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": [
    "rubric_id"
  ],
  "title": "McpMcpPublicIcpRubricPinInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for icp.rubric.pin.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": "PublicIcpRubricPinResultV2",
  "type": "object"
}

List ICP rubrics

icp.rubrics.list.v2

Use when: You need stable rubric IDs and the signed-in user's active rubric before previewing grading or discovery.

Avoid when: You need saved scores for exact accounts; use icp.scores.get.v2.

Effects: Returns bounded rubric summaries. 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: icp: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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.rubrics.list.v2",
      "arguments": {},
      "operation_id": "00000000-0000-4000-8000-000000000003"
    }
  },
  "notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}
Input schema: fields, defaults and constraints
{
  "additionalProperties": false,
  "properties": {
    "scope": {
      "default": "user",
      "description": "Assigned rubrics or all rubrics visible in this workspace.",
      "enum": [
        "user",
        "workspace"
      ],
      "title": "Scope",
      "type": "string"
    },
    "limit": {
      "default": 25,
      "description": "Maximum number of records to return in this page.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "McpIcpRubricsListInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "IcpRubricSummaryV1": {
      "additionalProperties": false,
      "properties": {
        "rubric_id": {
          "format": "uuid",
          "title": "Rubric Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "version_number": {
          "default": 1,
          "minimum": 0,
          "title": "Version Number",
          "type": "integer"
        },
        "version_label": {
          "anyOf": [
            {
              "maxLength": 128,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Version Label"
        },
        "is_active_for_you": {
          "default": false,
          "description": "True when the calling user has this rubric pinned.",
          "title": "Is Active For You",
          "type": "boolean"
        },
        "assignee_count": {
          "default": 0,
          "description": "Workspace members grading against it.",
          "minimum": 0,
          "title": "Assignee Count",
          "type": "integer"
        },
        "dimensions": {
          "default": 0,
          "minimum": 0,
          "title": "Dimensions",
          "type": "integer"
        },
        "disqualifiers": {
          "default": 0,
          "minimum": 0,
          "title": "Disqualifiers",
          "type": "integer"
        },
        "tiers": {
          "default": 0,
          "minimum": 0,
          "title": "Tiers",
          "type": "integer"
        },
        "created_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Created At"
        }
      },
      "required": [
        "rubric_id",
        "name"
      ],
      "title": "IcpRubricSummaryV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "rubrics": {
      "default": [],
      "items": {
        "$ref": "#/$defs/IcpRubricSummaryV1"
      },
      "maxItems": 100,
      "title": "Rubrics",
      "type": "array"
    }
  },
  "title": "IcpRubricsListResultV2",
  "type": "object"
}

ICP scope facets

icp.scope.facets.v2

Use when: List the industries, owners and grades that actually have accounts behind them, so a grading scope cannot be built from values that match nothing.

Avoid when: Do not use this to count what a scope would grade — that is icp.grading.preview.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: icp: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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.scope.facets.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": {
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact rubric UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Rubric Id"
    },
    "only_unscored": {
      "default": false,
      "description": "Only unscored used by the public icp scope facets input v2 operation.",
      "title": "Only Unscored",
      "type": "boolean"
    }
  },
  "title": "McpPublicIcpScopeFacetsInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "IcpScopeOwnerV1": {
      "additionalProperties": false,
      "properties": {
        "user_id": {
          "format": "uuid",
          "title": "User Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "user_id",
        "name"
      ],
      "title": "IcpScopeOwnerV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for icp.scope.facets.v2; preserves the established validators.",
  "properties": {
    "industries": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 500,
      "title": "Industries",
      "type": "array"
    },
    "icp_grades": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 8,
      "title": "Icp Grades",
      "type": "array"
    },
    "owners": {
      "default": [],
      "items": {
        "$ref": "#/$defs/IcpScopeOwnerV1"
      },
      "maxItems": 200,
      "title": "Owners",
      "type": "array"
    }
  },
  "title": "PublicIcpScopeFacetsResultV2",
  "type": "object"
}

Read audited ICP score

icp.score.get.v2

Use when: Read the latest audited score for your active rubric, with no new scoring or charge. A matched rubric disqualifier pins the grade to the lowest tier whatever the score, reported as disqualified and disqualification_reason. Use icp.grading.preview.v2 followed by icp.grading.start.v2 for fresh evaluation.

Avoid when: Do not use this to read the rubric — that is icp.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, icp:read, scoring:run. 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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.score.get.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
{
  "$defs": {
    "EvidenceFindingV1": {
      "additionalProperties": false,
      "properties": {
        "claim": {
          "maxLength": 2000,
          "minLength": 1,
          "title": "Claim",
          "type": "string"
        },
        "source_url": {
          "anyOf": [
            {
              "format": "uri",
              "maxLength": 2083,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Source Url"
        },
        "source_label": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Source Label",
          "type": "string"
        },
        "observed_at": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Observed At"
        }
      },
      "required": [
        "claim",
        "source_label"
      ],
      "title": "EvidenceFindingV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "account_id": {
      "description": "Exact account UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "research_summary": {
      "default": "Read existing audited score.",
      "description": "Legacy context; not used to calculate a score. Fresh evaluation uses the grading workflow.",
      "maxLength": 4000,
      "minLength": 1,
      "title": "Research Summary",
      "type": "string"
    },
    "evidence": {
      "default": [],
      "description": "Evidence used by the public icp score get input v2 operation.",
      "items": {
        "$ref": "#/$defs/EvidenceFindingV1"
      },
      "title": "Evidence",
      "type": "array"
    }
  },
  "required": [
    "account_id"
  ],
  "title": "McpPublicIcpScoreGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for icp.score.get.v2; preserves the established validators.",
  "properties": {
    "account_id": {
      "format": "uuid",
      "title": "Account Id",
      "type": "string"
    },
    "score": {
      "maximum": 100,
      "minimum": 0,
      "title": "Score",
      "type": "integer"
    },
    "grade": {
      "maxLength": 32,
      "minLength": 1,
      "title": "Grade",
      "type": "string"
    },
    "rationale_summary": {
      "maxLength": 2000,
      "minLength": 1,
      "title": "Rationale Summary",
      "type": "string"
    },
    "confidence": {
      "maximum": 1,
      "minimum": 0,
      "title": "Confidence",
      "type": "number"
    },
    "rubric_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rubric Id"
    },
    "score_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Score Id"
    },
    "scored_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Scored At"
    },
    "provenance": {
      "default": "audited_snapshot",
      "title": "Provenance",
      "type": "string"
    },
    "disqualified": {
      "default": false,
      "description": "True when a rubric disqualifier matched. The grade is then the rubric's lowest tier regardless of the score.",
      "title": "Disqualified",
      "type": "boolean"
    },
    "disqualification_reason": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Which disqualifier matched and why, when disqualified is true.",
      "title": "Disqualification Reason"
    }
  },
  "required": [
    "account_id",
    "score",
    "grade",
    "rationale_summary",
    "confidence"
  ],
  "title": "PublicIcpScoreGetResultV2",
  "type": "object"
}

Get saved ICP scores

icp.scores.get.v2

Use when: You have exact account IDs and need audited scores for the signed-in actor's active rubric.

Avoid when: You need fresh grading; use the Intelligence grading preview and start tools.

Effects: Returns scored, unscored, or no-active-rubric state per account. 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, icp: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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "icp.scores.get.v2",
      "arguments": {
        "account_ids": [
          "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_ids": {
      "description": "Exact account UUIDs whose saved audited scores should be read.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 100,
      "minItems": 1,
      "title": "Account Ids",
      "type": "array"
    }
  },
  "required": [
    "account_ids"
  ],
  "title": "McpIcpScoresGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "IcpScoreSnapshotV2": {
      "additionalProperties": false,
      "properties": {
        "account_id": {
          "format": "uuid",
          "title": "Account Id",
          "type": "string"
        },
        "account_name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Account Name",
          "type": "string"
        },
        "score_state": {
          "enum": [
            "scored",
            "unscored",
            "no_active_rubric"
          ],
          "title": "Score State",
          "type": "string"
        },
        "score": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Score"
        },
        "grade": {
          "anyOf": [
            {
              "maxLength": 32,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Grade"
        },
        "rubric_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rubric Id"
        },
        "rubric_name": {
          "anyOf": [
            {
              "maxLength": 160,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rubric Name"
        },
        "rubric_version": {
          "anyOf": [
            {
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rubric Version"
        },
        "score_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Score Id"
        },
        "scored_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Scored At"
        },
        "breakdown": {
          "additionalProperties": true,
          "title": "Breakdown",
          "type": "object"
        }
      },
      "required": [
        "account_id",
        "account_name",
        "score_state"
      ],
      "title": "IcpScoreSnapshotV2",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "scores": {
      "default": [],
      "items": {
        "$ref": "#/$defs/IcpScoreSnapshotV2"
      },
      "maxItems": 100,
      "title": "Scores",
      "type": "array"
    },
    "missing_account_ids": {
      "default": [],
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 100,
      "title": "Missing Account Ids",
      "type": "array"
    }
  },
  "title": "IcpScoresGetResultV2",
  "type": "object"
}

Pipeline summary

pipeline.summary.v2

Use when: CRO snapshot of pipeline stages and counts.

Avoid when: Do not use this to list campaigns — that is campaigns.list.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: runs: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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "pipeline.summary.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": {
    "lookback_days": {
      "default": 90,
      "description": "Number of calendar days before today to include.",
      "maximum": 730,
      "minimum": 1,
      "title": "Lookback Days",
      "type": "integer"
    },
    "maximum_opportunities": {
      "default": 1000,
      "description": "Maximum opportunities used to bound matching records.",
      "maximum": 5000,
      "minimum": 1,
      "title": "Maximum Opportunities",
      "type": "integer"
    }
  },
  "title": "McpPublicPipelineSummaryInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "PipelineStageSummaryV1": {
      "additionalProperties": false,
      "properties": {
        "stage": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Stage",
          "type": "string"
        },
        "opportunity_count": {
          "minimum": 0,
          "title": "Opportunity Count",
          "type": "integer"
        },
        "total_value": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Absent when currencies are mixed or unknown; never an unconverted sum.",
          "title": "Total Value"
        },
        "won_count": {
          "minimum": 0,
          "title": "Won Count",
          "type": "integer"
        },
        "values_by_currency": {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              }
            ]
          },
          "title": "Values By Currency",
          "type": "object"
        }
      },
      "required": [
        "stage",
        "opportunity_count",
        "won_count"
      ],
      "title": "PipelineStageSummaryV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for pipeline.summary.v2; preserves the established validators.",
  "properties": {
    "opportunity_count": {
      "minimum": 0,
      "title": "Opportunity Count",
      "type": "integer"
    },
    "total_value": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "number"
        },
        {
          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Absent when currencies are mixed or unknown; never an unconverted sum.",
      "title": "Total Value"
    },
    "currency": {
      "anyOf": [
        {
          "maxLength": 32,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Currency"
    },
    "latest_snapshot_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Latest Snapshot At"
    },
    "stages": {
      "default": [],
      "items": {
        "$ref": "#/$defs/PipelineStageSummaryV1"
      },
      "maxItems": 100,
      "title": "Stages",
      "type": "array"
    },
    "truncated": {
      "default": false,
      "title": "Truncated",
      "type": "boolean"
    },
    "values_by_currency": {
      "additionalProperties": {
        "anyOf": [
          {
            "type": "number"
          },
          {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "type": "string"
          }
        ]
      },
      "title": "Values By Currency",
      "type": "object"
    }
  },
  "required": [
    "opportunity_count"
  ],
  "title": "PublicPipelineSummaryResultV2",
  "type": "object"
}

Preview a qualified target audience

targets.preview.v2

Use when: You need accounts with verified LinkedIn paths ranked by saved ICP grade/score, including connected ungraded accounts.

Avoid when: You need one known account or only account-level filters; use accounts.search.v2.

Effects: No-write preview. Filters consented path eligibility before ranking and returns graded and ungraded sections separately.

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: accounts:read. 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.intelligence.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "targets.preview.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": {
    "query": {
      "default": "*",
      "description": "Optional account name, domain, or industry text; * means any account.",
      "maxLength": 255,
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "account_ids": {
      "default": [],
      "description": "Optional exact account UUID scope resolved from a prior search.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 500,
      "title": "Account Ids",
      "type": "array"
    },
    "owner_scope": {
      "default": "workspace",
      "description": "Account ownership scope; mine is derived from the signed-in actor.",
      "enum": [
        "mine",
        "workspace",
        "assigned",
        "unassigned"
      ],
      "title": "Owner Scope",
      "type": "string"
    },
    "owner_ids": {
      "default": [],
      "description": "Optional exact owner UUIDs; cannot be combined with mine or unassigned.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 100,
      "title": "Owner Ids",
      "type": "array"
    },
    "industries": {
      "default": [],
      "description": "Industries used by the targets preview input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Industries",
      "type": "array"
    },
    "regions": {
      "default": [],
      "description": "Regions used by the targets preview input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Regions",
      "type": "array"
    },
    "account_types": {
      "default": [],
      "description": "Account types used by the targets preview input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Account Types",
      "type": "array"
    },
    "buyer_roles": {
      "default": [],
      "description": "Require at least one active account contact with one of these buyer roles.",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Buyer Roles",
      "type": "array"
    },
    "signal_types": {
      "default": [],
      "description": "Require at least one recorded account/contact signal of one of these types.",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Signal Types",
      "type": "array"
    },
    "signal_lookback_days": {
      "default": 30,
      "description": "Signal lookback days used by the targets preview input v2 operation.",
      "maximum": 365,
      "minimum": 1,
      "title": "Signal Lookback Days",
      "type": "integer"
    },
    "network_scope": {
      "default": "workspace_consented",
      "description": "Whether verified paths are limited to self or may include sharing teammates.",
      "enum": [
        "self",
        "workspace_consented"
      ],
      "title": "Network Scope",
      "type": "string"
    },
    "require_verified_path": {
      "default": true,
      "description": "When true, path eligibility is evaluated before ranking and pagination.",
      "title": "Require Verified Path",
      "type": "boolean"
    },
    "icp_score_state": {
      "default": "any",
      "description": "Icp score state used by the targets preview input v2 operation.",
      "enum": [
        "any",
        "scored_only",
        "unscored_only"
      ],
      "title": "Icp Score State",
      "type": "string"
    },
    "icp_grades": {
      "default": [],
      "description": "Icp grades used by the targets preview input v2 operation.",
      "items": {
        "enum": [
          "A",
          "B",
          "C",
          "D",
          "E",
          "F"
        ],
        "type": "string"
      },
      "maxItems": 6,
      "title": "Icp Grades",
      "type": "array"
    },
    "include_ungraded": {
      "default": true,
      "description": "Return path-qualified accounts without a complete saved grade/score separately.",
      "title": "Include Ungraded",
      "type": "boolean"
    },
    "ranking": {
      "default": "grade_then_score",
      "description": "Ranking used by the targets preview input v2 operation.",
      "enum": [
        "grade_then_score",
        "score_desc",
        "signal_then_score"
      ],
      "title": "Ranking",
      "type": "string"
    },
    "graded_limit": {
      "default": 25,
      "description": "Graded limit used by the targets preview input v2 operation.",
      "maximum": 100,
      "minimum": 1,
      "title": "Graded Limit",
      "type": "integer"
    },
    "ungraded_limit": {
      "default": 100,
      "description": "Ungraded limit used by the targets preview input v2 operation.",
      "maximum": 100,
      "minimum": 1,
      "title": "Ungraded Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Opaque cursor returned by a previous call; do not construct it.",
      "title": "Cursor"
    }
  },
  "title": "McpTargetsPreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "TargetAccountV2": {
      "additionalProperties": false,
      "properties": {
        "account_id": {
          "format": "uuid",
          "title": "Account Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "domain": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domain"
        },
        "industry": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Industry"
        },
        "region": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Region"
        },
        "owner_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner Id"
        },
        "icp_score": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 0,
              "type": "number"
            },
            {
              "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Icp Score"
        },
        "icp_grade": {
          "anyOf": [
            {
              "maxLength": 32,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Icp Grade"
        },
        "paths": {
          "default": [],
          "items": {
            "$ref": "#/$defs/TargetPathV2"
          },
          "maxItems": 50,
          "title": "Paths",
          "type": "array"
        },
        "evidence_refs": {
          "default": [],
          "items": {
            "type": "string"
          },
          "maxItems": 50,
          "title": "Evidence Refs",
          "type": "array"
        }
      },
      "required": [
        "account_id",
        "name"
      ],
      "title": "TargetAccountV2",
      "type": "object"
    },
    "TargetCoverageV2": {
      "additionalProperties": false,
      "properties": {
        "network_scope": {
          "enum": [
            "self",
            "workspace_consented"
          ],
          "title": "Network Scope",
          "type": "string"
        },
        "sync_state": {
          "enum": [
            "synced",
            "syncing",
            "degraded",
            "not_connected",
            "unknown"
          ],
          "title": "Sync State",
          "type": "string"
        },
        "candidate_accounts": {
          "minimum": 0,
          "title": "Candidate Accounts",
          "type": "integer"
        },
        "matched_accounts": {
          "minimum": 0,
          "title": "Matched Accounts",
          "type": "integer"
        },
        "matched_contacts": {
          "minimum": 0,
          "title": "Matched Contacts",
          "type": "integer"
        },
        "path_filter_applied_before_ranking": {
          "title": "Path Filter Applied Before Ranking",
          "type": "boolean"
        },
        "last_synced_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Last Synced At"
        },
        "limitations": {
          "default": [],
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "title": "Limitations",
          "type": "array"
        }
      },
      "required": [
        "network_scope",
        "sync_state",
        "candidate_accounts",
        "matched_accounts",
        "matched_contacts",
        "path_filter_applied_before_ranking"
      ],
      "title": "TargetCoverageV2",
      "type": "object"
    },
    "TargetExcludedCountsV2": {
      "additionalProperties": false,
      "properties": {
        "no_path": {
          "default": 0,
          "minimum": 0,
          "title": "No Path",
          "type": "integer"
        },
        "unknown_path": {
          "default": 0,
          "minimum": 0,
          "title": "Unknown Path",
          "type": "integer"
        },
        "not_synced": {
          "default": 0,
          "minimum": 0,
          "title": "Not Synced",
          "type": "integer"
        },
        "no_score": {
          "default": 0,
          "minimum": 0,
          "title": "No Score",
          "type": "integer"
        }
      },
      "title": "TargetExcludedCountsV2",
      "type": "object"
    },
    "TargetPathV2": {
      "additionalProperties": false,
      "properties": {
        "contact_id": {
          "format": "uuid",
          "title": "Contact Id",
          "type": "string"
        },
        "contact_name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Contact Name",
          "type": "string"
        },
        "contact_title": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Contact Title"
        },
        "relationship_state": {
          "const": "connected",
          "default": "connected",
          "title": "Relationship State",
          "type": "string"
        },
        "path_type": {
          "enum": [
            "first_degree",
            "second_degree",
            "introduction",
            "none"
          ],
          "title": "Path Type",
          "type": "string"
        },
        "network_scope": {
          "enum": [
            "self",
            "workspace_consented"
          ],
          "title": "Network Scope",
          "type": "string"
        },
        "match_method": {
          "enum": [
            "provider_member_id_exact",
            "linkedin_url_exact",
            "approved_identity_match",
            "unknown"
          ],
          "title": "Match Method",
          "type": "string"
        },
        "degree": {
          "anyOf": [
            {
              "maximum": 3,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Degree"
        },
        "member_user_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Member User Id"
        },
        "member_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Member Name"
        },
        "is_self": {
          "default": false,
          "title": "Is Self",
          "type": "boolean"
        },
        "freshness_at": {
          "format": "date-time",
          "title": "Freshness At",
          "type": "string"
        },
        "selected_sender_reachable": {
          "title": "Selected Sender Reachable",
          "type": "boolean"
        },
        "evidence_refs": {
          "default": [],
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "title": "Evidence Refs",
          "type": "array"
        }
      },
      "required": [
        "contact_id",
        "contact_name",
        "path_type",
        "network_scope",
        "match_method",
        "freshness_at",
        "selected_sender_reachable"
      ],
      "title": "TargetPathV2",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "query_id": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Query Id",
      "type": "string"
    },
    "coverage": {
      "$ref": "#/$defs/TargetCoverageV2"
    },
    "filters_applied": {
      "additionalProperties": true,
      "title": "Filters Applied",
      "type": "object"
    },
    "graded_accounts": {
      "default": [],
      "items": {
        "$ref": "#/$defs/TargetAccountV2"
      },
      "maxItems": 100,
      "title": "Graded Accounts",
      "type": "array"
    },
    "connected_ungraded_accounts": {
      "default": [],
      "items": {
        "$ref": "#/$defs/TargetAccountV2"
      },
      "maxItems": 100,
      "title": "Connected Ungraded Accounts",
      "type": "array"
    },
    "excluded_counts": {
      "$ref": "#/$defs/TargetExcludedCountsV2"
    },
    "next_cursor": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Next Cursor"
    }
  },
  "required": [
    "query_id",
    "coverage",
    "filters_applied",
    "excluded_counts"
  ],
  "title": "TargetsPreviewResultV2",
  "type": "object"
}