Skip to main content
Glama
AIops-tools

compliance-aiops

Compliance AIops

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 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

定期封存 (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_timelineA

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
untilNo
bucketNoday

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Read-only nature is indicated by '[READ]', but no annotations exist. Description does not mention side effects, rate limits, data freshness, or output structure. Additional context like 'Op counts' being aggregated is helpful but leaves gaps for an AI agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is very short (two lines plus args list) and front-loaded with purpose. Every sentence is useful, though it could be expanded slightly for completeness without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 optional parameters, no annotations, and no output schema, the description explains core function and parameters but omits return format, examples, or edge cases. It is adequate for a simple monitoring tool but lacks full context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no descriptions (0% coverage). The description adds meaning: 'since / until: ISO timestamps bounding the period' and 'bucket: "hour" or "day"', which clarifies the parameters' types and allowed values beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb '[READ]' and resource 'Op counts bucketed by hour/day'. It specifies the purpose as 'monitoring-continuity evidence', differentiating it from sibling tools like query_audit_events that likely provide raw event details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly suggests use for monitoring via 'monitoring-continuity evidence' but lacks explicit when-to-use vs alternatives, when-not-to-use, or any exclusion criteria. No comparison to siblings is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

approval_reportA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
untilNo
high_onlyNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. The '[READ]' prefix indicates read-only safety, and the parameter documentation clarifies filtering behavior. However, it lacks details on data freshness, pagination, or response size, which are important for an agent to understand the tool's limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three distinct parts: a summary line, compliance context, and parameter list. It is front-loaded with the core purpose. Minor redundancy in repeating compliance standards could be slightly trimmed, but overall it's efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description provides a high-level indication of return structure ('the who/what/when/why/approval artifact') but does not specify exact fields or formatting. Important details like pagination, sorting, or error cases are missing, leaving some ambiguity for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains all three parameters: 'since / until: ISO timestamps' and 'high_only: True/False' with default. This adds sufficient semantic meaning beyond the raw schema, though the exact ISO 8601 format is implied rather than explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a report of 'high-risk write ops with approver + rationale', explicitly linking it to compliance standards (SOC 2, PCI, HIPAA). It distinguishes itself from sibling tools like 'query_audit_events' and 'activity_timeline' by focusing on approval trails for high-risk operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is for compliance reporting (SOC 2, PCI, HIPAA), but does not explicitly state when not to use it or mention alternatives among siblings. The compliance references imply usage scenarios, meeting the 'clear context, no exclusions' threshold.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bundle_schedule_hintA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cronNo0 2 * * 1
signNo
periodNo7d
frameworkYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and explicitly states 'WRITES NOTHING and starts no daemon', detailing the exact behavior. This fully discloses the side-effect-free nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the key insight '[READ]' and purpose, then explains behavior and parameters. While efficient, the Args section could be more concise, but overall each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 4 parameters, no output schema, and no annotations, the description covers purpose, behavior, and parameter semantics well. It could specify the exact output format (e.g., a string) but mentions 'master-password env note'. Adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description includes an Args section that explains each parameter with defaults, examples, and accepted values (e.g., framework list, cron format). This adds significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it composes and validates a cron line and command for periodic sealed-bundle generation, with the tag '[READ]' and explicit note that it writes nothing. This distinguishes it from execution-oriented siblings like generate_evidence_bundle and sign_bundle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description emphasizes that the tool only composes and validates, and does not execute or schedule, implying use when a ready-to-paste schedule hint is needed. It does not explicitly name alternatives, but the context of sibling tools and the read-only nature provides clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

control_evidenceA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
untilNo
frameworkYes
control_idYes
sample_sizeNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: populationSize is the full count, sample is capped, truncated and scanTruncated flags indicate limits. It explains what happens when limits are hit, which is critical for agent decision-making.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a summary line followed by bulleted argument explanations. Every sentence adds value; no fluff. It is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains return fields (populationSize, sample, truncated, scanTruncated). It covers key constraints and edge cases. However, it could mention the output format or provide a brief example for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description compensates fully. It explains each parameter: framework with examples, control_id with placeholder, since/until as ISO timestamps, sample_size as integer. This adds essential meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads evidence rows for a single control, along with population size and reproducible query. It specifies the verb (READ) and distinct resource, differentiating from sibling tools that operate on multiple controls or summaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for fetching evidence for a single control but does not explicitly state when to use it versus alternatives like coverage_summary or gap_analysis. No when-not-to-use or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

coverage_summaryB

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
untilNo
frameworkYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description labels the tool as [READ] indicating it is a read operation, and lists framework options. However, it fails to describe the output format or what 'coverage' entails, lacking detail on behavioral aspects beyond the basic read nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and includes a structured 'Args' section. It front-loads the purpose with [READ] and avoids extraneous content, but the brevity leaves some gaps.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain what the tool returns (e.g., coverage metrics per control). It does not, leaving the agent uncertain about the output structure. For a read tool with 3 parameters, this is a notable omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description compensates by defining framework values (hipaa, pci_dss, soc2, gdpr) and explaining since/until as ISO timestamps bounding the period. It adds meaning beyond the schema, though it could note that since/until are optional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides per-control coverage for a framework over a period, with the question 'are we covered?' clarifying its intent. However, it does not explicitly differentiate from sibling tools like gap_analysis or control_evidence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description only explains what the tool does, without any context on when it is appropriate or when to choose other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exceptions_reportA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
untilNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates the tool is read-only via '[READ]' and describes the content type. However, it lacks details on performance, permission requirements, aggregation, or pagination, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear header and parameter explanations. The sentence about 'denials prove governance' adds minor fluff but does not detract significantly. Overall, it is well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not explain the return format or structure. The mention of 'enforcement + anomaly evidence' is vague. In the context of 17 sibling tools, more differentiation and completeness regarding output would be beneficial for an agent to select correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains that 'since' and 'until' are ISO timestamps bounding the period, which adds meaningful context. Although more detail on optionality could be provided, this is sufficient for understanding the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: reading denied/error/budget-exceeded operations, providing enforcement and anomaly evidence. The prefix '[READ]' explicitly marks it as read-only. This distinguishes it from sibling tools like approval_report or query_audit_events which focus on approvals or general audit events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It only implies use for verifying enforcement via denials. No mention of prerequisites, when not to use, or comparisons with siblings like query_audit_events or coverage_summary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_bundleA

[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).

ParametersJSON Schema
NameRequiredDescriptionDefault
fmtNomarkdown
out_pathNo
bundle_pathYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the responsibility of disclosing behavior. It openly marks the operation as WRITE with medium risk, describes file output (including the .oscal.json naming), and outlines key limitations of the OSCAL format (unresolved control IDs, no 'partially satisfied' state). It does not address overwrite behavior or permissions, but the disclosed details are substantial and actionable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear one-line summary followed by a focused OSCAL caveat and a compact Args block. Every sentence provides necessary information; the OSCAL note is relevant because it explains a critical edge case and points to an alternative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no annotations and no output schema, the description covers the essential aspects: input formats, output behavior, file naming, and key limitations. It could mention what the function returns (if anything) or overwrite semantics, but the current content is sufficient for an agent to select and invoke the tool correctly in most contexts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description fully compensates by explaining every parameter: bundle_path (path to bundle .json), fmt (enumerated allowed values), and out_path (default behavior alongside the bundle). This adds meaning that the bare schema lacks and enables correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renders a bundle to markdown, CSV, JSON, or OSCAL formats, with a specific verb ('Render') and resource ('bundle'). It also distinguishes itself from the sibling tool oscal_assessment_results by noting that this tool writes a file while the sibling provides inline output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool (to render a bundle to a file) and explicitly directs users to read oscal_assessment_results first when inline output and limitations are needed. It does not exhaustively enumerate exclusions but provides sufficient guidance for choosing between the primary alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gap_analysisB

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
untilNo
frameworkYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool is read-only and includes a caveat about evidence strength, but fails to discuss auth requirements, rate limits, or any side effects. The output format is only vaguely described, lacking details on pagination or structure, which is insufficient for a tool with zero annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose and read indicator. Every sentence adds value: the overall function, the evidence caveat, and clear parameter explanations. No redundant or irrelevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has three parameters and no output schema. The description adequately explains the purpose and parameters, but does not detail the exact structure of the returned data (e.g., list of items with fields). Given the complexity of gap analysis, a bit more information about the output format would enhance completeness, but the current level is minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% parameter description coverage, so the description must compensate. It explains that 'framework' accepts values like hipaa, pci_dss, soc2, gdpr, and that 'since'/'until' are ISO timestamps bounding the period. This adds significant meaning. However, it does not specify the exact ISO format (e.g., ISO 8601) or provide examples, preventing a perfect score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a read operation that identifies controls with no or weak evidence, providing reasons and remediations. It distinguishes itself from sibling tools focused on audit sources, events, or bundles by specifying the gap analysis function. However, it does not explicitly differentiate from similar tools like 'coverage_summary' or 'control_evidence', so it's slightly less precise than the high standard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus its siblings. It mentions a caveat about audit trails vs design evidence, but this is a behavioral note, not a usage directive. There is no explicit 'when to use' or 'when not to use' information, nor any mention of alternative tools for specific scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_evidence_bundleA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
signNo
periodNo
out_pathNo
frameworkYes
period_endNo
period_startNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description fully handles behavioral disclosure: it declares a WRITE operation (risk=medium), details side effects (reads audit DBs, writes to ~/.compliance-aiops/bundles/), and explicitly states it touches no external system. This is comprehensive for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: first paragraph conveys purpose and key behaviors, second paragraph details parameters. Every sentence adds value, with no wasted words. It is front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no output schema, and no annotations, the description covers purpose, side effects, parameter details, and safety. It lacks return value details, but that is somewhat expected without an output schema. Overall, it is sufficient for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description comprehensively explains each parameter, including framework's allowed values, period_start/period_end as ISO timestamps, out_path default, sign behavior, and period's role as a convenience override. This adds significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool assembles and hash-chain-seals an evidence bundle for a framework, with specific verb-resource combo and scope. It distinguishes from siblings like verify_bundle and sign_bundle by emphasizing it writes a local artifact and doesn't touch external systems.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a happy-path usage scenario ('One-call happy path') but does not explicitly state when to use this tool versus alternatives like verify_bundle or sign_bundle. Exclusion criteria or prerequisites are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_audit_sourcesA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It marks the operation as '[READ]' and describes the action, but lacks details on failure cases, permissions, or side effects. For a zero-parameter read operation, this is adequate but not exemplary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first delivers the core functionality, the second provides usage guidance. Every sentence adds value; no redundant or vague language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is complete: it specifies what is listed, the file location pattern, the information returned, and a usage hint. It does not mention prerequisites or error conditions, but these are minor omissions for a non-destructive listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the empty schema has 100% coverage. The description correctly adds no parameter info, meeting the baseline of 4 for tools with no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('sibling audit DBs'), clearly distinguishes from sibling tools by focusing on enumeration of available audit sources, and explains what info is returned (readability + row counts). It also provides a usage hint, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'Call this first', indicating it is a preparatory step before other audit tools like query_audit_events. While it doesn't explicitly list when not to use it or name alternatives, the directive is clear and sufficient for the tool's simple nature.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_bundlesA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It mentions '[READ]' but does not disclose rate limits, pagination behavior, authentication requirements, or any potential side effects. The tool is a simple list but behavioral details are lacking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence with a '[READ]' tag front-loads the action. Every word earns its place; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is minimal. It explains what is listed but does not define 'chain head' or metadata fields. Given the sibling tools, more context would help an agent decide when to use it, but it is adequate for a simple list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so no parameter clarification is needed. The description adds value by specifying what is returned (chain head and metadata), which complements the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists previously generated bundles with chain head and metadata, using a '[READ]' prefix to indicate read-only action. It uniquely identifies the resource and distinguishes from creating, verifying, or exporting bundles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like verify_bundle or generate_evidence_bundle. The description does not explain when not to use it or suggest any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_frameworksA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description includes '[READ]' indicating read-only behavior, which is helpful given no annotations. It does not disclose caching, rate limits, or data freshness, but for a simple list tool, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. It is front-loaded with the READ tag and clearly conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Considering no parameters or output schema, the description is sufficiently complete. It specifies the output includes control counts, which is the key information an agent needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description does not need to add parameter meaning. Schema coverage is trivially 100%, and baseline is 4 per rubric.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists supported compliance frameworks (HIPAA, PCI-DSS, SOC 2, GDPR) and control counts, using a specific verb and resource. It distinguishes from sibling tools like list_audit_sources which list audit sources instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives are provided. However, the tool is simple with no parameters, so usage is straightforward. Some guidance comparing to coverage_summary or gap_analysis would improve this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oscal_assessment_resultsA

[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).

ParametersJSON Schema
NameRequiredDescriptionDefault
bundle_pathYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and delivers: returns inline, includes summary and limitations, deterministic UUIDs, and three specific OSCAL limitation workarounds (import-ap point, unresolved control ids, partial satisfaction handling). This is substantial behavioral disclosure beyond the input schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with [READ] and the core purpose, then uses each sentence to disclose consequential behavior. The length is justified by the lack of annotations and the need to explain uncommon OSCAL limitation handling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description covers return format, summary/limitations, determinism, param origin, and edge-case behavior. Nothing critical appears missing for selecting and invoking this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% but the single parameter is described in Args: 'Path to a bundle .json (from list_bundles)'. This adds type/provenance beyond the raw string schema, though it does not elaborate further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with '[READ] A sealed bundle as an OSCAL 1.2.3 Assessment Results document', naming a specific verb (read/convert) and resource. It distinguishes itself from export_bundle by noting writing a file is export_bundle's job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names export_bundle as the sibling for file writing and points to list_bundles for obtaining bundle_path. This gives clear when-to-use/when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_audit_eventsA

[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}. When truncated is true more events matched than were returned — narrow the filters or raise the limit. Never characterise the trail (counts, "no violations found") from a truncated result.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNo
limitNo
sinceNo
skillNo
untilNo
sourceNo
statusNo
approvedNo
selectorNo
risk_levelNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It labels the tool as read-only, explains the return format including 'truncated' flag, and warns against characterizing from truncated results. Missing auth/rate limit info, but otherwise transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise: a one-line summary, a bulleted arg list, and a return description with warning. No redundant sentences, well-structured for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, no enums, and no output schema, the description covers all necessary aspects: purpose, all parameter semantics, return format, and a critical behavioral caveat (truncation). Complete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description provides detailed explanations for all 10 parameters (e.g., 'source', 'approved', 'selector') that the input schema lacks. Adds meaning and usage context beyond type and default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly indicates a cross-tool audit event query with '[READ]' and 'the workhorse'. It distinguishes itself from sibling tools like 'undo_apply' and 'activity_timeline' by being a general query tool, though it could be more explicit about its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as 'activity_timeline' or verification tools. The description only warns about truncated results, which is a behavioral note, not a usage comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sign_bundleA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bundle_pathYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses risk level and reads encrypted store. No annotations provided, so description carries full burden; could detail output/return but sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with structured tags and clear sections. Front-loaded with risk level and action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a single-parameter tool with no output schema. Covers purpose, prerequisite, risk, and parameter type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'bundle_path' with description 'Path to a bundle .json' adds format context beyond schema title. Schema coverage 0% but description compensates minimally.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action 'Attach an HMAC signature over a bundle's seal' with specific verb and resource, distinguishing it from siblings like verify_bundle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes prerequisite (signing key in encrypted store) and implies when to use. Lacks explicit when-not but provides context for medium risk.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undo_applyA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNo
dry_runNo
undo_idYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description fully discloses behavioral traits: it is a write operation ([WRITE][risk=medium]), dispatches inverse tool, dry_run previews without execution, and token single-use. This is comprehensive for a tool without annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a header, description, and Args list. Slightly verbose with redundant '[WRITE][risk=medium]' but overall concise and front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers essential behavior: inverse tool dispatch, dry_run, token single-use. Lacks explicit mention of return values or error handling, but no output schema exists. Adequate for the tool's moderate complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds significant meaning beyond schema: explains undo_id source (from undo_list or _undo_id), target passed through to inverse tool, and dry_run purpose. Schema has 0% description coverage, so the description compensates fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Apply a recorded undo by dispatching its inverse tool.' This distinguishes it from sibling tools like undo_list, which lists undos, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides specific guidance: use dry_run to preview, token can only be applied once. However, it lacks explicit comparison to alternatives or when not to use the tool, though context signals imply its unique role among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undo_listA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
targetNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the burden. Explains truncation measurement, meaning of 'effectVerified', and notes that 'target' is unused but accepted for uniformity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose, each sentence adds value. Slightly verbose in places but still efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, includes return format example. Covers parameters, behavior, truncation, and effectVerified caveat comprehensively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description compensates well. Explains 'limit' (max rows, default 50, cap 500) and 'target' (unused). Could be more detailed about data types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with '[READ] List recorded, not-yet-applied undo tokens (most recent first)', immediately clarifying it's a read-only listing tool. Differentiates from sibling 'undo_apply' which actually applies the undo.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use 'undoId' with 'undo_apply'. Warns about 'effectVerified' field and advises checking live state. Could be improved by stating when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_bundleA

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
bundle_pathYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It declares read-only behavior and verification scope, but does not disclose side effects, requirements (e.g., file access), or what happens on verification failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two lines for purpose and one line per parameter. No filler or redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple 1-parameter tool with no output schema, the description covers the essential purpose and parameter context. Missing details on return value or verification outcome, but not critical for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, bundle_path, has 0% schema description coverage. The description adds meaning by specifying the expected format ('Path to a bundle .json produced by generate_evidence_bundle'), which aids correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a read operation that verifies a sealed evidence bundle, listing specific aspects: chain integrity, seal head, signature. This differentiates it from sibling tools like generate_evidence_bundle (creates) and sign_bundle (signs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The '[READ]' prefix hints at read-only usage, but no explicit when-to-use or when-not-to-use guidance is provided. Sibling tools like verify_source_chain may be alternatives, but no comparison is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_source_chainA

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
untilNo
sourceYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly marks the tool as read-only ([READ]) and mentions that row-id gaps may indicate deleted audit rows, providing behavioral insight. However, with no annotations, it does not disclose potential side effects, authorization requirements, or performance implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear summary line and an Args section. It front-loads the main purpose and provides essential usage guidance without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 parameters, no output schema), the description explains the purpose, output (chainHead, gap detection), and usage pattern. It does not cover error conditions or permissions, but for an audit verification tool, the provided information is sufficient for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds context to the 'source' parameter by linking it to list_audit_sources, and explains 'since/until' as ISO timestamps bounding the range. This adds value beyond the schema (which only defines types), but lacks format examples or boundary details like inclusive/exclusive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool verifies the source chain by returning chain head and detecting row-id gaps. The [READ] prefix indicates it's a read operation. It distinguishes from siblings like verify_bundle by focusing on source chain rather than bundle, but does not explicitly differentiate from query_audit_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises recording the chainHead and re-running later to detect changes, implying periodic use. However, it does not explicitly specify when to use this tool versus alternatives like query_audit_events or verify_bundle, nor does it mention prerequisites or restrictions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.10.0
    • Addedoscal_assessment_results
  2. 18 tool updatesv0.6.0
    • First observedactivity_timeline
    • First observedapproval_report
    • First observedbundle_schedule_hint
    • First observedcontrol_evidence
    • First observedcoverage_summary
    • First observedexceptions_report
    • First observedexport_bundle
    • First observedgap_analysis
    • First observedgenerate_evidence_bundle
    • First observedlist_audit_sources
    • First observedlist_bundles
    • First observedlist_frameworks
    • First observedquery_audit_events
    • First observedsign_bundle
    • First observedundo_apply
    • First observedundo_list
    • First observedverify_bundle
    • First observedverify_source_chain

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but there is slight overlap between query_audit_events, activity_timeline, coverage_summary, and control_evidence, as all deal with audit data. However, descriptions clarify their specific roles (raw events vs. counts vs. per-control summaries vs. one-control details).

Naming Consistency4/5

Tool names predominantly follow a verb_noun pattern (e.g., list_audit_sources, verify_bundle). A few use noun_noun (activity_timeline, coverage_summary) or verb_verb (undo_apply), but the overall pattern is predictable and readable.

Tool Count4/5

With 18 tools, the server covers a broad compliance domain including audit queries, evidence generation, bundling, verification, and reporting. The count is slightly high but each tool serves a distinct function, and none are redundant.

Completeness4/5

The tool set provides a comprehensive lifecycle for compliance evidence: querying, bundling, signing, verifying, exporting, and scheduling. Minor gaps exist (e.g., no tool to delete bundles or manage signing keys beyond signing), but core workflows are well-covered.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    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
    87
    MIT
  • A
    license
    A
    quality
    B
    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
  • F
    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.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables authorized compliance verification and security auditing through natural language, bridging AI assistants with industry-standard security tools for enterprise audits.
    24
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIops-tools/Compliance-AIops'

If you have feedback or need assistance with the MCP directory API, please join our Discord server