-
Notifications
You must be signed in to change notification settings - Fork 2
Reference Generated MCP Tools
Claude edited this page Aug 28, 2026
·
2 revisions
Cairn's MCP server exposes the whole platform to AI assistants and scripts over JSON-RPC 2.0. Every tool runs as the calling user : the permission column below is enforced by the @require_perm decorator, and scope-based tenancy filters the rows on top of it.
Transport, authentication and client setup are in ../mcp-server.md.
734 tools are registered, across 9 modules. Most entities carry the same surface : list_*, get_*, create_*, batch_create_*, update_*, delete_*, plus *_transition, *_allowed_transitions and *_history when the entity runs a lifecycle.
| Module | Tools | Parameter reference |
|---|---|---|
| Assets | 136 | mcp-tools-assets.md |
| Compliance | 64 | mcp-tools-compliance.md |
| Governance and context | 126 | mcp-tools-context.md |
| General | 13 | mcp-tools-general.md |
| Incidents | 103 | mcp-tools-incidents.md |
| Reports and management review | 18 | mcp-tools-reports.md |
| Risks | 222 | mcp-tools-risks.md |
| System and administration | 10 | mcp-tools-system.md |
| Trust Center | 42 | mcp-tools-trust-center.md |
| Tool | Permission | Description |
|---|---|---|
asset_dependency_allowed_transitions |
assets.dependency.read |
List the lifecycle transitions the caller may perform on a asset dependency from its current state. |
asset_group_allowed_transitions |
assets.group.read |
List the lifecycle transitions the caller may perform on a asset group from its current state. |
batch_create_asset_dependencys |
assets.dependency.create |
Create or upsert multiple asset dependencys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_asset_groups |
assets.group.create |
Create or upsert multiple asset groups in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_asset_valuations |
assets.essential_asset.create |
Create or upsert multiple asset valuations in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_certificates |
assets.certificate.create |
Create or upsert multiple certificates in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_contracts |
assets.contract.create |
Create or upsert multiple contracts in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_essential_assets |
assets.essential_asset.create |
Create or upsert multiple essential assets in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_site_asset_dependencys |
assets.dependency.create |
Create or upsert multiple site asset dependencys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_site_supplier_dependencys |
assets.supplier_dependency.create |
Create or upsert multiple site supplier dependencys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_supplier_contacts |
assets.supplier.create |
Create or upsert multiple supplier contacts in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_supplier_dependencys |
assets.supplier_dependency.create |
Create or upsert multiple supplier dependencys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_supplier_requirement_reviews |
assets.supplier.create |
Create or upsert multiple supplier requirement reviews in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_supplier_requirements |
assets.supplier.create |
Create or upsert multiple supplier requirements in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_supplier_subprocessors |
assets.supplier.create |
Create or upsert multiple supplier subprocessors in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_supplier_type_requirements |
assets.config.create |
Create or upsert multiple supplier type requirements in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_supplier_types |
assets.config.create |
Create or upsert multiple supplier types in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_suppliers |
assets.supplier.create |
Create or upsert multiple suppliers in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_support_assets |
assets.support_asset.create |
Create or upsert multiple support assets in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
certificate_allowed_transitions |
assets.certificate.read |
List the lifecycle transitions the caller may perform on a certificate from its current state. |
contract_allowed_transitions |
assets.contract.read |
List the lifecycle transitions the caller may perform on a contract from its current state. |
create_asset_dependency |
assets.dependency.create |
Create a new asset dependency |
create_asset_group |
assets.group.create |
Create a new asset group |
create_asset_valuation |
assets.essential_asset.create |
Create a new asset valuation |
create_certificate |
assets.certificate.create |
Create a new certificate |
create_contract |
assets.contract.create |
Create a new contract |
create_essential_asset |
assets.essential_asset.create |
Create a new essential asset |
create_site_asset_dependency |
assets.dependency.create |
Create a new site asset dependency |
create_site_supplier_dependency |
assets.supplier_dependency.create |
Create a new site supplier dependency |
create_supplier |
assets.supplier.create |
Create a new supplier. Optionally provide 'image_url' (a public URL pointing to an image file) to set the supplier logo. The image will be downloaded, resized to 128x128, and 64x64, 32x32, 16x16 variants will be generated automatically. Prefer 'image_url' over 'update_supplier_logo' when the logo is available as a URL. |
create_supplier_contact |
assets.supplier.create |
Create a new supplier contact |
create_supplier_dependency |
assets.supplier_dependency.create |
Create a new supplier dependency |
create_supplier_requirement |
assets.supplier.create |
Create a new supplier requirement |
create_supplier_requirement_review |
assets.supplier.create |
Create a new supplier requirement review |
create_supplier_subprocessor |
assets.supplier.create |
Create a new supplier subprocessor |
create_supplier_type |
assets.config.create |
Create a new supplier type |
create_supplier_type_requirement |
assets.config.create |
Create a new supplier type requirement |
create_support_asset |
assets.support_asset.create |
Create a new support asset |
delete_asset_dependency |
assets.dependency.delete |
Delete a asset dependency |
delete_asset_group |
assets.group.delete |
Delete a asset group |
delete_asset_valuation |
assets.essential_asset.delete |
Delete a asset valuation |
delete_certificate |
assets.certificate.delete |
Delete a certificate |
delete_contract |
assets.contract.delete |
Delete a contract |
delete_essential_asset |
assets.essential_asset.delete |
Delete a essential asset |
delete_site_asset_dependency |
assets.dependency.delete |
Delete a site asset dependency |
delete_site_supplier_dependency |
assets.supplier_dependency.delete |
Delete a site supplier dependency |
delete_supplier |
assets.supplier.delete |
Delete a supplier |
delete_supplier_contact |
assets.supplier.delete |
Delete a supplier contact |
delete_supplier_dependency |
assets.supplier_dependency.delete |
Delete a supplier dependency |
delete_supplier_requirement |
assets.supplier.delete |
Delete a supplier requirement |
delete_supplier_requirement_review |
assets.supplier.delete |
Delete a supplier requirement review |
delete_supplier_subprocessor |
assets.supplier.delete |
Delete a supplier subprocessor |
delete_supplier_type |
assets.config.delete |
Delete a supplier type |
delete_supplier_type_requirement |
assets.config.delete |
Delete a supplier type requirement |
delete_support_asset |
assets.support_asset.delete |
Delete a support asset |
essential_asset_allowed_transitions |
assets.essential_asset.read |
List the lifecycle transitions the caller may perform on a essential asset from its current state. |
get_asset_dependency |
assets.dependency.read |
Get a asset dependency by ID |
get_asset_dependency_history |
assets.dependency.read |
Return the change history of a asset dependency: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_asset_group |
assets.group.read |
Get a asset group by ID |
get_asset_group_history |
assets.group.read |
Return the change history of a asset group: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_asset_valuation |
assets.essential_asset.read |
Get a asset valuation by ID |
get_asset_valuation_history |
assets.essential_asset.read |
Return the change history of a asset valuation: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_certificate |
assets.certificate.read |
Get a certificate by ID |
get_certificate_history |
assets.certificate.read |
Return the change history of a certificate: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_contract |
assets.contract.read |
Get a contract by ID |
get_contract_history |
assets.contract.read |
Return the change history of a contract: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_essential_asset |
assets.essential_asset.read |
Get a essential asset by ID |
get_essential_asset_history |
assets.essential_asset.read |
Return the change history of a essential asset: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_site_asset_dependency |
assets.dependency.read |
Get a site asset dependency by ID |
get_site_asset_dependency_history |
assets.dependency.read |
Return the change history of a site asset dependency: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_site_supplier_dependency |
assets.supplier_dependency.read |
Get a site supplier dependency by ID |
get_site_supplier_dependency_history |
assets.supplier_dependency.read |
Return the change history of a site supplier dependency: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_supplier |
assets.supplier.read |
Get a supplier by ID |
get_supplier_contact |
assets.supplier.read |
Get a supplier contact by ID |
get_supplier_contact_history |
assets.supplier.read |
Return the change history of a supplier contact: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_supplier_dependency |
assets.supplier_dependency.read |
Get a supplier dependency by ID |
get_supplier_dependency_history |
assets.supplier_dependency.read |
Return the change history of a supplier dependency: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_supplier_history |
assets.supplier.read |
Return the change history of a supplier: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_supplier_requirement |
assets.supplier.read |
Get a supplier requirement by ID |
get_supplier_requirement_review |
assets.supplier.read |
Get a supplier requirement review by ID |
get_supplier_subprocessor |
assets.supplier.read |
Get a supplier subprocessor by ID |
get_supplier_subprocessor_history |
assets.supplier.read |
Return the change history of a supplier subprocessor: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_supplier_type |
assets.config.read |
Get a supplier type by ID |
get_supplier_type_requirement |
assets.config.read |
Get a supplier type requirement by ID |
get_support_asset |
assets.support_asset.read |
Get a support asset by ID |
get_support_asset_history |
assets.support_asset.read |
Return the change history of a support asset: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
list_asset_dependencys |
assets.dependency.read |
List asset dependencys with optional search and filters |
list_asset_groups |
assets.group.read |
List asset groups with optional search and filters |
list_asset_valuations |
assets.essential_asset.read |
List asset valuations with optional search and filters |
list_certificates |
assets.certificate.read |
List certificates with optional search and filters |
list_contracts |
assets.contract.read |
List contracts with optional search and filters |
list_essential_assets |
assets.essential_asset.read |
List essential assets with optional search and filters |
list_site_asset_dependencys |
assets.dependency.read |
List site asset dependencys with optional search and filters |
list_site_supplier_dependencys |
assets.supplier_dependency.read |
List site supplier dependencys with optional search and filters |
list_supplier_contacts |
assets.supplier.read |
List supplier contacts with optional search and filters |
list_supplier_dependencys |
assets.supplier_dependency.read |
List supplier dependencys with optional search and filters |
list_supplier_requirement_reviews |
assets.supplier.read |
List supplier requirement reviews with optional search and filters |
list_supplier_requirements |
assets.supplier.read |
List supplier requirements with optional search and filters |
list_supplier_subprocessors |
assets.supplier.read |
List supplier subprocessors with optional search and filters |
list_supplier_type_requirements |
assets.config.read |
List supplier type requirements with optional search and filters |
list_supplier_types |
assets.config.read |
List supplier types with optional search and filters |
list_suppliers |
assets.supplier.read |
List suppliers with optional search and filters |
list_support_assets |
assets.support_asset.read |
List support assets with optional search and filters |
site_asset_dependency_allowed_transitions |
assets.dependency.read |
List the lifecycle transitions the caller may perform on a site asset dependency from its current state. |
site_supplier_dependency_allowed_transitions |
assets.supplier_dependency.read |
List the lifecycle transitions the caller may perform on a site supplier dependency from its current state. |
supplier_allowed_transitions |
assets.supplier.read |
List the lifecycle transitions the caller may perform on a supplier from its current state. |
supplier_dependency_allowed_transitions |
assets.supplier_dependency.read |
List the lifecycle transitions the caller may perform on a supplier dependency from its current state. |
support_asset_allowed_transitions |
assets.support_asset.read |
List the lifecycle transitions the caller may perform on a support asset from its current state. |
transition_asset_dependency |
assets.dependency.read |
Change the lifecycle state of a asset dependency (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_asset_group |
assets.group.read |
Change the lifecycle state of a asset group (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_certificate |
assets.certificate.read |
Change the lifecycle state of a certificate (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_contract |
assets.contract.read |
Change the lifecycle state of a contract (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_essential_asset |
assets.essential_asset.read |
Change the lifecycle state of a essential asset (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_site_asset_dependency |
assets.dependency.read |
Change the lifecycle state of a site asset dependency (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_site_supplier_dependency |
assets.supplier_dependency.read |
Change the lifecycle state of a site supplier dependency (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_supplier |
assets.supplier.read |
Change the lifecycle state of a supplier (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_supplier_dependency |
assets.supplier_dependency.read |
Change the lifecycle state of a supplier dependency (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_support_asset |
assets.support_asset.read |
Change the lifecycle state of a support asset (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
update_asset_dependency |
assets.dependency.update |
Update an existing asset dependency |
update_asset_group |
assets.group.update |
Update an existing asset group |
update_asset_valuation |
assets.essential_asset.update |
Update an existing asset valuation |
update_certificate |
assets.certificate.update |
Update an existing certificate |
update_contract |
assets.contract.update |
Update an existing contract |
update_essential_asset |
assets.essential_asset.update |
Update an existing essential asset |
update_site_asset_dependency |
assets.dependency.update |
Update an existing site asset dependency |
update_site_supplier_dependency |
assets.supplier_dependency.update |
Update an existing site supplier dependency |
update_supplier |
assets.supplier.update |
Update an existing supplier. Optionally provide 'image_url' (a public URL pointing to an image file) to set or replace the supplier logo. The image will be downloaded, resized to 128x128, and 64x64, 32x32, 16x16 variants will be generated automatically. Prefer 'image_url' over 'update_supplier_logo' when the logo is available as a URL. |
update_supplier_contact |
assets.supplier.update |
Update an existing supplier contact |
update_supplier_dependency |
assets.supplier_dependency.update |
Update an existing supplier dependency |
update_supplier_logo |
assets.supplier.update |
Update a supplier's logo. Provide EITHER a base64 data URI via 'logo' OR a public image URL via 'image_url'. The image is resized to 128x128 and 64x64, 32x32, 16x16 variants are generated automatically. |
update_supplier_requirement |
assets.supplier.update |
Update an existing supplier requirement |
update_supplier_requirement_review |
assets.supplier.update |
Update an existing supplier requirement review |
update_supplier_subprocessor |
assets.supplier.update |
Update an existing supplier subprocessor |
update_supplier_type |
assets.config.update |
Update an existing supplier type |
update_supplier_type_requirement |
assets.config.update |
Update an existing supplier type requirement |
update_support_asset |
assets.support_asset.update |
Update an existing support asset |
| Tool | Permission | Description |
|---|---|---|
action_plan_allowed_transitions |
compliance.action_plan.read |
Get allowed status transitions for an action plan, including permission checks and refusal/cancellation flags. Call this before action_plan_transition to know what is possible. |
action_plan_kanban |
compliance.action_plan.read |
Get action plans grouped by status for kanban board, including workflow transition rules |
action_plan_transition |
compliance.action_plan.update |
Transition an action plan to a new Kanban status. Forward flow: new → to_define → to_validate → to_implement → implementation_to_validate → validated → closed. Refusals (require comment): to_validate → to_define, implementation_to_validate → to_implement. Cancellation: any non-terminal status → cancelled. |
action_plan_transitions |
compliance.action_plan.read |
List transition history for an action plan |
batch_create_action_plans |
compliance.action_plan.create |
Create or upsert multiple action plans in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_frameworks |
compliance.framework.create |
Create or upsert multiple frameworks in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_requirement_mappings |
compliance.mapping.create |
Create or upsert multiple requirement mappings in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_requirements |
compliance.requirement.create |
Create or upsert multiple requirements in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_sections |
compliance.section.create |
Create or upsert multiple sections in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
create_action_plan |
compliance.action_plan.create |
Create a new action plan |
create_action_plan_comment |
compliance.action_plan.update |
Create a comment or reply on an action plan |
create_assessment_result |
compliance.assessment.create |
Create a new assessment result |
create_compliance_assessment |
compliance.assessment.create |
Create a new compliance assessment |
create_finding |
compliance.finding.create |
Create a new audit finding |
create_framework |
compliance.framework.create |
Create a new framework |
create_requirement |
compliance.requirement.create |
Create a new requirement |
create_requirement_mapping |
compliance.mapping.create |
Create a new requirement mapping |
create_section |
compliance.section.create |
Create a new section |
delete_action_plan |
compliance.action_plan.delete |
Delete a action plan |
delete_assessment_result |
compliance.assessment.delete |
Delete an assessment result |
delete_compliance_assessment |
compliance.assessment.delete |
Delete a compliance assessment |
delete_finding |
compliance.finding.delete |
Delete a finding |
delete_framework |
compliance.framework.delete |
Delete a framework |
delete_requirement |
compliance.requirement.delete |
Delete a requirement |
delete_requirement_mapping |
compliance.mapping.delete |
Delete a requirement mapping |
delete_section |
compliance.section.delete |
Delete a section |
framework_allowed_transitions |
compliance.framework.read |
List the lifecycle transitions the caller may perform on a framework from its current state. |
get_action_plan |
compliance.action_plan.read |
Get a action plan by ID |
get_action_plan_history |
compliance.action_plan.read |
Return the change history of a action plan: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_assessment_result |
compliance.assessment.read |
Get an assessment result by ID |
get_compliance_assessment |
compliance.assessment.read |
Get a compliance assessment by ID |
get_finding |
compliance.finding.read |
Get a finding by ID |
get_framework |
compliance.framework.read |
Get a framework by ID |
get_framework_compliance_summary |
compliance.framework.read |
Get compliance summary for a framework, including section-level compliance and status distribution |
get_framework_history |
compliance.framework.read |
Return the change history of a framework: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_requirement |
compliance.requirement.read |
Get a requirement by ID |
get_requirement_history |
compliance.requirement.read |
Return the change history of a requirement: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_requirement_mapping |
compliance.mapping.read |
Get a requirement mapping by ID |
get_requirement_mapping_history |
compliance.mapping.read |
Return the change history of a requirement mapping: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_section |
compliance.section.read |
Get a section by ID |
get_section_history |
compliance.section.read |
Return the change history of a section: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
list_action_plan_comments |
compliance.action_plan.read |
List comments on an action plan with threaded replies |
list_action_plans |
compliance.action_plan.read |
List action plans with optional search and filters |
list_assessment_results |
compliance.assessment.read |
List assessment results with optional search and filters |
list_compliance_assessments |
compliance.assessment.read |
List compliance assessments with optional search and filters |
list_findings |
compliance.finding.read |
List findings with optional search and filters |
list_frameworks |
compliance.framework.read |
List frameworks with optional search and filters |
list_requirement_mappings |
compliance.mapping.read |
List requirement mappings with optional search and filters |
list_requirement_risks |
compliance.requirement.read |
List all risks linked to a compliance requirement. Returns risk id, reference, name, current_risk_level, priority and status for each linked risk. |
list_requirements |
compliance.requirement.read |
List requirements with optional search and filters |
list_sections |
compliance.section.read |
List sections with optional search and filters |
requirement_allowed_transitions |
compliance.requirement.read |
List the lifecycle transitions the caller may perform on a requirement from its current state. |
semantic_search_requirements |
compliance.requirement.read |
Find framework requirements / controls by MEANING using embeddings (language-agnostic). Use for conceptual / topic questions when an exact reference is not given. Read-only; requires the semantic index to be built (AI_ASSISTANT_SEMANTIC_ENABLED). |
transition_action_plan |
compliance.action_plan.read |
Change the lifecycle state of a action plan (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_framework |
compliance.framework.read |
Change the lifecycle state of a framework (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_requirement |
compliance.requirement.read |
Change the lifecycle state of a requirement (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
update_action_plan |
compliance.action_plan.update |
Update an existing action plan |
update_assessment_result |
compliance.assessment.update |
Update an existing assessment result |
update_compliance_assessment |
compliance.assessment.update |
Update an existing compliance assessment |
update_finding |
compliance.finding.update |
Update an existing audit finding |
update_framework |
compliance.framework.update |
Update an existing framework |
update_requirement |
compliance.requirement.update |
Update an existing requirement |
update_requirement_mapping |
compliance.mapping.update |
Update an existing requirement mapping |
update_section |
compliance.section.update |
Update an existing section |
| Tool | Permission | Description |
|---|---|---|
activity_allowed_transitions |
context.activity.read |
List the lifecycle transitions the caller may perform on a activity from its current state. |
batch_create_activitys |
context.activity.create |
Create or upsert multiple activitys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_expectations |
context.expectation.create |
Create or upsert multiple expectations in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_indicator_measurements |
context.indicator.create |
Create or upsert multiple indicator measurements in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_indicators |
context.indicator.create |
Create or upsert multiple indicators in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_issues |
context.issue.create |
Create or upsert multiple issues in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_objectives |
context.objective.create |
Create or upsert multiple objectives in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_responsibilitys |
context.role.create |
Create or upsert multiple responsibilitys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_roles |
context.role.create |
Create or upsert multiple roles in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_scopes |
context.scope.create |
Create or upsert multiple scopes in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_sites |
context.site.create |
Create or upsert multiple sites in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_stakeholders |
context.stakeholder.create |
Create or upsert multiple stakeholders in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_swot_analysiss |
context.swot.create |
Create or upsert multiple swot analysiss in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_swot_items |
context.swot.create |
Create or upsert multiple swot items in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_swot_strategys |
context.swot.create |
Create or upsert multiple swot strategys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
create_activity |
context.activity.create |
Create a new activity |
create_expectation |
context.expectation.create |
Create a new expectation |
create_indicator |
context.indicator.create |
Create a new indicator |
create_indicator_measurement |
context.indicator.create |
Create a new indicator measurement |
create_issue |
context.issue.create |
Create a new issue |
create_objective |
context.objective.create |
Create a new objective |
create_responsibility |
context.role.create |
Create a new responsibility |
create_role |
context.role.create |
Create a new role |
create_scope |
context.scope.create |
Create a new scope |
create_site |
context.site.create |
Create a new site |
create_stakeholder |
context.stakeholder.create |
Create a new stakeholder |
create_stakeholder_feedback |
context.stakeholder_feedback.create |
Record formal feedback from an interested party (ISO 27001:2022 clause 9.3.2.e). |
create_swot_analysis |
context.swot.create |
Create a new swot analysis |
create_swot_item |
context.swot.create |
Create a new swot item |
create_swot_strategy |
context.swot.create |
Create a new swot strategy |
create_tag |
context.scope.create |
Create a tag |
delete_activity |
context.activity.delete |
Delete a activity |
delete_expectation |
context.expectation.delete |
Delete a expectation |
delete_indicator |
context.indicator.delete |
Delete a indicator |
delete_indicator_measurement |
context.indicator.delete |
Delete a indicator measurement |
delete_issue |
context.issue.delete |
Delete a issue |
delete_objective |
context.objective.delete |
Delete a objective |
delete_responsibility |
context.role.delete |
Delete a responsibility |
delete_role |
context.role.delete |
Delete a role |
delete_scope |
context.scope.delete |
Delete a scope |
delete_site |
context.site.delete |
Delete a site |
delete_stakeholder |
context.stakeholder.delete |
Delete a stakeholder |
delete_swot_analysis |
context.swot.delete |
Delete a swot analysis |
delete_swot_item |
context.swot.delete |
Delete a swot item |
delete_swot_strategy |
context.swot.delete |
Delete a swot strategy |
delete_tag |
context.scope.delete |
Delete a tag |
expectation_allowed_transitions |
context.expectation.read |
List the lifecycle transitions the caller may perform on a expectation from its current state. |
get_activity |
context.activity.read |
Get a activity by ID |
get_activity_history |
context.activity.read |
Return the change history of a activity: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_expectation |
context.expectation.read |
Get a expectation by ID |
get_expectation_history |
context.expectation.read |
Return the change history of a expectation: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_indicator |
context.indicator.read |
Get a indicator by ID |
get_indicator_history |
context.indicator.read |
Return the change history of a indicator: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_indicator_measurement |
context.indicator.read |
Get a indicator measurement by ID |
get_issue |
context.issue.read |
Get a issue by ID |
get_issue_history |
context.issue.read |
Return the change history of a issue: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_objective |
context.objective.read |
Get a objective by ID |
get_objective_history |
context.objective.read |
Return the change history of a objective: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_responsibility |
context.role.read |
Get a responsibility by ID |
get_responsibility_history |
context.role.read |
Return the change history of a responsibility: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_role |
context.role.read |
Get a role by ID |
get_role_history |
context.role.read |
Return the change history of a role: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_scope |
context.scope.read |
Get a scope by ID |
get_scope_history |
context.scope.read |
Return the change history of a scope: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_site |
context.site.read |
Get a site by ID |
get_site_history |
context.site.read |
Return the change history of a site: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_stakeholder |
context.stakeholder.read |
Get a stakeholder by ID |
get_stakeholder_history |
context.stakeholder.read |
Return the change history of a stakeholder: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_swot_analysis |
context.swot.read |
Get a swot analysis by ID |
get_swot_analysis_history |
context.swot.read |
Return the change history of a swot analysis: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_swot_item |
context.swot.read |
Get a swot item by ID |
get_swot_item_history |
context.swot.read |
Return the change history of a swot item: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_swot_strategy |
context.swot.read |
Get a swot strategy by ID |
get_swot_strategy_history |
context.swot.read |
Return the change history of a swot strategy: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
indicator_allowed_transitions |
context.indicator.read |
List the lifecycle transitions the caller may perform on a indicator from its current state. |
issue_allowed_transitions |
context.issue.read |
List the lifecycle transitions the caller may perform on a issue from its current state. |
list_activitys |
context.activity.read |
List activitys with optional search and filters |
list_expectations |
context.expectation.read |
List expectations with optional search and filters |
list_indicator_measurements |
context.indicator.read |
List indicator measurements with optional search and filters |
list_indicators |
context.indicator.read |
List indicators with optional search and filters |
list_issues |
context.issue.read |
List issues with optional search and filters |
list_objectives |
context.objective.read |
List objectives with optional search and filters |
list_responsibilitys |
context.role.read |
List responsibilitys with optional search and filters |
list_roles |
context.role.read |
List roles with optional search and filters |
list_scopes |
context.scope.read |
List scopes with optional search and filters |
list_sites |
context.site.read |
List sites with optional search and filters |
list_stakeholder_feedback |
context.stakeholder_feedback.read |
List formal stakeholder feedback (ISO 27001:2022 clause 9.3.2.e). |
list_stakeholders |
context.stakeholder.read |
List stakeholders with optional search and filters |
list_swot_analysiss |
context.swot.read |
List swot analysiss with optional search and filters |
list_swot_items |
context.swot.read |
List swot items with optional search and filters |
list_swot_strategys |
context.swot.read |
List swot strategys with optional search and filters |
list_tags |
context.scope.read |
List all tags |
objective_allowed_transitions |
context.objective.read |
List the lifecycle transitions the caller may perform on a objective from its current state. |
role_allowed_transitions |
context.role.read |
List the lifecycle transitions the caller may perform on a role from its current state. |
scope_allowed_transitions |
context.scope.read |
List the lifecycle transitions the caller may perform on a scope from its current state. |
site_allowed_transitions |
context.site.read |
List the lifecycle transitions the caller may perform on a site from its current state. |
stakeholder_allowed_transitions |
context.stakeholder.read |
List the lifecycle transitions the caller may perform on a stakeholder from its current state. |
swot_analysis_allowed_transitions |
context.swot.read |
List the lifecycle transitions the caller may perform on a swot analysis from its current state. |
swot_item_allowed_transitions |
context.swot.read |
List the lifecycle transitions the caller may perform on a swot item from its current state. |
swot_strategy_allowed_transitions |
context.swot.read |
List the lifecycle transitions the caller may perform on a swot strategy from its current state. |
transition_activity |
context.activity.read |
Change the lifecycle state of a activity (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_expectation |
context.expectation.read |
Change the lifecycle state of a expectation (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_indicator |
context.indicator.read |
Change the lifecycle state of a indicator (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_issue |
context.issue.read |
Change the lifecycle state of a issue (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_objective |
context.objective.read |
Change the lifecycle state of a objective (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_role |
context.role.read |
Change the lifecycle state of a role (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_scope |
context.scope.read |
Change the lifecycle state of a scope (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_site |
context.site.read |
Change the lifecycle state of a site (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_stakeholder |
context.stakeholder.read |
Change the lifecycle state of a stakeholder (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_swot_analysis |
context.swot.read |
Change the lifecycle state of a swot analysis (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_swot_item |
context.swot.read |
Change the lifecycle state of a swot item (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_swot_strategy |
context.swot.read |
Change the lifecycle state of a swot strategy (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
update_activity |
context.activity.update |
Update an existing activity |
update_expectation |
context.expectation.update |
Update an existing expectation |
update_indicator |
context.indicator.update |
Update an existing indicator |
update_indicator_measurement |
context.indicator.update |
Update an existing indicator measurement |
update_issue |
context.issue.update |
Update an existing issue |
update_objective |
context.objective.update |
Update an existing objective |
update_responsibility |
context.role.update |
Update an existing responsibility |
update_role |
context.role.update |
Update an existing role |
update_scope |
context.scope.update |
Update an existing scope |
update_site |
context.site.update |
Update an existing site |
update_stakeholder |
context.stakeholder.update |
Update an existing stakeholder |
update_swot_analysis |
context.swot.update |
Update an existing swot analysis |
update_swot_item |
context.swot.update |
Update an existing swot item |
update_swot_strategy |
context.swot.update |
Update an existing swot strategy |
| Tool | Permission | Description |
|---|---|---|
ask_assistant |
- | Ask Cairn's natural-language assistant a read-only question about GRC data (e.g. 'Which decisions were made at the last management review?'). Requires the optional AI assistant to be enabled (AI_ASSISTANT_ENABLED). The answer cites real records; data access enforces the caller's permissions. |
create_saved_filter |
- | Save a named list filter for the current user. query is the list's filter query string; view_key is the list key (e.g. context.issue). |
delete_saved_filter |
- | Delete one of the current user's saved list filters by id. |
get_dashboard_layout |
- | Get the currently authenticated user's home-dashboard widget layout (ordered list of {key, id, size, visible, zone, params}) and the catalogue of available widgets with their allowed sizes. id is the widget type and key is the per-instance id. A size is a 'WxH' tile token: width W in 1..4 quarter-columns (1=1/4 .. 4=full width) by height H in 1..4 fixed row units, e.g. '2x1' or '4x2'. A widget with multiple: true (e.g. 'indicator') can appear several times, each instance carrying its own params (the indicator widget takes {indicator: <id>, show_chart: bool}). |
get_me |
- | Get information about the currently authenticated user, including capability flags: 'can_override_import_dates' (may set created_at / updated_at on import) and 'can_create_users'. |
help |
- | Get usage documentation for the Cairn MCP server. Call without arguments for the full guide, or with a topic for focused help. Topics: context, assets, compliance, risks, incidents, batch, workflow, permissions, examples, users |
kanban_board |
- | Get the unified To do / Doing / Done board aggregating action plans, treatment actions, audits and risk assessments (read-only) |
list_notifications |
- | List the currently authenticated user's in-app notifications (most recent first), with the unread count. Set unread_only=true to only return unread notifications. |
list_saved_filters |
- | List the current user's saved list filters (own + shared). Optional view_key (e.g. 'context.issue') narrows to one list. |
mark_all_notifications_read |
- | Mark all of the authenticated user's unread notifications as read. |
mark_notification_read |
- | Mark one of the authenticated user's notifications as read. |
update_dashboard_layout |
- | Replace the currently authenticated user's home-dashboard widget layout. Pass layout as an ordered list of {key, id, size, visible, zone, params} instances; use get_dashboard_layout first to discover widget ids, allowed sizes and which widgets are 'multiple'. Give each instance of a 'multiple' widget a distinct key. The payload is sanitised against the registry. |
update_me |
- | Update the currently authenticated user's profile (self-service). Accepts first_name, last_name, phone, language, timezone, theme_preference. |
| Tool | Permission | Description |
|---|---|---|
batch_create_incident_evidences |
incidents.evidence.create |
Create or upsert multiple incident evidences in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_incident_notifications |
incidents.notification.create |
Create or upsert multiple incident notifications in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_incident_response_actions |
incidents.incident.create |
Create or upsert multiple incident response actions in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_incident_response_plans |
incidents.response_plan.create |
Create or upsert multiple incident response plans in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_incidents |
incidents.incident.create |
Create or upsert multiple incidents in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_obligation_templates |
incidents.response_plan.create |
Create or upsert multiple obligation templates in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_personal_data_breachs |
incidents.notification.create |
Create or upsert multiple personal data breachs in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_post_incident_reviews |
incidents.review.create |
Create or upsert multiple post incident reviews in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_reporting_authoritys |
incidents.response_plan.create |
Create or upsert multiple reporting authoritys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_security_events |
incidents.event.create |
Create or upsert multiple security events in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
create_evidence_custody_event |
incidents.evidence.update |
Record one handling act on an evidence item. The chain of custody is append-only: there is no update and no delete tool, and a mistake is corrected by appending a further act that states what the earlier one got wrong. The actor is always the calling account and the source is always 'manual'. Do not use this to assert an integrity verdict: call verify_evidence_integrity, which measures the artefact itself. |
create_incident |
incidents.incident.create |
Create a new incident |
create_incident_evidence |
incidents.evidence.create |
Create a new incident evidence |
create_incident_notification |
incidents.notification.create |
Create a new incident notification |
create_incident_response_action |
incidents.incident.create |
Create a new incident response action |
create_incident_response_plan |
incidents.response_plan.create |
Create a new incident response plan |
create_incident_timeline_entry |
incidents.incident.create |
Append one entry to an incident's chronology. The chronology is append-only: there is no update and no delete tool. A mistake is corrected by appending a further entry of type 'correction' that names the entry it supersedes and states why. The author is always the calling account and the source is always 'manual'. |
create_notification_filing |
incidents.notification.update |
Record that a notification obligation was actually transmitted. The filing log is append-only: there is no update and no delete tool, and an amendment is a further filing, never a rewrite. The first filing on an obligation runs through the lifecycle and freezes its lateness verdict; later filings insert without disturbing it. The submitter is always the calling account. |
create_obligation_template |
incidents.response_plan.create |
Create a new obligation template |
create_personal_data_breach |
incidents.notification.create |
Create a new personal data breach |
create_post_incident_review |
incidents.review.create |
Create a new post incident review |
create_reporting_authority |
incidents.response_plan.create |
Create a new reporting authority |
create_security_event |
incidents.event.create |
Create a new security event |
declare_incident_from_event |
incidents.event.validate |
Promote an assessed security event into an incident, as one atomic act. Creates the incident in draft, carries over the event's title, description, detection source, timestamps, reporter, scopes and affected assets, declares it through its lifecycle, links the event to it and moves the event to its confirmed-incident step. Requires both incidents.event.validate (via the transition) and incidents.incident.create. The event must be under assessment. Optional arguments override the values carried across. |
delete_incident |
incidents.incident.delete |
Delete a incident |
delete_incident_evidence |
incidents.evidence.delete |
Delete a incident evidence |
delete_incident_notification |
incidents.notification.delete |
Delete a incident notification |
delete_incident_response_action |
incidents.incident.delete |
Delete a incident response action |
delete_incident_response_plan |
incidents.response_plan.delete |
Delete a incident response plan |
delete_obligation_template |
incidents.response_plan.delete |
Delete a obligation template |
delete_personal_data_breach |
incidents.notification.delete |
Delete a personal data breach |
delete_post_incident_review |
incidents.review.delete |
Delete a post incident review |
delete_reporting_authority |
incidents.response_plan.delete |
Delete a reporting authority |
delete_security_event |
incidents.event.delete |
Delete a security event |
get_evidence_custody_event |
incidents.evidence.read |
Get a evidence custody event by ID |
get_evidence_custody_event_history |
incidents.evidence.read |
Return the change history of a evidence custody event. On an append-only ledger this is the tamper-detection surface: a row whose trail shows more writes than the design allows has been altered outside the supported paths. |
get_incident |
incidents.incident.read |
Get a incident by ID |
get_incident_evidence |
incidents.evidence.read |
Get a incident evidence by ID |
get_incident_evidence_history |
incidents.evidence.read |
Return the change history of a incident evidence: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_incident_history |
incidents.incident.read |
Return the change history of a incident: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_incident_notification |
incidents.notification.read |
Get a incident notification by ID |
get_incident_notification_history |
incidents.notification.read |
Return the change history of a incident notification: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_incident_response_action |
incidents.incident.read |
Get a incident response action by ID |
get_incident_response_action_history |
incidents.incident.read |
Return the change history of a incident response action: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_incident_response_plan |
incidents.response_plan.read |
Get a incident response plan by ID |
get_incident_response_plan_history |
incidents.response_plan.read |
Return the change history of a incident response plan: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_incident_timeline_entry |
incidents.incident.read |
Get a incident timeline entry by ID |
get_incident_timeline_entry_history |
incidents.incident.read |
Return the change history of a incident timeline entry. On an append-only ledger this is the tamper-detection surface: a row whose trail shows more writes than the design allows has been altered outside the supported paths. |
get_notification_filing |
incidents.notification.read |
Get a notification filing by ID |
get_notification_filing_history |
incidents.notification.read |
Return the change history of a notification filing. On an append-only ledger this is the tamper-detection surface: a row whose trail shows more writes than the design allows has been altered outside the supported paths. |
get_obligation_template |
incidents.response_plan.read |
Get a obligation template by ID |
get_obligation_template_history |
incidents.response_plan.read |
Return the change history of a obligation template: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_personal_data_breach |
incidents.notification.read |
Get a personal data breach by ID |
get_personal_data_breach_history |
incidents.notification.read |
Return the change history of a personal data breach: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_post_incident_review |
incidents.review.read |
Get a post incident review by ID |
get_post_incident_review_history |
incidents.review.read |
Return the change history of a post incident review: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_reporting_authority |
incidents.response_plan.read |
Get a reporting authority by ID |
get_reporting_authority_history |
incidents.response_plan.read |
Return the change history of a reporting authority: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_security_event |
incidents.event.read |
Get a security event by ID |
get_security_event_history |
incidents.event.read |
Return the change history of a security event: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
incident_allowed_transitions |
incidents.incident.read |
List the lifecycle transitions the caller may perform on a incident from its current state. |
incident_evidence_allowed_transitions |
incidents.evidence.read |
List the lifecycle transitions the caller may perform on a incident evidence from its current state. |
incident_notification_allowed_transitions |
incidents.notification.read |
List the lifecycle transitions the caller may perform on a incident notification from its current state. |
incident_response_plan_allowed_transitions |
incidents.response_plan.read |
List the lifecycle transitions the caller may perform on a incident response plan from its current state. |
list_evidence_custody_events |
incidents.evidence.read |
List evidence custody events with optional search and filters. Append-only ledger: there is no update or delete tool for it. |
list_incident_evidences |
incidents.evidence.read |
List incident evidences with optional search and filters |
list_incident_notifications |
incidents.notification.read |
List incident notifications with optional search and filters |
list_incident_response_actions |
incidents.incident.read |
List incident response actions with optional search and filters |
list_incident_response_plans |
incidents.response_plan.read |
List incident response plans with optional search and filters |
list_incident_timeline_entries |
incidents.incident.read |
List incident timeline entrys with optional search and filters. Append-only ledger: there is no update or delete tool for it. |
list_incidents |
incidents.incident.read |
List incidents with optional search and filters |
list_notification_filings |
incidents.notification.read |
List notification filings with optional search and filters. Append-only ledger: there is no update or delete tool for it. |
list_obligation_templates |
incidents.response_plan.read |
List obligation templates with optional search and filters |
list_overdue_incident_notifications |
incidents.notification.read |
List every notification obligation whose statutory deadline has passed with no filing recorded: the 'are we late' question answered in one call. Returns the obligation, its regime and recipient, the deadline, how many hours it is overdue, and the incident it belongs to with its manager. Obligations with no deadline, already filed, or in a terminal step are excluded. |
list_personal_data_breachs |
incidents.notification.read |
List personal data breachs with optional search and filters |
list_post_incident_reviews |
incidents.review.read |
List post incident reviews with optional search and filters |
list_reporting_authoritys |
incidents.response_plan.read |
List reporting authoritys with optional search and filters |
list_security_events |
incidents.event.read |
List security events with optional search and filters |
obligation_template_allowed_transitions |
incidents.response_plan.read |
List the lifecycle transitions the caller may perform on a obligation template from its current state. |
personal_data_breach_allowed_transitions |
incidents.notification.read |
List the lifecycle transitions the caller may perform on a personal data breach from its current state. |
post_incident_review_allowed_transitions |
incidents.review.read |
List the lifecycle transitions the caller may perform on a post incident review from its current state. |
reporting_authority_allowed_transitions |
incidents.response_plan.read |
List the lifecycle transitions the caller may perform on a reporting authority from its current state. |
security_event_allowed_transitions |
incidents.event.read |
List the lifecycle transitions the caller may perform on a security event from its current state. |
transition_incident |
incidents.incident.read |
Change the lifecycle state of a incident (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_incident_evidence |
incidents.evidence.read |
Change the lifecycle state of a incident evidence (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_incident_notification |
incidents.notification.read |
Change the lifecycle state of a incident notification (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_incident_response_plan |
incidents.response_plan.read |
Change the lifecycle state of a incident response plan (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_obligation_template |
incidents.response_plan.read |
Change the lifecycle state of a obligation template (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_personal_data_breach |
incidents.notification.read |
Change the lifecycle state of a personal data breach (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_post_incident_review |
incidents.review.read |
Change the lifecycle state of a post incident review (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_reporting_authority |
incidents.response_plan.read |
Change the lifecycle state of a reporting authority (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_security_event |
incidents.event.read |
Change the lifecycle state of a security event (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
update_incident |
incidents.incident.update |
Update an existing incident |
update_incident_evidence |
incidents.evidence.update |
Update an existing incident evidence |
update_incident_notification |
incidents.notification.update |
Update an existing incident notification |
update_incident_response_action |
incidents.incident.update |
Update an existing incident response action |
update_incident_response_plan |
incidents.response_plan.update |
Update an existing incident response plan |
update_obligation_template |
incidents.response_plan.update |
Update an existing obligation template |
update_personal_data_breach |
incidents.notification.update |
Update an existing personal data breach |
update_post_incident_review |
incidents.review.update |
Update an existing post incident review |
update_reporting_authority |
incidents.response_plan.update |
Update an existing reporting authority |
update_security_event |
incidents.event.update |
Update an existing security event |
verify_evidence_integrity |
incidents.evidence.update |
Re-measure an evidence artefact and append the result to its chain of custody. Returns one of three outcomes, which are never collapsed into each other: 'match' (the artefact was read and its digest equals the recorded content hash), 'mismatch' (it was read and the digest differs, which is a permanent chain-of-custody break) and 'not_verifiable' (the item is registered by reference, or the file is missing or unreadable, which is a claim about the storage and not about the artefact). The digest is measured, never asserted by the caller. |
| Tool | Permission | Description |
|---|---|---|
create_isms_change |
reports.management_review.update |
Record an ISMS change decided during a management review. |
create_management_review |
reports.management_review.create |
Create a management review (ISO 27001:2022 clause 9.3). |
create_management_review_decision |
reports.management_review.update |
Record a decision from a management review (ISO 27001:2022 clause 9.3.3). |
delete_report |
reports.report.delete |
Delete a generated report |
download_report |
reports.report.read |
Retrieve the binary content of a previously generated report. Returns the file as a base64-encoded string along with its content type, size and original filename. Use list_reports first to discover available report IDs. |
export_management_review |
reports.management_review.read |
Export a management review as DOCX (meeting minutes) or PPTX (presentation). Returns base64-encoded content. |
generate_audit_report |
reports.report.create |
Generate an audit report PDF for a completed or closed compliance assessment |
generate_management_review_docx |
reports.report.create |
Generate a management review meeting minutes document (Word) covering ISO 27001 clause 9.3 inputs: action plans, issues, stakeholders, security performance, risks, and improvement opportunities |
generate_management_review_pptx |
reports.report.create |
Generate a management review presentation (PowerPoint) covering ISO 27001 clause 9.3 inputs: action plans, issues, stakeholders, security performance, risks, and improvement opportunities |
generate_soa_report |
reports.report.create |
Generate a Statement of Applicability (SoA) PDF report for one or more frameworks |
get_management_review |
reports.management_review.read |
Get a management review by ID. |
list_isms_changes |
reports.management_review.read |
List ISMS changes decided during management reviews (ISO 27001:2022 clause 9.3.3). |
list_management_review_decisions |
reports.management_review.read |
List decisions (ISO 27001:2022 clause 9.3.3 outputs). Filter by review or status. |
list_management_reviews |
reports.management_review.read |
List management reviews (ISO 27001:2022 clause 9.3). Filter by status or scope. |
list_reports |
reports.report.read |
List generated reports, optionally filtered by report_type |
promote_decision_to_action_plan |
reports.management_review.update |
Create a ComplianceActionPlan from a management review decision. |
set_participant_signature |
reports.management_review.update |
Attach a graphical signature (data URI) to a participant for DOCX embedding. |
transition_management_review |
reports.management_review.update |
Transition a management review to a new status (planned -> in_preparation -> held -> closed, or cancelled). |
| Tool | Permission | Description |
|---|---|---|
batch_create_ebios_attack_path_steps |
risks.ebios_strategic.create |
Create or upsert multiple ebios attack path steps in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_attack_techniques |
risks.ebios_operational.create |
Create or upsert multiple ebios attack techniques in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_baseline_gaps |
risks.ebios_baseline.create |
Create or upsert multiple ebios baseline gaps in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_ecosystem_stakeholders |
risks.ebios_ecosystem.create |
Create or upsert multiple ebios ecosystem stakeholders in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_feared_events |
risks.ebios_baseline.create |
Create or upsert multiple ebios feared events in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_operational_scenarios |
risks.ebios_operational.create |
Create or upsert multiple ebios operational scenarios in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_pacs_measures |
risks.ebios_summary.create |
Create or upsert multiple ebios pacs measures in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_risk_sources |
risks.ebios_risk_source.create |
Create or upsert multiple ebios risk sources in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_security_baselines |
risks.ebios_baseline.create |
Create or upsert multiple ebios security baselines in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_sr_ov_pairs |
risks.ebios_risk_source.create |
Create or upsert multiple ebios sr ov pairs in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_strategic_scenarios |
risks.ebios_strategic.create |
Create or upsert multiple ebios strategic scenarios in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_study_frameworks |
risks.ebios_assessment.create |
Create or upsert multiple ebios study frameworks in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_summarys |
risks.ebios_summary.create |
Create or upsert multiple ebios summarys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_targeted_objectives |
risks.ebios_risk_source.create |
Create or upsert multiple ebios targeted objectives in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_ebios_workshops |
risks.ebios_assessment.create |
Create or upsert multiple ebios workshops in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_iso27005_risks |
risks.iso27005.create |
Create or upsert multiple iso27005 risks in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_risk_acceptances |
risks.acceptance.create |
Create or upsert multiple risk acceptances in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_risk_assessments |
risks.assessment.create |
Create or upsert multiple risk assessments in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_risk_criterias |
risks.criteria.create |
Create or upsert multiple risk criterias in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_risk_levels |
risks.criteria.create |
Create or upsert multiple risk levels in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_risk_treatment_plans |
risks.treatment.create |
Create or upsert multiple risk treatment plans in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_risks |
risks.risk.create |
Create or upsert multiple risks in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_scale_levels |
risks.criteria.create |
Create or upsert multiple scale levels in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_threats |
risks.threat.create |
Create or upsert multiple threats in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_treatment_actions |
risks.treatment.create |
Create or upsert multiple treatment actions in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_vulnerabilitys |
risks.vulnerability.create |
Create or upsert multiple vulnerabilitys in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
capture_ebios_risk_mappings |
risks.ebios_summary.update |
Snapshot the assessment's risk register into the EbiosSummary before / after JSON slots so the cartography can render the treatment effect. Pass capture_before / capture_after to scope the update; both default to true. |
consolidate_ebios_operational_scenario_to_risk |
risks.risk.create |
Materialise an EBIOS operational scenario into a Risk in the unified register. Idempotent: returns the existing Risk if the scenario has already been consolidated. |
consolidate_iso27005_risk |
risks.risk.create |
Materialise an ISO 27005 analysis (threat × vulnerability) into a Risk in the unified register. Idempotent: returns the existing Risk if the analysis has already been consolidated. The source link is preserved via source_entity_id / source_entity_type on the resulting Risk. |
create_ebios_attack_path_step |
risks.ebios_strategic.create |
Create a new ebios attack path step |
create_ebios_attack_technique |
risks.ebios_operational.create |
Create a new ebios attack technique |
create_ebios_baseline_gap |
risks.ebios_baseline.create |
Create a new ebios baseline gap |
create_ebios_ecosystem_stakeholder |
risks.ebios_ecosystem.create |
Create a new ebios ecosystem stakeholder |
create_ebios_feared_event |
risks.ebios_baseline.create |
Create a new ebios feared event |
create_ebios_operational_scenario |
risks.ebios_operational.create |
Create a new ebios operational scenario |
create_ebios_pacs_measure |
risks.ebios_summary.create |
Create a new ebios pacs measure |
create_ebios_risk_source |
risks.ebios_risk_source.create |
Create a new ebios risk source |
create_ebios_security_baseline |
risks.ebios_baseline.create |
Create a new ebios security baseline |
create_ebios_sr_ov_pair |
risks.ebios_risk_source.create |
Create a new ebios sr ov pair |
create_ebios_strategic_scenario |
risks.ebios_strategic.create |
Create a new ebios strategic scenario |
create_ebios_study_framework |
risks.ebios_assessment.create |
Create a new ebios study framework |
create_ebios_summary |
risks.ebios_summary.create |
Create a new ebios summary |
create_ebios_targeted_objective |
risks.ebios_risk_source.create |
Create a new ebios targeted objective |
create_ebios_workshop |
risks.ebios_assessment.create |
Create a new ebios workshop |
create_iso27005_risk |
risks.iso27005.create |
Create a new iso27005 risk |
create_risk |
risks.risk.create |
Create a new risk |
create_risk_acceptance |
risks.acceptance.create |
Create a new risk acceptance |
create_risk_assessment |
risks.assessment.create |
Create a new risk assessment |
create_risk_criteria |
risks.criteria.create |
Create a new risk criteria |
create_risk_level |
risks.criteria.create |
Create a new risk level |
create_risk_treatment_plan |
risks.treatment.create |
Create a new risk treatment plan |
create_scale_level |
risks.criteria.create |
Create a new scale level |
create_threat |
risks.threat.create |
Create a new threat |
create_treatment_action |
risks.treatment.create |
Create a new treatment action |
create_vulnerability |
risks.vulnerability.create |
Create a new vulnerability |
delete_ebios_attack_path_step |
risks.ebios_strategic.delete |
Delete a ebios attack path step |
delete_ebios_attack_technique |
risks.ebios_operational.delete |
Delete a ebios attack technique |
delete_ebios_baseline_gap |
risks.ebios_baseline.delete |
Delete a ebios baseline gap |
delete_ebios_ecosystem_stakeholder |
risks.ebios_ecosystem.delete |
Delete a ebios ecosystem stakeholder |
delete_ebios_feared_event |
risks.ebios_baseline.delete |
Delete a ebios feared event |
delete_ebios_operational_scenario |
risks.ebios_operational.delete |
Delete a ebios operational scenario |
delete_ebios_pacs_measure |
risks.ebios_summary.delete |
Delete a ebios pacs measure |
delete_ebios_risk_source |
risks.ebios_risk_source.delete |
Delete a ebios risk source |
delete_ebios_security_baseline |
risks.ebios_baseline.delete |
Delete a ebios security baseline |
delete_ebios_sr_ov_pair |
risks.ebios_risk_source.delete |
Delete a ebios sr ov pair |
delete_ebios_strategic_scenario |
risks.ebios_strategic.delete |
Delete a ebios strategic scenario |
delete_ebios_study_framework |
risks.ebios_assessment.delete |
Delete a ebios study framework |
delete_ebios_summary |
risks.ebios_summary.delete |
Delete a ebios summary |
delete_ebios_targeted_objective |
risks.ebios_risk_source.delete |
Delete a ebios targeted objective |
delete_ebios_workshop |
risks.ebios_assessment.delete |
Delete a ebios workshop |
delete_iso27005_risk |
risks.iso27005.delete |
Delete a iso27005 risk |
delete_risk |
risks.risk.delete |
Delete a risk |
delete_risk_acceptance |
risks.acceptance.delete |
Delete a risk acceptance |
delete_risk_assessment |
risks.assessment.delete |
Delete a risk assessment |
delete_risk_criteria |
risks.criteria.delete |
Delete a risk criteria |
delete_risk_level |
risks.criteria.delete |
Delete a risk level |
delete_risk_treatment_plan |
risks.treatment.delete |
Delete a risk treatment plan |
delete_scale_level |
risks.criteria.delete |
Delete a scale level |
delete_threat |
risks.threat.delete |
Delete a threat |
delete_treatment_action |
risks.treatment.delete |
Delete a treatment action |
delete_vulnerability |
risks.vulnerability.delete |
Delete a vulnerability |
ebios_ecosystem_stakeholder_allowed_transitions |
risks.ebios_ecosystem.read |
List the lifecycle transitions the caller may perform on a ebios ecosystem stakeholder from its current state. |
ebios_operational_scenario_allowed_transitions |
risks.ebios_operational.read |
List the lifecycle transitions the caller may perform on a ebios operational scenario from its current state. |
ebios_risk_source_allowed_transitions |
risks.ebios_risk_source.read |
List the lifecycle transitions the caller may perform on a ebios risk source from its current state. |
ebios_security_baseline_allowed_transitions |
risks.ebios_baseline.read |
List the lifecycle transitions the caller may perform on a ebios security baseline from its current state. |
ebios_sr_ov_pair_allowed_transitions |
risks.ebios_risk_source.read |
List the lifecycle transitions the caller may perform on a ebios sr ov pair from its current state. |
ebios_strategic_scenario_allowed_transitions |
risks.ebios_strategic.read |
List the lifecycle transitions the caller may perform on a ebios strategic scenario from its current state. |
ebios_summary_allowed_transitions |
risks.ebios_summary.read |
List the lifecycle transitions the caller may perform on a ebios summary from its current state. |
generate_iso27005_report |
risks.export.read |
Generate an ISO 27005 risk assessment DOCX report for a single assessment. The report covers context, criteria, threats, vulnerabilities, analyses, consolidated risks, treatment plans and acceptances. Persisted as a Report. |
generate_risk_register |
risks.export.read |
Generate an Excel (.xlsx) export of the risk register. Optional filters: scope_ids, assessment_id, status, priority. When omitted, scope filtering falls back to the user's allowed scopes. The generated file is persisted as a Report. |
get_ebios_attack_path_step |
risks.ebios_strategic.read |
Get a ebios attack path step by ID |
get_ebios_attack_path_step_history |
risks.ebios_strategic.read |
Return the change history of a ebios attack path step: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_attack_technique |
risks.ebios_operational.read |
Get a ebios attack technique by ID |
get_ebios_attack_technique_history |
risks.ebios_operational.read |
Return the change history of a ebios attack technique: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_baseline_gap |
risks.ebios_baseline.read |
Get a ebios baseline gap by ID |
get_ebios_baseline_gap_history |
risks.ebios_baseline.read |
Return the change history of a ebios baseline gap: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_ecosystem_stakeholder |
risks.ebios_ecosystem.read |
Get a ebios ecosystem stakeholder by ID |
get_ebios_ecosystem_stakeholder_history |
risks.ebios_ecosystem.read |
Return the change history of a ebios ecosystem stakeholder: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_feared_event |
risks.ebios_baseline.read |
Get a ebios feared event by ID |
get_ebios_feared_event_history |
risks.ebios_baseline.read |
Return the change history of a ebios feared event: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_operational_scenario |
risks.ebios_operational.read |
Get a ebios operational scenario by ID |
get_ebios_operational_scenario_history |
risks.ebios_operational.read |
Return the change history of a ebios operational scenario: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_pacs_measure |
risks.ebios_summary.read |
Get a ebios pacs measure by ID |
get_ebios_pacs_measure_history |
risks.ebios_summary.read |
Return the change history of a ebios pacs measure: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_risk_source |
risks.ebios_risk_source.read |
Get a ebios risk source by ID |
get_ebios_risk_source_history |
risks.ebios_risk_source.read |
Return the change history of a ebios risk source: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_security_baseline |
risks.ebios_baseline.read |
Get a ebios security baseline by ID |
get_ebios_security_baseline_history |
risks.ebios_baseline.read |
Return the change history of a ebios security baseline: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_sr_ov_pair |
risks.ebios_risk_source.read |
Get a ebios sr ov pair by ID |
get_ebios_sr_ov_pair_history |
risks.ebios_risk_source.read |
Return the change history of a ebios sr ov pair: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_strategic_scenario |
risks.ebios_strategic.read |
Get a ebios strategic scenario by ID |
get_ebios_strategic_scenario_history |
risks.ebios_strategic.read |
Return the change history of a ebios strategic scenario: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_study_framework |
risks.ebios_assessment.read |
Get a ebios study framework by ID |
get_ebios_study_framework_history |
risks.ebios_assessment.read |
Return the change history of a ebios study framework: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_summary |
risks.ebios_summary.read |
Get a ebios summary by ID |
get_ebios_summary_history |
risks.ebios_summary.read |
Return the change history of a ebios summary: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_targeted_objective |
risks.ebios_risk_source.read |
Get a ebios targeted objective by ID |
get_ebios_targeted_objective_history |
risks.ebios_risk_source.read |
Return the change history of a ebios targeted objective: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_ebios_workshop |
risks.ebios_assessment.read |
Get a ebios workshop by ID |
get_ebios_workshop_history |
risks.ebios_assessment.read |
Return the change history of a ebios workshop: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_iso27005_risk |
risks.iso27005.read |
Get a iso27005 risk by ID |
get_iso27005_risk_history |
risks.iso27005.read |
Return the change history of a iso27005 risk: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_mitre_attack_technique |
risks.ebios_operational.read |
Get a MITRE ATT&CK technique by ID. |
get_risk |
risks.risk.read |
Get a risk by ID |
get_risk_acceptance |
risks.acceptance.read |
Get a risk acceptance by ID |
get_risk_acceptance_history |
risks.acceptance.read |
Return the change history of a risk acceptance: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_risk_assessment |
risks.assessment.read |
Get a risk assessment by ID |
get_risk_assessment_history |
risks.assessment.read |
Return the change history of a risk assessment: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_risk_criteria |
risks.criteria.read |
Get a risk criteria by ID |
get_risk_criteria_history |
risks.criteria.read |
Return the change history of a risk criteria: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_risk_history |
risks.risk.read |
Return the change history of a risk: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_risk_level |
risks.criteria.read |
Get a risk level by ID |
get_risk_treatment_plan |
risks.treatment.read |
Get a risk treatment plan by ID |
get_risk_treatment_plan_history |
risks.treatment.read |
Return the change history of a risk treatment plan: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_scale_level |
risks.criteria.read |
Get a scale level by ID |
get_threat |
risks.threat.read |
Get a threat by ID |
get_threat_history |
risks.threat.read |
Return the change history of a threat: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_treatment_action |
risks.treatment.read |
Get a treatment action by ID |
get_vulnerability |
risks.vulnerability.read |
Get a vulnerability by ID |
get_vulnerability_history |
risks.vulnerability.read |
Return the change history of a vulnerability: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
iso27005_risk_allowed_transitions |
risks.iso27005.read |
List the lifecycle transitions the caller may perform on a iso27005 risk from its current state. |
link_risk_requirements |
risks.risk.update |
Link one or more compliance requirements to a risk. This is additive - existing links are preserved. Provide a risk_id and a list of requirement_ids to attach. |
link_treatment_plan_action_plans |
risks.treatment.update |
Link one or more compliance action plans to a risk treatment plan. This is additive - existing links are preserved. Provide a treatment_plan_id and a list of action_plan_ids to attach. |
list_ebios_attack_path_steps |
risks.ebios_strategic.read |
List ebios attack path steps with optional search and filters |
list_ebios_attack_techniques |
risks.ebios_operational.read |
List ebios attack techniques with optional search and filters |
list_ebios_baseline_gaps |
risks.ebios_baseline.read |
List ebios baseline gaps with optional search and filters |
list_ebios_ecosystem_stakeholders |
risks.ebios_ecosystem.read |
List ebios ecosystem stakeholders with optional search and filters |
list_ebios_feared_events |
risks.ebios_baseline.read |
List ebios feared events with optional search and filters |
list_ebios_operational_scenarios |
risks.ebios_operational.read |
List ebios operational scenarios with optional search and filters |
list_ebios_pacs_measures |
risks.ebios_summary.read |
List ebios pacs measures with optional search and filters |
list_ebios_risk_sources |
risks.ebios_risk_source.read |
List ebios risk sources with optional search and filters |
list_ebios_security_baselines |
risks.ebios_baseline.read |
List ebios security baselines with optional search and filters |
list_ebios_sr_ov_pairs |
risks.ebios_risk_source.read |
List ebios sr ov pairs with optional search and filters |
list_ebios_strategic_scenarios |
risks.ebios_strategic.read |
List ebios strategic scenarios with optional search and filters |
list_ebios_study_frameworks |
risks.ebios_assessment.read |
List ebios study frameworks with optional search and filters |
list_ebios_summarys |
risks.ebios_summary.read |
List ebios summarys with optional search and filters |
list_ebios_targeted_objectives |
risks.ebios_risk_source.read |
List ebios targeted objectives with optional search and filters |
list_ebios_workshops |
risks.ebios_assessment.read |
List ebios workshops with optional search and filters |
list_iso27005_risks |
risks.iso27005.read |
List iso27005 risks with optional search and filters |
list_mitre_attack_techniques |
risks.ebios_operational.read |
List MITRE ATT&CK techniques (Enterprise Matrix). Filterable by tactic, mitre_id and active flag. |
list_risk_acceptances |
risks.acceptance.read |
List risk acceptances with optional search and filters |
list_risk_assessments |
risks.assessment.read |
List risk assessments with optional search and filters |
list_risk_criterias |
risks.criteria.read |
List risk criterias with optional search and filters |
list_risk_levels |
risks.criteria.read |
List risk levels with optional search and filters |
list_risk_requirements |
risks.risk.read |
List all compliance requirements linked to a risk. Returns requirement id, reference, number, name, compliance_status and framework_id for each linked requirement. |
list_risk_treatment_plans |
risks.treatment.read |
List risk treatment plans with optional search and filters |
list_risks |
risks.risk.read |
List risks with optional search and filters |
list_scale_levels |
risks.criteria.read |
List scale levels with optional search and filters |
list_threats |
risks.threat.read |
List threats with optional search and filters |
list_treatment_actions |
risks.treatment.read |
List treatment actions with optional search and filters |
list_treatment_plan_action_plans |
risks.treatment.read |
List all compliance action plans linked to a risk treatment plan. Returns action plan id, reference, name, status, priority, progress_percentage and owner_id for each link. |
list_vulnerabilitys |
risks.vulnerability.read |
List vulnerabilitys with optional search and filters |
risk_acceptance_allowed_transitions |
risks.acceptance.read |
List the lifecycle transitions the caller may perform on a risk acceptance from its current state. |
risk_allowed_transitions |
risks.risk.read |
List the lifecycle transitions the caller may perform on a risk from its current state. |
risk_assessment_allowed_transitions |
risks.assessment.read |
List the lifecycle transitions the caller may perform on a risk assessment from its current state. |
risk_treatment_plan_allowed_transitions |
risks.treatment.read |
List the lifecycle transitions the caller may perform on a risk treatment plan from its current state. |
set_risk_requirements |
risks.risk.update |
Replace the full set of linked requirements on a risk. All previous links are removed and replaced by the supplied list. Pass an empty requirement_ids list to clear all links. |
set_treatment_plan_action_plans |
risks.treatment.update |
Replace the full set of compliance action plans linked to a risk treatment plan. All previous links are removed and replaced by the supplied list. Pass an empty action_plan_ids list to clear all links. |
threat_allowed_transitions |
risks.threat.read |
List the lifecycle transitions the caller may perform on a threat from its current state. |
transition_ebios_ecosystem_stakeholder |
risks.ebios_ecosystem.read |
Change the lifecycle state of a ebios ecosystem stakeholder (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_ebios_operational_scenario |
risks.ebios_operational.read |
Change the lifecycle state of a ebios operational scenario (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_ebios_risk_source |
risks.ebios_risk_source.read |
Change the lifecycle state of a ebios risk source (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_ebios_security_baseline |
risks.ebios_baseline.read |
Change the lifecycle state of a ebios security baseline (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_ebios_sr_ov_pair |
risks.ebios_risk_source.read |
Change the lifecycle state of a ebios sr ov pair (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_ebios_strategic_scenario |
risks.ebios_strategic.read |
Change the lifecycle state of a ebios strategic scenario (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_ebios_summary |
risks.ebios_summary.read |
Change the lifecycle state of a ebios summary (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_iso27005_risk |
risks.iso27005.read |
Change the lifecycle state of a iso27005 risk (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_risk |
risks.risk.read |
Change the lifecycle state of a risk (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_risk_acceptance |
risks.acceptance.read |
Change the lifecycle state of a risk acceptance (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_risk_assessment |
risks.assessment.read |
Change the lifecycle state of a risk assessment (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_risk_treatment_plan |
risks.treatment.read |
Change the lifecycle state of a risk treatment plan (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_threat |
risks.threat.read |
Change the lifecycle state of a threat (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_vulnerability |
risks.vulnerability.read |
Change the lifecycle state of a vulnerability (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
unlink_risk_requirements |
risks.risk.update |
Remove one or more compliance requirements from a risk. Only the specified links are removed; other links are preserved. Provide a risk_id and a list of requirement_ids to detach. |
unlink_treatment_plan_action_plans |
risks.treatment.update |
Remove one or more compliance action plans from a risk treatment plan. Only the specified links are removed; other links are preserved. |
update_ebios_attack_path_step |
risks.ebios_strategic.update |
Update an existing ebios attack path step |
update_ebios_attack_technique |
risks.ebios_operational.update |
Update an existing ebios attack technique |
update_ebios_baseline_gap |
risks.ebios_baseline.update |
Update an existing ebios baseline gap |
update_ebios_ecosystem_stakeholder |
risks.ebios_ecosystem.update |
Update an existing ebios ecosystem stakeholder |
update_ebios_feared_event |
risks.ebios_baseline.update |
Update an existing ebios feared event |
update_ebios_operational_scenario |
risks.ebios_operational.update |
Update an existing ebios operational scenario |
update_ebios_pacs_measure |
risks.ebios_summary.update |
Update an existing ebios pacs measure |
update_ebios_risk_source |
risks.ebios_risk_source.update |
Update an existing ebios risk source |
update_ebios_security_baseline |
risks.ebios_baseline.update |
Update an existing ebios security baseline |
update_ebios_sr_ov_pair |
risks.ebios_risk_source.update |
Update an existing ebios sr ov pair |
update_ebios_strategic_scenario |
risks.ebios_strategic.update |
Update an existing ebios strategic scenario |
update_ebios_study_framework |
risks.ebios_assessment.update |
Update an existing ebios study framework |
update_ebios_summary |
risks.ebios_summary.update |
Update an existing ebios summary |
update_ebios_targeted_objective |
risks.ebios_risk_source.update |
Update an existing ebios targeted objective |
update_ebios_workshop |
risks.ebios_assessment.update |
Update an existing ebios workshop |
update_iso27005_risk |
risks.iso27005.update |
Update an existing iso27005 risk |
update_risk |
risks.risk.update |
Update an existing risk |
update_risk_acceptance |
risks.acceptance.update |
Update an existing risk acceptance |
update_risk_assessment |
risks.assessment.update |
Update an existing risk assessment |
update_risk_criteria |
risks.criteria.update |
Update an existing risk criteria |
update_risk_level |
risks.criteria.update |
Update an existing risk level |
update_risk_treatment_plan |
risks.treatment.update |
Update an existing risk treatment plan |
update_scale_level |
risks.criteria.update |
Update an existing scale level |
update_threat |
risks.threat.update |
Update an existing threat |
update_treatment_action |
risks.treatment.update |
Update an existing treatment action |
update_vulnerability |
risks.vulnerability.update |
Update an existing vulnerability |
vulnerability_allowed_transitions |
risks.vulnerability.read |
List the lifecycle transitions the caller may perform on a vulnerability from its current state. |
| Tool | Permission | Description |
|---|---|---|
create_user |
system.users.create |
Provision a new user via the invitation flow so it can be referenced as an owner / reviewer. No password is accepted: the account is created with an unusable password and the response returns an 'activation_url' the invitee follows to set their first credential. 'groups' are role / group names that must already exist (use list_groups). Requires the system.users.create permission. |
get_company_settings |
system.config.read |
Get the company settings (name, application name, AI assistant name, address, accent colour, whether the company logo replaces the Cairn logo) |
get_group |
system.groups.read |
Get group details including permissions |
get_user |
system.users.read |
Get detailed information about a user |
list_access_logs |
system.audit_trail.read |
List access logs (authentication events) |
list_assistant_feedback |
system.assistant_feedback.read |
List user feedback on Ask Cairn answers (thumbs up/down and optional comment), with the original question, language and the LLM response. Read-only; for quality analysis. Feedback already marked corrected is excluded unless include_resolved=true. |
list_groups |
system.groups.read |
List all groups |
list_permissions |
system.groups.read |
List all available permissions |
list_users |
system.users.read |
List users with optional search |
update_company_settings |
system.config.update |
Update company settings (name, application name, AI assistant name, address, accent colour, and/or whether the company logo replaces the Cairn logo) |
| Tool | Permission | Description |
|---|---|---|
approve_trust_center_document_request |
trust_center.document_request.approve |
Approve a gated-document request: issues a time-limited signed download link and emails it to the requester. |
batch_create_trust_center_certifications |
trust_center.certification.create |
Create or upsert multiple trust center certifications in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_trust_center_documents |
trust_center.document.create |
Create or upsert multiple trust center documents in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_trust_center_measures |
trust_center.measure.create |
Create or upsert multiple trust center measures in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
batch_create_trust_center_subprocessors |
trust_center.subprocessor.create |
Create or upsert multiple trust center subprocessors in one call (max 500). Non-atomic: valid items are applied even if others fail. Pass 'match_on' (a list of field names, e.g. ["name"]) to make the call idempotent: each item whose match_on values already exist is UPDATED in place instead of duplicated, so a failed import can be safely replayed. Returns per-item status (created / updated / error) with created, updated and error counts. |
create_trust_center_certification |
trust_center.certification.create |
Create a new trust center certification |
create_trust_center_document |
trust_center.document.create |
Create a new trust center document |
create_trust_center_measure |
trust_center.measure.create |
Create a new trust center measure |
create_trust_center_subprocessor |
trust_center.subprocessor.create |
Create a new trust center subprocessor |
delete_trust_center_certification |
trust_center.certification.delete |
Delete a trust center certification |
delete_trust_center_document |
trust_center.document.delete |
Delete a trust center document |
delete_trust_center_measure |
trust_center.measure.delete |
Delete a trust center measure |
delete_trust_center_subprocessor |
trust_center.subprocessor.delete |
Delete a trust center subprocessor |
get_trust_center_certification |
trust_center.certification.read |
Get a trust center certification by ID |
get_trust_center_certification_history |
trust_center.certification.read |
Return the change history of a trust center certification: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_trust_center_document |
trust_center.document.read |
Get a trust center document by ID |
get_trust_center_document_history |
trust_center.document.read |
Return the change history of a trust center document: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_trust_center_document_request |
trust_center.document_request.read |
Get a Trust Center document request by ID. |
get_trust_center_measure |
trust_center.measure.read |
Get a trust center measure by ID |
get_trust_center_measure_history |
trust_center.measure.read |
Return the change history of a trust center measure: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
get_trust_center_settings |
trust_center.settings.read |
Get the public Trust Center settings (publication switch, headline, intro, security contact, theme). |
get_trust_center_subprocessor |
trust_center.subprocessor.read |
Get a trust center subprocessor by ID |
get_trust_center_subprocessor_history |
trust_center.subprocessor.read |
Return the change history of a trust center subprocessor: field-level diffs, approval events and lifecycle transitions (with comments where recorded) merged into one reverse-chronological timeline. |
list_trust_center_certifications |
trust_center.certification.read |
List trust center certifications with optional search and filters |
list_trust_center_document_requests |
trust_center.document_request.read |
List Trust Center gated-document access requests (optionally filter by workflow_state). |
list_trust_center_documents |
trust_center.document.read |
List trust center documents with optional search and filters |
list_trust_center_measures |
trust_center.measure.read |
List trust center measures with optional search and filters |
list_trust_center_subprocessors |
trust_center.subprocessor.read |
List trust center subprocessors with optional search and filters |
reject_trust_center_document_request |
trust_center.document_request.approve |
Reject a pending gated-document request, or revoke access for an approved one. A comment is required. |
transition_trust_center_certification |
trust_center.certification.read |
Change the lifecycle state of a trust center certification (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_trust_center_document |
trust_center.document.read |
Change the lifecycle state of a trust center document (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_trust_center_measure |
trust_center.measure.read |
Change the lifecycle state of a trust center measure (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
transition_trust_center_subprocessor |
trust_center.subprocessor.read |
Change the lifecycle state of a trust center subprocessor (e.g. draft -> pending -> validated -> archived). The transition is validated against the entity's workflow: required permission, mandatory comment, and side effects (owner notification on submit, validation stamping). |
trust_center_certification_allowed_transitions |
trust_center.certification.read |
List the lifecycle transitions the caller may perform on a trust center certification from its current state. |
trust_center_document_allowed_transitions |
trust_center.document.read |
List the lifecycle transitions the caller may perform on a trust center document from its current state. |
trust_center_measure_allowed_transitions |
trust_center.measure.read |
List the lifecycle transitions the caller may perform on a trust center measure from its current state. |
trust_center_subprocessor_allowed_transitions |
trust_center.subprocessor.read |
List the lifecycle transitions the caller may perform on a trust center subprocessor from its current state. |
update_trust_center_certification |
trust_center.certification.update |
Update an existing trust center certification |
update_trust_center_document |
trust_center.document.update |
Update an existing trust center document |
update_trust_center_measure |
trust_center.measure.update |
Update an existing trust center measure |
update_trust_center_settings |
trust_center.settings.update |
Update the public Trust Center settings. Set is_published=true to expose the public page and API; false takes the whole Trust Center offline (404). |
update_trust_center_subprocessor |
trust_center.subprocessor.update |
Update an existing trust center subprocessor |
Built from docs/ at v0.36.0. Edits made here are overwritten by the next release : open a pull request against the source instead.
- Administration
- Ask Cairn
- Assets and suppliers
- Compliance
- The dashboard
- Finding your way
- Getting started
- Incidents
- How records move
- Organisational context
- Reports and management review
- Risks
- Trust Center
- Architecture
- Configuration
- Contributing
- The documentation system
- Installation
- Internationalisation
- Operations
- Release process
- Security
- Testing
- Adding an assistant provider
- Adding a dashboard widget
- Adding a domain entity
- Declaring a lifecycle
- Adding an MCP tool
- Adding a REST endpoint
- Adding a report
- Interface conventions
- Dashboard widgets
- Lifecycles
- MCP tools
- MCP tool parameters : Assets
- MCP tool parameters : Compliance
- MCP tool parameters : Governance and context
- MCP tool parameters : General
- MCP tool parameters : Incidents
- MCP tool parameters : Reports and management review
- MCP tool parameters : Risks
- MCP tool parameters : System and administration
- MCP tool parameters : Trust Center
- Management commands
- Models
- Permissions
- REST endpoints
- Environment variables
- MCP server
- REST API
- Assistant module (Ask Cairn)
- Module 0: User Management and Access Control
- Module 1: Context and Organization
- Module 2: Asset Management
- Module 3: Compliance
- Module 4: Risk Management
- Module 4 bis - EBIOS Risk Manager
- Module 5 : Trust Center
- Module 6 : Security Incident Management
- Management review : ISO 27001:2022 compliance (clause 9.3)