Tools: Findings
listFindings
Section titled “listFindings”🔍 Read-only
List all findings (nonconformities, observations, exceptions) for the organization.
Parameters: { "organization_id": "org_xxx", "size": 50, "cursor": "optional_cursor", "filter": { "kind": "MAJOR_NONCONFORMITY", "status": "OPEN", "priority": "HIGH", "owner_id": "profile_xxx", "snapshot_id": null }}Supports: Pagination, filtering by kind, status, priority, owner, snapshot
Returns: Array of findings, next_cursor for pagination
Example:AI: "List all open nonconformities" [Uses listFindings tool with kind and status filters]getFinding
Section titled “getFinding”🔍 Read-only
Get a finding by ID.
Parameters: { "id": "finding_xxx"}Returns: Full finding details
Example:AI: "Get details for finding finding_abc123" [Uses getFinding tool]addFinding
Section titled “addFinding”✏️ Write
Add a new finding (nonconformity, observation, or exception) to the organization.
Parameters: { "organization_id": "org_xxx", "kind": "MINOR_NONCONFORMITY", "description": "Missing password policy enforcement", "source": "Internal audit", "identified_on": "2025-01-15T00:00:00Z", "root_cause": "Policy not configured", "corrective_action": "Implement password policy", "owner_id": "profile_xxx", "due_date": "2025-03-15T00:00:00Z", "status": "OPEN", "priority": "HIGH", "risk_id": "risk_xxx", "effectiveness_check": "Verify policy enforcement"}Kind values: MINOR_NONCONFORMITY, MAJOR_NONCONFORMITY, OBSERVATION, EXCEPTION
Status values: OPEN, IN_PROGRESS, CLOSED, RISK_ACCEPTED, MITIGATED, FALSE_POSITIVE
Priority values: LOW, MEDIUM, HIGH
Returns: Created finding object
Example:AI: "Add a major nonconformity for missing password policy" [Uses addFinding tool]updateFinding
Section titled “updateFinding”✏️ Write
Update an existing finding.
Parameters: { "id": "finding_xxx", "status": "IN_PROGRESS", "corrective_action": "Updated corrective action", "priority": "MEDIUM"}Returns: Updated finding object
Example:AI: "Mark finding finding_abc123 as in progress" [Uses updateFinding tool]deleteFinding
Section titled “deleteFinding”⚠️ Destructive
Delete a finding.
Parameters: { "id": "finding_xxx"}Returns: Deleted finding ID
Example:AI: "Delete finding finding_abc123" [Uses deleteFinding tool]linkFindingAudit
Section titled “linkFindingAudit”✏️ Write
Link a finding to an audit with a reference ID.
Parameters: { "finding_id": "finding_xxx", "audit_id": "audit_xxx", "reference_id": "NC-001"}Returns: Linked finding and audit objects
Example:AI: "Link finding finding_abc123 to audit audit_abc123 with reference NC-001" [Uses linkFindingAudit tool]unlinkFindingAudit
Section titled “unlinkFindingAudit”⚠️ Destructive
Unlink a finding from an audit.
Parameters: { "finding_id": "finding_xxx", "audit_id": "audit_xxx"}Returns: Confirmation of unlink
Example:AI: "Unlink finding finding_abc123 from audit audit_abc123" [Uses unlinkFindingAudit tool]listFindingAudits
Section titled “listFindingAudits”🔍 Read-only
List audits linked to a finding.
Parameters: { "finding_id": "finding_xxx", "size": 50, "cursor": "optional_cursor"}Supports: Pagination
Returns: Array of audits, next_cursor for pagination
Example:AI: "List all audits linked to finding finding_abc123" [Uses listFindingAudits tool]