Skip to main content
Glama
compliance-aiops

compliance-aiops

Compliance AIops

Audit availability: Real writes require a committed pending audit row and stop before contacting the platform if storage is unavailable. Reads and previews may continue with a warning; new audit rows store outcome summaries rather than full responses.

Disclaimer: Community-maintained open-source project. Not affiliated with, endorsed by, or sponsored by any framework body or GRC vendor. HIPAA, PCI-DSS, SOC 2, GDPR and OSCAL are referenced descriptively; the frameworks and trademarks belong to their owners. MIT licensed.

Governed compliance-evidence tooling for AI-agent infrastructure ops. It reads the audit trails your governed AIops agents already write — the local ~/.<tool>-aiops/audit.db SQLite trails, all sharing one audit_log schema — and turns that activity into framework-mapped, hash-chain-sealed compliance evidence. It never scans your infrastructure and never replaces a GRC platform: it converts the trails you already produce into auditor-ready, tamper-evident evidence bundles.

Unlike the other tools in the AIops-tools line it is not a platform wrapper: no external API, no network, no platform credentials. Its only inputs are those on-disk audit databases, read read-only. That also makes it the easiest-to-self-test tool in the line — fully offline and deterministic.

Evidence, not certification. Fully offline; the source audit.db files remain the system of record. OSCAL export is a documented v0.2 roadmap item (v0.1 emits JSON + Markdown + CSV shaped to ease a future OSCAL Assessment-Results adapter).

Key features

  • Framework mapping with honest evidence-strength — audit events map to HIPAA §164.312 / PCI-DSS v4.0 / SOC 2 TSC / GDPR controls. Audit trails prove operating effectiveness strongly but control design / configuration only partially, and each control is labelled strong or partial. gap_analysis says so per control, with the caveat and a remediation hint.

  • Hash-chain-sealed evidence bundles — SHA-256 over ordered records (hash = SHA-256(prev_hash ‖ canonical_json(record)), genesis prev = 64 zeros). The chainHead is reproducible for the same (framework, period, sources). verify_bundle catches tampering; verify_source_chain detects row-id gaps / deletions in a source trail. An optional HMAC signature seals a bundle under a stored signing key.

  • Zero-network, read-only — no credentials, no outbound calls, no mutation of the source trails. Bundles are the only thing written, under ~/.compliance-aiops/bundles/.

  • Deterministic, test-verified integrity — the integrity claims are themselves covered by tests: synthetic audit DBs are built through the real governance-harness AuditEngine, a golden reproducible chainHead is asserted, and tamper tests confirm detection. No live infrastructure needed.

Related MCP server: TrustAtom MCP Server

What this tool does, and does not, decide

It reads your audit trails and writes evidence bundles — and records every operation. It does not decide whether producing or signing a bundle is allowed: that is the agent's judgement, or the filesystem permissions of the account it runs as. The source audit.db files are opened strictly read-only regardless, and the only thing ever written is a bundle under ~/.compliance-aiops/bundles/.

So there is no read-only switch, no policy file, no approval gate to configure. The one thing the tool guarantees is that nothing is silent: every call, over MCP and over the CLI alike, lands an audit row in ~/.compliance-aiops/audit.db.

Each tool declares a risk_level, kept in agreement with its [READ]/[WRITE] documentation tag by a test, and carried into the audit row as a descriptive tier — so a reviewer can see at a glance what a row was. It is a label, not a gate.

Tools (16 MCP tools)

Read / analysis (13)

Tool

Purpose

list_audit_sources

Discovered sibling audit DBs (path, tool, readable, row count)

query_audit_events

Cross-tool event query — filter by tool/skill/status/risk/approved/selector/since/until

activity_timeline

Event counts bucketed by hour or day

list_frameworks

Supported frameworks + control counts

coverage_summary

Per-control covered/weak/uncovered for ONE framework

control_evidence

Evidence rows + population + a reproducible query for ONE control

gap_analysis

Controls with no/weak evidence + honest caveat + remediation

approval_report

High-risk write ops + who approved + rationale (the CC8.1 / PCI 7-8 / HIPAA §312(a) artifact)

exceptions_report

Denied / error / budget_exceeded ops — enforcement + anomaly evidence

verify_source_chain

Chain head + row-id gap detection for one source

verify_bundle

Verify a sealed bundle: chain + seal head + optional signature

list_bundles

Bundles under ~/.compliance-aiops/bundles/

oscal_assessment_results

A sealed bundle as a NIST OSCAL 1.2.3 Assessment Results document, inline, with its limitations named

bundle_schedule_hint

Ready-to-paste cron line + non-interactive command for periodic sealing (writes nothing)

Write / artifact (3 — no external mutation)

Tool

Risk

Purpose

generate_evidence_bundle

low

One call: coverage + approval trail + exceptions + sealed records → a bundle .json

export_bundle

low

Render a bundle to markdown / csv / json / oscal

sign_bundle

medium

HMAC over the seal using the stored signing key

The CLI exposes a convenience subset; the full 19-tool surface is available over MCP.

Frameworks & controls

Framework

Sample controls (strength)

HIPAA (§164.312)

164.312(b) Audit controls (strong), 164.312(a)(1) Access control (strong), 164.312(c)(1) Integrity (strong)

PCI-DSS v4.0

10.2 Audit log content (strong), 10.3 Protect audit logs (strong), 7-8 Least privilege / authn (partial)

SOC 2 TSC

CC6.1 Logical access (strong), CC7.2 Monitoring (strong), CC8.1 Change management (strong)

GDPR

Art.30 Records of processing (partial), Art.32 Security of processing (strong)

ISO/IEC 27001:2022 (Annex A)

A.5.15 Access control (strong), A.5.16 Identity mgmt (strong), A.5.18 Access rights (partial), A.8.2 Privileged access (partial), A.8.15 Logging (strong), A.8.16 Monitoring (strong), A.8.32 Change management (strong)

等保2.0 (DJCP L3) (GB/T 22239-2019 三级)

8.1.5.4 安全审计 (strong), 8.1.4.2 访问控制 (partial), 8.1.5 安全管理中心/集中审计 (strong)

Install

uv tool install compliance-aiops      # or: pipx install compliance-aiops

Quick start

As a Claude Code plugin

One install gives an agent both the skill and the MCP server:

/plugin marketplace add AIops-tools/marketplace
/plugin install compliance-aiops@aiops-tools

The MCP server is fetched with uv and pinned to the package version this plugin declares, so an audit row can be traced back to the code that wrote it. Credentials are still configured with compliance-aiops init — see below.

As an OpenClaw plugin

The same bundle is published on ClawHub, where one install delivers the skill and its MCP server together:

openclaw plugins install clawhub:@zw008/compliance-aiops
openclaw skills info compliance-aiops          # expect: Visible to model: yes

Restart the OpenClaw gateway afterwards so it loads the plugin. The MCP server is fetched with uv, pinned to this exact release, so uvx has to be on PATH — without it the skill still installs but reports Visible to model: no. Credentials are configured exactly as below.

As a CLI or standalone MCP server

compliance-aiops init                 # discover sibling ~/.*-aiops/audit.db, set org name, optional signing key
compliance-aiops doctor               # which sibling audit DBs are present/readable
compliance-aiops overview             # audit sources + per-framework covered/total
compliance-aiops report coverage soc2 # per-control SOC 2 coverage
compliance-aiops bundle generate soc2 # sealed evidence bundle → ~/.compliance-aiops/bundles/
compliance-aiops bundle verify <path> # re-verify the chain + seal (+ signature)

Run as an MCP server (stdio):

export COMPLIANCE_AIOPS_MASTER_PASSWORD=...   # only needed to unlock a signing key
compliance-aiops mcp                          # or: compliance-aiops-mcp

Where that password then lives: an exported variable is readable by every process this shell starts and is recorded by shell history. On a shared or long-lived host, prefer the interactive prompt, or inject it from a secret manager for the life of the one command that needs it.

定期封存 (scheduled sealing)

Evidence bundles are most useful when sealed on a cadence (e.g. weekly), so each period has a tamper-evident anchor. This tool ships no daemon — instead bundle schedule prints a ready-to-paste cron line plus the exact non-interactive command, and writes nothing:

compliance-aiops bundle schedule soc2 --cron "0 2 * * 1" --period 7d --sign

It returns a cronLine you paste into crontab -e, for example:

0 2 * * 1 compliance-aiops bundle generate soc2 --period 7d --sign
  • --period (also available on bundle generate) is a convenience relative window — 7d, 24h, 2w, or last-7-days — resolved to a since/until pair ending "now", so each scheduled run seals the trailing window.

  • Export COMPLIANCE_AIOPS_MASTER_PASSWORD in the cron job's environment so a stored signing key unlocks non-interactively. Do not inline the real password in the crontab file — reference it from a protected env file.

Integrity & honest limits

  • Tamper-EVIDENT, not tamper-PROOF. The hash chain and optional signature let an auditor detect alteration; they do not prevent it. The source audit.db files remain the system of record — record the chainHead out-of-band if you need an independent anchor.

  • Operating effectiveness vs. design. An audit trail strongly evidences that a control ran (samples, approvals, denials) but only partially evidences that a control is designed / configured correctly (e.g. MFA required, least-privilege roles). Every control carries a strong / partial label and gap_analysis surfaces the caveat rather than overclaiming.

Supported scope & limitations

  • Evidence, not certification. This produces auditor-ready evidence bundles; it does not issue attestations, opinions, or certifications.

  • In scope: the six frameworks above, over the audit_log trails written by governed AIops tools discovered via ~/.*-aiops/audit.db.

  • Not in scope: it does not scan infrastructure, connect to any platform, or replace a GRC platform. For platform operations use the other AIops-tools.

  • OSCAL export is v0.2. v0.1 emits JSON + Markdown + CSV.

  • Interfaces may change before v1.0.

  • Verification: the integrity claims are covered by deterministic offline tests; see docs/VERIFICATION.md for the reproducible run.

Missing a capability?

Want another framework, control mapping, export format (OSCAL, CSV shape), or a verification you don't see here? Open an issue or a PR — contributions welcome.

Available Tools

19 tools
activity_timelineB
Read-only

[READ] Op counts bucketed by hour/day — monitoring-continuity evidence.

Args: since / until: ISO timestamps bounding the period. bucket: "hour" or "day".

Inputs: since, until, bucket.

approval_reportA
Read-only

[READ] High-risk write ops with approver + rationale (the change-approval trail).

The who/what/when/why/approval artifact for SOC 2 CC8.1, PCI 7-8, HIPAA §312(a).

Args: since / until: ISO timestamps bounding the period. high_only: True = only high/critical-risk writes (default); False = all writes.

Inputs: since, until, high_only.

bundle_schedule_hintA
Read-only

[READ] Ready-to-paste cron line + command for periodic sealed-bundle generation.

WRITES NOTHING and starts no daemon — it only composes and validates the crontab line and the exact non-interactive compliance-aiops bundle generate invocation (with the master-password env note) an operator can schedule.

Args: framework: hipaa / pci_dss / soc2 / gdpr / iso27001 / djcp_l3. cron: A standard 5-field cron expression (default: 02:00 every Monday). period: Relative window each run should cover (e.g. "7d", "last-7-days"). sign: If True, include --sign in the composed command.

Inputs: framework (required), cron, sign, period.

control_evidenceA
Read-only

[READ] Evidence rows for ONE control + population size + reproducible query.

Args: framework: hipaa / pci_dss / soc2 / gdpr. control_id: e.g. "164.312(b)", "10.2", "CC8.1", "Art.30". since / until: ISO timestamps bounding the period. sample_size: Number of representative evidence rows to include.

populationSize is the full evidence count; sample is capped at sample_size and sets truncated when there was more. scanTruncated reports whether the underlying event scan itself hit its cap — if it is true, the population is a slice and no coverage claim should be made from it.

Inputs: framework (required), control_id (required), since, until, +1 more.

coverage_summaryA
Read-only

[READ] Per-control coverage for a framework over a period (are we covered?).

Args: framework: hipaa / pci_dss / soc2 / gdpr. since / until: ISO timestamps bounding the reporting period.

Inputs: framework (required), since, until.

exceptions_reportB
Read-only

[READ] Denied / error / budget-exceeded ops — enforcement + anomaly evidence.

Denials prove the governance controls actually block, not rubber-stamp.

Args: since / until: ISO timestamps bounding the period.

Inputs: since, until.

export_bundleA
Destructive

[WRITE][risk=medium] Render a bundle to markdown / csv / json / oscal.

"oscal" emits a NIST OSCAL 1.2.3 Assessment Results document (written as .oscal.json). Read oscal_assessment_results first if you need the document inline plus its limitations — notably that control ids are not resolved against an imported OSCAL catalog, and that OSCAL has no "partially satisfied" state for the controls this tool evidences only partially.

Args: bundle_path: Path to a bundle .json. fmt: "markdown", "csv", "json", or "oscal". out_path: Output path (default: alongside the bundle).

Inputs: bundle_path (required), fmt, out_path.

gap_analysisA
Read-only

[READ] Controls with no/weak evidence, each with an honest reason + remediation.

States the design-vs-operating caveat: audit trails evidence operating effectiveness strongly and control design/configuration only partially.

Args: framework: hipaa / pci_dss / soc2 / gdpr. since / until: ISO timestamps bounding the period.

Inputs: framework (required), since, until.

generate_evidence_bundleA
Destructive

[WRITE][risk=medium] Assemble + hash-chain-seal an evidence bundle for a framework.

One-call happy path: coverage + approval trail + exceptions + sealed evidence records → a bundle .json under ~/.compliance-aiops/bundles/. Reads audit DBs and writes a local artifact only; touches no external system.

Args: framework: hipaa / pci_dss / soc2 / gdpr / iso27001 / djcp_l3. period_start / period_end: ISO timestamps bounding the reporting period. out_path: Where to write the bundle (default: the bundle dir). sign: If True and a signing key is stored, attach an HMAC signature. period: Convenience relative window (e.g. "7d", "last-7-days") used only when period_start / period_end are not supplied.

Inputs: framework (required), sign, period, out_path, +2 more.

list_audit_sourcesA
Read-only

[READ] List sibling audit DBs (~/.-aiops/audit.db) + readability/row counts.

Call this first to see which governed AIops tools' trails are available as compliance evidence.

Inputs: no named parameters.

list_bundlesB
Read-only

[READ] Previously generated bundles + their chain head and metadata.

Inputs: no named parameters.

list_frameworksA
Read-only

[READ] Supported compliance frameworks (HIPAA / PCI-DSS / SOC 2 / GDPR) + control counts.

Inputs: no named parameters.

oscal_assessment_resultsA
Read-only

[READ] A sealed bundle as an OSCAL 1.2.3 Assessment Results document.

Returns the document inline (writing a file is export_bundle's job) with a summary and an explicit limitations list. Three things OSCAL cannot express are handled rather than hidden: import-ap points at a back-matter resource saying no assessment plan exists; control ids are framework-native and NOT resolved against an imported catalog; and because status has only satisfied/not-satisfied, controls this tool evidences only PARTIALLY are reported satisfied with an evidence-strength prop plus remarks naming what the audit trail does not prove — the count is in summary so it cannot be skimmed past.

UUIDs are deterministic (v5, derived from the bundle's chain head), so re-exporting the same bundle produces a byte-identical document.

Args: bundle_path: Path to a bundle .json (from list_bundles).

Inputs: bundle_path (required).

query_audit_eventsA
Read-only

[READ] Cross-tool audit event query — the workhorse.

Args: source: Restrict to one source tool (e.g. nutanix-aiops). skill / tool / status / risk_level: Field filters. approved: True = only ops with an approver; False = only ops without one. selector: Evidence class filter — audit_trail / attribution / change / enforcement / exception. since / until: ISO timestamps bounding the period. limit: Max rows to return.

Returns {"events": [...], "count": N, "returned": N, "limit": L, "truncated": bool | null, "scanTruncated": bool}. When truncated is true more events matched than were returned — narrow the filters or raise the limit. With a selector, truncated is null when the bounded scan hit its cap before filling limit: more matches may exist. Never characterise the trail (counts, "no violations found") from a truncated or null-truncated result.

Inputs: tool, limit, since, skill, +6 more.

sign_bundleA
Destructive

[WRITE][risk=medium] Attach an HMAC signature over a bundle's seal (uses stored key).

Requires a signing key in the encrypted store ('compliance-aiops secret set signing-key'). Medium risk because it reads the encrypted secret store.

Args: bundle_path: Path to a bundle .json.

Inputs: bundle_path (required).

undo_applyA
Destructive

[WRITE][risk=medium] Apply a recorded undo by dispatching its inverse tool.

The inverse runs through its own governed tool, so its real risk tier is recorded there. Pass dry_run=True to preview the inverse call without executing it. A token can only be applied once.

Args: undo_id: The undoId from undo_list (or an _undo_id in a write result). dry_run: If True, preview the inverse tool + params without running it. target: Passed through to the inverse tool when it accepts a target.

Inputs: undo_id (required), target, dry_run.

undo_listA
Read-only

[READ] List recorded, not-yet-applied undo tokens (most recent first).

Each entry names the original tool, the inverse tool that undo_apply would run, and a human note. Use the undoId with undo_apply.

Returns {"undos": [...], "returned": N, "limit": L, "truncated": bool}. truncated is measured (one extra row is fetched), not guessed from a length coincidence: when it is true there are MORE tokens than shown, so re-run with a higher limit rather than reporting the list as complete.

Each entry carries effectVerified. False means the original write lost its response, so the change it reverses is PROBABLE, not confirmed — check the live state before applying, and do not report the result as a restore of a state that may never have been reached.

Args: limit: Max rows to return (default 50, capped at 500). target: Unused (undo state is host-local); accepted for CLI uniformity.

Inputs: limit, target.

verify_bundleA
Read-only

[READ] Verify a sealed evidence bundle: chain integrity, seal head, signature.

Args: bundle_path: Path to a bundle .json produced by generate_evidence_bundle.

Inputs: bundle_path (required).

verify_source_chainA
Read-only

[READ] Chain head for a source's current events + row-id gap detection.

Record the returned chainHead out-of-band; re-run later to detect changes. Row-id gaps may indicate deleted audit rows.

Args: source: Source tool name (from list_audit_sources). since / until: ISO timestamps bounding the range.

Inputs: source (required), since, until.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 19 tools

    Disambiguation4/5

    Most tools target clearly distinct objects/actions (evidence bundles, audit chains, reports, undo tokens), and descriptions cross-reference each other well. Minor overlaps remain: export_bundle(fmt=oscal) vs oscal_assessment_results both produce OSCAL from a bundle, and coverage_summary vs gap_analysis are complementary per-framework views that could be confused at a glance.

    Naming Consistency4/5

    All names use consistent snake_case with readable, domain-specific terms. Verb style is mixed (sign_bundle, verify_bundle vs coverage_summary, gap_analysis, approval_report) and a few are noun phrases, but the convention is never chaotic.

    Tool Count4/5

    19 tools is slightly above the typical well-scoped band, but the domain is broad (bundle lifecycle, audit querying, verification, reporting, undo, scheduling) and each tool maps to a distinct capability. Nothing looks like filler.

    Completeness4/5

    The surface covers the core lifecycle: generate, sign, verify, export (markdown/csv/json/OSCAL), list, coverage/control/gap analysis, audit query, chain verification, approval/exceptions reports, and undo list/apply. Gaps are minor — no bundle retrieval-by-id, retention/prune, or bundle diff/compare operations.

    Maintenance

    ActivityActive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables AI agents to sign decisions with post-quantum cryptographic proofs and maintain secure audit trails for compliance. It provides tools for stamping events, verifying chain integrity, and exporting audit data across industries like finance and healthcare.
      4
      81 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Provides cryptographic signing and verification for AI decisions to generate verifiable, Ed25519-signed receipts for compliance and auditing. It automatically maps AI actions to regulatory frameworks like HIPAA and SOX with high-performance, sub-3ms signing.
      4
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP-powered compliance copilot for SaaS stacks, enabling structured audit workflows including stack detection, module wiremapping, implementation directives, code verification, and security/infrastructure/legal readiness gates.
      AGPL 3.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Integrates authoritative security compliance frameworks (ISO 27001, NIST 800-53, OWASP ASVS, NIST SSDF) into AI-assisted development, offering control lookups, cross-framework mappings, build-time guardrails, and automated audit evidence generation.
      244 npm
      3
      MIT