Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Pretorin Compliance

PYPI · PRETORIN · SCANNED SEP 21

Access Pretorin controls, evidence, narratives, and local Plan-backed Campaigns from AI tools.

Available components

+16 this week 77 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 6 of 71 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
  • Repository check failed: the declared repository URL redirects; it must resolve directly. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability81
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 39099 tokens (~133/item across 293 items; 270 tools + 23 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
  • Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage93
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 78% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_evidence" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 272 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the Pretorin Compliance MCP server?

Pretorin Compliance runs locally as a PyPI package, launched with uvx pretorin. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · pretorin

# add to Claude Code
claude mcp add pretorin-ai-pretorin -- uvx pretorin
// .cursor/mcp.json
{
  "mcpServers": {
    "pretorin-ai-pretorin": {
      "command": "uvx",
      "args": [
        "pretorin"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "pretorin-ai-pretorin": {
      "command": "uvx",
      "args": [
        "pretorin"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add pretorin-ai-pretorin -- uvx pretorin
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pretorin-ai-pretorin": {
      "type": "local",
      "command": [
        "uvx",
        "pretorin"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add pretorin-ai-pretorin --command uvx --arg pretorin
# ~/.hermes/config.yaml
mcp_servers:
  pretorin-ai-pretorin:
    command: "uvx"
    args: ["pretorin"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "pretorin-ai-pretorin": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "pretorin"
      ]
    }
  }
}
# add to Vellum
assistant mcp add pretorin-ai-pretorin -t stdio -c uvx -a pretorin
// mcp.json
{
  "mcpServers": {
    "pretorin-ai-pretorin": {
      "command": "uvx",
      "args": [
        "pretorin"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +15
    • Stability: 0.90 → unverified security
    • Tool safety: pass → unverified security
    • Malware scan: unverified → pass security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Package version: 0.29.14 → 0.29.17 functional
    • Package version: 0.29.14 → 0.29.16 functional
    • Package version: 0.29.14 → 0.29.15 functional
  • 20 Sept 26 0
    • Package version: 0.29.13 → 0.29.14 functional
  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 −2
    • Stability: fail → 0.83 functional
    • Package version: 0.29.10 → 0.29.13 functional
    • Package version: 0.29.10 → 0.29.12 functional
    • Package version: 0.29.10 → 0.29.11 functional
  • 17 Sept 26 0
    • Package version: 0.29.9 → 0.29.10 functional
  • 16 Sept 26 +1
    • Package version: 0.29.8 → 0.29.9 functional
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 86 to 89.

  • 14 Sept 26 −2
    • Package version: 0.29.7 → 0.29.8 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed pypi/pretorin@0.29.17

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 71 packages
Packages resolved 71
Stale 4
No linked repository 2
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 270 exposed · ~37,551 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
accept_issue_risk ~298

Formally accept a canonical Issue's confirmed residual risk. The referenced evaluation must be the Issue's LATEST and already confirmed, and the Issue must still be open or in_progress. expires_at must be a timezone-aware future timestamp; review_frequency_days and next_review_at are only valid together and next_review_at must not exceed expires_at.

NameTypeReqDescription
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
control_implementation_idstringyesControl implementation ID returned by add_control_issue/get_control_issues
evidence_idsarray
expires_atstringyesTimezone-aware ISO 8601, in the future
framework_idstringOptional: Framework ID; defaults to active scope
issue_idstringyesCanonical Issue ID
next_review_atstringTimezone-aware ISO 8601
rationalestringyes
review_frequency_daysinteger
risk_evaluation_idstringyes
step_indexintegerCampaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

activate_plan ~406

Declare the ordered execution steps for a draft plan and transition it to active. This gates writes that carry that plan_id: start_task returns a scope-pinned draft, the calling agent declares what it will do, then activate_plan enables platform writes citing that plan_id. plan_id is optional on Tier-1 writes, so this is a pre-action contract for the routed flow rather than a hard security control. Supplied steps must be pending and indexed contiguously from zero; the list may be empty when workflow-required semantic phases are already present. Those phases are expanded authoritatively in the returned plan. Concrete actions declare a phase; the agent selects each recipe id, version, and parameters, while the Plan enforces its start/end lifecycle receipt. Standalone and control-assessment Campaign work share this workflow contract; the Campaign contributes frozen scope and outcome gates, not recipe choices. Acceptance criteria are additive for Campaign children too. Also accepts a legacy plan that is already active but declares no steps: supplying its steps here is the way to make such a plan completable.

NameTypeReqDescription
acceptance_criteriaarrayOptional ADDITIONAL completion-gate criteria. The workflow owns its Definition of Done, so criteria seeded into the draft by start_task always survive activation — entries here are added on top, and…
actorstringAgent identifier recorded on the initial structural snapshot.
expected_versionintegerOptional optimistic-locking guard for the draft read by the caller.
plan_idstringyes
reasonstringWhy this execution contract is being activated.
stepsarrayyesConcrete actions to insert into workflow-owned phases. May be empty when the draft already contains required phases. Echoed workflow anchors are accepted but unnecessary.

No output schema declared.

No examples provided.

add_control_issue ~504

Admit one independently supported control gap as a canonical Issue. New MCP work must use an issue-create recipe context carrying the unmet expectation, observed gap and source basis, risk basis, explicit clearance condition, minimum evidence, and prior-Issue deduplication result. Do not create Issues for optional advice, missing context, evidence suggestions, subtasks, or ai_analysis findings; the platform review reconciler owns AI finding Issues. Keep matcher-facing content to one sentence of at most 20 words and begin the title with the expectation key.

NameTypeReqDescription
allow_unverified_sourcesbooleanAllow writes when source attestation shows a mismatch. Defaults to false.
contentstringyesOne matcher-safe sentence (at most 20 words) stating the observed gap
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
detected_atstringOptional ISO 8601 detection timestamp
framework_idstringOptional: Framework ID; defaults to active scope
idempotency_keystringOptional organization-scoped retry key
inherent_impactstringyes
inherent_likelihoodstringyes
is_blockingbooleanEvidence-gap Issues must be false; demonstrated control deficiencies remain true.
issue_kindstringUse evidence_gap only for a completed search that did not observe required active-tier evidence.
plan_idstringOptional: ID of the agent-authored plan this write is part of. When supplied, the platform write is tagged with the plan and the plan's local produced_artifacts[] audit chain gets an entry.
recipe_context_idstringyesActive issue-create recipe context id from start_recipe. May be a single-control context or a family (multi-control) context for this control's system + framework.
risk_basisstringyesBasis for the initial provisional risk evaluation
search_contextstringSearch scope/query/result provenance for an evidence-gap Issue.
step_indexintegerOptional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied.
system_idstringOptional: The system ID or name
titlestringyesShort canonical Issue title

No output schema declared.

No examples provided.

add_control_note ~198

Deprecated alias for add_control_issue.

NameTypeReqDescription
allow_unverified_sourcesbooleanAllow writes when source attestation shows a mismatch. Defaults to false.
contentstringyesDeprecated note content; use add_control_issue for new gap or remediation work
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
framework_idstringOptional: Framework ID; defaults to active scope
recipe_context_idstringyesActive control-note-attestation recipe context id from start_recipe (legacy id for issue attestation). May be a single-control context or a family (multi-control) context for this control's system +…
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

add_issue_risk_evaluation ~231

Append a provisional risk evaluation for a canonical Issue. Confirm the determination with confirm_issue_risk_evaluation.

NameTypeReqDescription
basisstringyesRisk evaluation rationale
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
control_implementation_idstringyesControl implementation ID returned by add_control_issue/get_control_issues
framework_idstringOptional: Framework ID; defaults to active scope
inherent_impactstringyes
inherent_likelihoodstringyes
issue_idstringyesCanonical Issue ID
residual_impactstring
residual_likelihoodstring
step_indexintegerCampaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

answer_policy_question ~302

Answer one policy question. IMPORTANT: Before answering, you MUST (1) call get_policy_question_detail for guidance, and (2) research the local workspace — read source code, config files, existing policy documents, infrastructure definitions, and documentation to ground your answer in observable facts. Do not invent organizational facts, role titles, URLs, procedures, or policies. ANSWER-FIRST MODE — answer as many questions as possible directly from workspace evidence without involving the user. Submit these answers silently. GAP QUESTIONS — only for questions that require organizational knowledge not present in the workspace (e.g., role assignments, review frequencies, policy decisions, org-specific processes). Do NOT ask about things you can observe in code, config, CI, or docs. When you must ask, use this format: ── Gap Question [N of TOTAL gaps] ────────────────── [Short clarifying question — what you specifically need to know] Context: [1 sentence on what you already found] Suggested answers: a) [likely option] b) [alternative] c) Other ────────────────────────────────────────────────── Present ONE gap question at a time. Wait for the user's response, compose the final answer combining their input with workspace evidence, submit it, then move on.

NameTypeReqDescription
answerstringyesThe answer text. Set to null to clear.
policy_idstringyesOrganization policy ID
question_idstringyesQuestion ID to answer

No output schema declared.

No examples provided.

answer_scope_question ~310

Answer one scope question. IMPORTANT: Before answering, you MUST (1) call get_scope_question_detail for guidance, and (2) research the local workspace — read source code, config files, infrastructure definitions, and documentation to ground your answer in observable facts. Do not invent organizational facts, system names, network topologies, or boundaries. ANSWER-FIRST MODE — answer as many questions as possible directly from workspace evidence without involving the user. Submit these answers silently. INTERVIEW MODE — only for questions that require organizational knowledge not present in the workspace (e.g., role assignments, review frequencies, policy decisions, org-specific processes). Do NOT ask about things you can observe in code, config, CI, or docs. When you must ask, use this format: ── Scope Question [N of TOTAL] ────────────────── [Short clarifying question — what you specifically need to know] Context: [1 sentence on what you already found] Suggested answers: a) [likely option] b) [alternative] c) Other ────────────────────────────────────────────────── Present ONE clarifying question at a time. Wait for the user's response, compose the final answer combining their input with workspace evidence, submit it, then move on.

NameTypeReqDescription
answerstringyesThe answer text. Set to null to clear.
framework_idstringyesFramework ID
question_idstringyesQuestion ID to answer
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

apply_campaign ~61

Deprecated checkpoint compatibility only. Apply stored legacy proposals to Pretorin workflow records. Plan-backed Campaigns have no generic coordinator apply phase.

NameTypeReqDescription
checkpoint_pathstringyesLocal campaign checkpoint path
item_idsarrayOptional subset of item ids to apply

No output schema declared.

No examples provided.

approve_cci_implementation ~139

Explicitly and idempotently approve one CCI implementation through the Pretorin MCP. The CCI must already be past not_started with a substantive committed narrative and approval-supporting scoped evidence (verified, checksummed pending recipe evidence or valid evidence); the server returns 409 with missing prerequisites otherwise. Approval is recorded with agent source and approval stamps. This operation does not approve the parent NIST/DoD control; a human must do that in the UI.

NameTypeReqDescription
cci_uuidstringyesCCI catalog UUID, not the CCI-000XXX display label.
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

approve_issue_plan ~213

Approve a submitted canonical Issue treatment plan. Requires the plan to be pending_approval. Approval is what makes transition_issue_action legal on the plan's actions.

NameTypeReqDescription
approval_notestring
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
control_implementation_idstringyesControl implementation ID returned by add_control_issue/get_control_issues
framework_idstringOptional: Framework ID; defaults to active scope
issue_idstringyesCanonical Issue ID
plan_idstringyesIssue treatment-plan ID
step_indexintegerCampaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

approve_objective_implementation ~253

Explicitly and idempotently approve one assessment objective implementation through the Pretorin MCP. The objective must already be past not_started with a substantive committed narrative and approval-supporting scoped evidence; the server returns 409 with missing prerequisites otherwise. Approval is recorded with agent source and approval stamps and promotes the AI draft to the committed narrative. Issue-blind by design: it never consults control issues. This operation does not approve the parent control; a human does that in the UI. A Campaign worker must also provide its assigned child Plan coordinates and can approve only a grounded frozen objective whose objective-bound evidence requirements are authoritatively covered.

NameTypeReqDescription
objective_uuidstringyesThe objective implementation row UUID, not the '3.1.1.a' label.
plan_idstringOptional: ID of the agent-authored plan this write is part of. When supplied, the platform write is tagged with the plan and the plan's local produced_artifacts[] audit chain gets an entry.
step_indexintegerOptional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied.
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

approve_stig_rule_workflow ~130

Explicitly and idempotently approve the workflow for one exact STIG rule after the rule is in scope through confirmed applicability or a checklist, its latest exact-rule result passes, verified/checksummed recipe remediation evidence (or valid evidence) is linked to the workflow, and every linked Issue is reconciled. The server returns 409 with missing prerequisites otherwise. Pass the internal STIG rule UUID returned by the traceability/checklist surfaces.

NameTypeReqDescription
stig_rule_idstringyesInternal STIG rule UUID for the exact rule.
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

attach_vendor_systems ~67

Attach one or more systems to a vendor (SR-5 / SA-9 system-of-record mapping). Pass system_ids as an array of system IDs.

NameTypeReqDescription
system_idsarrayyesSystem IDs to attach (at least one).
vendor_idstringyesVendor ID

No output schema declared.

No examples provided.

attest_risk ~100

Produce a DSSE-signed attestation over the current reviewed risk state. The server rejects stale or missing reviews; any mutation after review requires another explicit review. The statement is auditor-facing and must explain the determination.

NameTypeReqDescription
attestation_statementstringyesAuditor-facing rationale for this signed determination.
attestation_typestringyes
risk_idstringyesRisk ID
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

attest_spec_inventory ~215

Attest the current asset inventory state, setting its last_attested_at on the scope page. Use AFTER submit_asset_inventory_diff has the inventory in the desired state. The asset inventory is a living kind (rows + attestation), not a file upload — there is no evidence_id to pass. Requires an active workflow (call start_task first).

NameTypeReqDescription
attestation_namestringOptional human-readable label for this inventory attestation.
plan_idstringOptional: ID of the agent-authored plan this write is part of. When supplied, the platform write is tagged with the plan and the plan's local produced_artifacts[] audit chain gets an entry.
step_indexintegerOptional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied.
sufficiencyobjectAuditor sufficiency envelope for the attestation. All fields optional; supply what the producing recipe run knows.
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

attest_spec_snapshot ~257

Attest a system_spec snapshot kind (boundary_diagram, network_dfd, ppsm, interconnection), setting its last_attested_at on the scope page. Typically called right after link_spec_snapshot. Pass the same `evidence_id` you linked, plus a `sufficiency` envelope describing the artifact's provenance. Requires an active workflow (call start_task first).

NameTypeReqDescription
evidence_idstringOptional: the linked evidence item being attested.
kindstringyesSnapshot kind to attest. One of boundary_diagram, network_dfd, ppsm, interconnection (per list_artifact_requirements).
plan_idstringOptional: ID of the agent-authored plan this write is part of. When supplied, the platform write is tagged with the plan and the plan's local produced_artifacts[] audit chain gets an entry.
step_indexintegerOptional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied.
sufficiencyobjectAuditor sufficiency envelope for the attestation. All fields optional; supply what the producing recipe run knows.
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

cancel_campaign ~62

Persist cancellation for an exact local Plan-backed Campaign before delivery to its execution owner. Committed platform writes are never rolled back. This local safety operation remains available during platform authentication or consent outages.

NameTypeReqDescription
campaign_plan_idstringyes
reasonstring

No output schema declared.

No examples provided.

cancel_plan ~128

Mark a plan as cancelled. Allowed only from 'active'. Idempotent: cancelling an already-cancelled plan is a no-op. Cannot cancel a completed plan. Cancellation skips the acceptance gate — a cancelled plan is 'stopped early', not 'delivered'.

NameTypeReqDescription
expected_versionintegerOptional optimistic-locking guard. If supplied, the call returns a structured version_conflict error if the plan's on-disk version no longer matches.
outcome_summarystringOptional reason for cancellation.
plan_idstringyes
postmortemobject

No output schema declared.

No examples provided.

check_campaign_runtime ~146

Read-only first gate for Campaign execution. Inspect the local Python dependencies, selected agent runtime, embedded Hatchet runtime, and optional TUI observer separately. This tool makes no platform calls, downloads, installations, reservations, Campaigns, or Plans. Call it before source preflight or preview_campaign; continue only when launch_ready is true. Managed native runtimes reported in deferred_setup may be installed only after explicit START confirmation; configured or PATH runtimes in deferred_validation are launched for validation only after START.

NameTypeReqDescription
agentstringOptional shared agent-harness override.
modelstring
model_providerstring
reasoning_effortstring

No output schema declared.

No examples provided.

check_context ~101

Cheap, unauthenticated probe of session grounding. Call at session start before start_task to learn whether the client is authenticated, which platform API endpoint and system/framework are active locally, and what to do next. Reads local CLI config only — no platform calls — so it's always safe and fast. Returns suggested_next as a plain-English hint, e.g., 'Run `pretorin login`' or 'Call `start_task` with an intent_verb'.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

check_sources ~168

Preflight source reachability and candidate recipes for one workflow/control. Use this after start_task and before opening recipe contexts.

NameTypeReqDescription
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
framework_idstringOptional framework ID; defaults to active scope
include_source_hintsbooleanReturn full per-expectation source_hints instead of compact hint summaries. Default: false
system_idstringOptional: The system ID or name
workflow_idstringyesWorkflow id returned by start_task, e.g. single-control

No output schema declared.

No examples provided.

claim_campaign_items ~98

Deprecated checkpoint compatibility only. Claim legacy prepared items for drafting with leases; Plan-backed Campaigns delegate dispatch and retries to embedded Hatchet.

NameTypeReqDescription
checkpoint_pathstringyesLocal campaign checkpoint path
item_idsarrayOptional exact items already assigned by an external orchestrator
lease_ownerstringStable identifier for the claiming agent
lease_ttl_secondsinteger
max_itemsinteger

No output schema declared.

No examples provided.

complete_issue_plan ~222

Complete an approved canonical Issue plan. Requires the plan to be approved and EVERY action on it to be completed. This moves the Issue to verification_pending, NOT closed — closure is the separate verify_issue decision.

NameTypeReqDescription
completion_notestringyes
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
control_implementation_idstringyesControl implementation ID returned by add_control_issue/get_control_issues
framework_idstringOptional: Framework ID; defaults to active scope
issue_idstringyesCanonical Issue ID
plan_idstringyesIssue treatment-plan ID
step_indexintegerCampaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

complete_plan ~275

Mark a plan as completed. Allowed only from 'active'. Idempotent: completing an already-completed plan is a no-op. Cannot complete a cancelled plan. The plan must declare at least one step, every step must be completed or skipped, and skipped steps must include an outcome_summary explaining why. Incomplete work returns a structured plan_incomplete error whose problems[] lists every unresolved step at once: each entry carries a reason of 'no_steps_declared' (plan-level, no step_index), 'step_not_terminal', or 'skipped_step_missing_reason', with step_index and status on the step-level entries. If the plan declares acceptance_criteria[], each criterion is evaluated against current platform state before the transition; any failures return a structured acceptance_failed error with the full list of failing criteria, and the plan stays active so the agent can fix the gaps and retry.

NameTypeReqDescription
expected_versionintegerOptional optimistic-locking guard. If supplied, the call returns a structured version_conflict error if the plan's on-disk version no longer matches — useful when the caller wants to be sure they are…
outcome_summarystringOne-paragraph summary of what the plan ultimately produced.
plan_idstringyes
postmortemobject

No output schema declared.

No examples provided.

confirm_issue_risk_evaluation ~282

Confirm a canonical Issue's risk evaluation — a governed determination, not a stronger append. Confirming supersedes or expires any active risk acceptance, recomputes gate_status, and can demote the control's approval gate. Requires the Issue to be open or in_progress. Use add_issue_risk_evaluation for a provisional assessment that decides nothing.

NameTypeReqDescription
basisstringyesRationale for the confirmed determination
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
control_implementation_idstringyesControl implementation ID returned by add_control_issue/get_control_issues
framework_idstringOptional: Framework ID; defaults to active scope
inherent_impactstringyes
inherent_likelihoodstringyes
issue_idstringyesCanonical Issue ID
residual_impactstring
residual_likelihoodstring
step_indexintegerCampaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

create_custom_policy ~50

Create a platform-native custom policy from an explicit definition. Evidence Locker content is supporting material and must never be converted into a definition.

NameTypeReqDescription
definitionobjectyes
is_requiredboolean

No output schema declared.

No examples provided.

create_evidence ~664

Upsert an evidence item on the platform (find-or-create by default) using a short summary plus a standalone Markdown evidence artifact within one active system/framework scope. Evidence artifacts must not contain section headers, standalone bold labels, or gap/issue/remediation-backlog discussion.

NameTypeReqDescription
allow_unverified_sourcesbooleanAllow writes when source attestation shows a mismatch. Defaults to false.
artifact_contentstringyesMarkdown body containing the actual evidence artifact. Start directly with factual content; omit section headers, standalone bold labels, and gap or issue discussion.
capture_methodstringSource capture method, e.g. repository_file_read, api_export, scanner_output
code_commit_hashstringGit commit hash
code_file_pathstringPath to source file (relative to workspace root)
code_line_numbersstringLine range (e.g., '10-25')
code_repositorystringGit repository URL
code_snippetstringRelevant code excerpt
control_idstringOptional: The control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
dedupebooleanWhether to reuse exact-matching org evidence before creating
descriptionstringyesShort human summary of what the evidence demonstrates
evidence_typestringyesType of evidence (required, must be one of the canonical values)
framework_idstringOptional: Associated framework ID; defaults to active scope
namestringyesEvidence name
plan_idstringOptional: ID of the agent-authored plan this write is part of. When supplied, the platform write is tagged with the plan and the plan's local produced_artifacts[] audit chain gets an entry.
recipe_context_idstringyesRequired for MCP agent writes. Active recipe execution context from start_recipe; the resulting evidence is stamped producer_kind='recipe' with the context's recipe id and version.
source_excerptstringShort quoted excerpt or source material used to produce the evidence claim
source_labelstringHuman-readable source title or section label
source_locatorstringPrecise source locator, e.g. 'section 3.7', 'lines 84-88', or 'page 4 paragraph 2'. Strongly recommended: the platform audit-metadata contract requires a locator for agent-produced evidence (issue #7…
source_uristringStable source path, URL, object id, report id, or export id used for provenance
step_indexintegerOptional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

create_evidence_batch ~245

Create and link multiple evidence items within exactly one active system/framework scope. Evidence artifacts must not contain section headers, standalone bold labels, or gap/issue/remediation-backlog discussion.

NameTypeReqDescription
allow_unverified_sourcesbooleanAllow writes when source attestation shows a mismatch. Defaults to false.
framework_idstringOptional: Framework ID; defaults to active scope
itemsarrayyesScoped evidence items to create and link
plan_idstringOptional: ID of the agent-authored plan this write is part of. When supplied, the platform write is tagged with the plan and the plan's local produced_artifacts[] audit chain gets an entry.
recipe_context_idstringyesRequired for MCP agent writes. Active recipe execution context from start_recipe; every item in the batch is stamped producer_kind='recipe'. All items share the same context — per-item context variat…
step_indexintegerOptional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

create_issue_action ~198

Append an action or milestone to a draft canonical Issue treatment plan.

NameTypeReqDescription
actionobjectyesComplete editable action or milestone
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
control_implementation_idstringyesControl implementation ID returned by add_control_issue/get_control_issues
framework_idstringOptional: Framework ID; defaults to active scope
issue_idstringyesCanonical Issue ID
plan_idstringyesIssue treatment-plan ID
step_indexintegerCampaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

create_issue_plan ~185

Create the next editable treatment-plan version for a canonical Issue.

NameTypeReqDescription
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
control_implementation_idstringyesControl implementation ID returned by add_control_issue/get_control_issues
framework_idstringOptional: Framework ID; defaults to active scope
issue_idstringyesCanonical Issue ID
planobjectyesComplete editable treatment-plan draft
step_indexintegerCampaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

create_plan ~429

Persist an agent-authored work plan locally to ~/.pretorin/plans/<id>.json. Plans are the persistence layer for the canonical agent execution contract — a declarative, resumable, auditable record of scope, intent, steps, expected outputs, and acceptance criteria. A future session can resume, replace, or audit the work via the returned plan id. Plans are local-only today; nothing in the platform contract changes when a plan is written. Returns the full plan record including the generated plan id. When steps are omitted, the plan is created as a draft and must be activated before platform writes.

NameTypeReqDescription
acceptance_criteriaarrayOptional typed conditions the platform must verify before complete_plan succeeds. Empty list (default) leaves the gate open — plan can be completed unconditionally. Each criterion carries a fixed enu…
campaign_contextobject
campaign_typestring
created_by_agentstringIdentifier for the agent creating the plan (e.g. 'claude-code-1.2.3').
intent_inputs_snapshotobjectFree-form snapshot of inputs that shaped the plan (user prompt, active scope, etc.) so the audit trail captures the *why*.
intent_summarystringyesOne-paragraph statement of what the agent intends to do and why. Used by future sessions to decide whether to resume or replace.
parent_plan_idstring
plan_kindstring
scopeobjectScope this plan operates on (system/framework/control).
stepsarrayOrdered list of intended steps. Indices must be contiguous from 0.
workflow_idstringyesWorkflow id this plan executes (e.g. 'single-control').

No output schema declared.

No examples provided.

create_risk ~242

Create a custom risk in a system's register. Pass `treatment` + `treatment_plan` + `treatment_due_date` to record a mitigation in one call. Auto-link is opt-in: supply `framework_id` AND `suggested_control_families` (and the system must have ControlImplementation rows for that framework) — otherwise the risk is created with zero links and the agent should follow up with link_risk_artifact.

NameTypeReqDescription
categorystringyesRisk category
cia_categorystring
descriptionstring
framework_idstringFramework ID — required for control auto-linking.
impactstring
likelihoodstring
owner_idstring
review_frequency_daysinteger
suggested_control_familiesarrayControl family IDs for auto-linking (requires framework_id).
system_idstringyesThe system ID or name
titlestringyesRisk title
treatmentstring
treatment_due_datestringISO date
treatment_planstring

No output schema declared.

No examples provided.

create_stig_checklist ~138

Create an asset-scoped STIG checklist bound to a benchmark + asset. Returns the new checklist summary (including its id). Fails if one already exists for that (benchmark, asset), or if the benchmark/asset is unknown. Create-or-resolve a checklist this way before importing scanner output.

NameTypeReqDescription
inventory_item_idstringyesAsset inventory item ID to bind the checklist to
stig_benchmark_idstringyesSTIG benchmark ID to bind (e.g. RHEL_9_STIG)
system_idstringyesThe system ID or name
titlestringOptional checklist title

No output schema declared.

No examples provided.

create_vendor ~138

Create a new vendor entity. Required: name, provider_type (csp, saas, managed_service, internal). Optional: description, authorization_level, owner_user_id, inherent_risk.

NameTypeReqDescription
authorization_levelstringOptional authorization level (e.g., FedRAMP High P-ATO)
descriptionstringOptional vendor description
inherent_riskstringInherent risk band. 'medium' is a deprecated alias for 'moderate'.
namestringyesVendor name
owner_user_idstringOptional vendor owner user ID
provider_typestringyesType of provider

No output schema declared.

No examples provided.

create_vendor_contact ~109

Create a contact for a vendor. Requires the server-side `vendor.pii` scope (or an admin token). Setting is_primary auto-demotes the prior primary contact.

NameTypeReqDescription
emailstring
is_primarybooleanMark as primary contact (auto-demotes the prior primary).
namestringyesContact name
notesstring
phonestring
titlestring
vendor_idstringyesVendor ID

No output schema declared.

No examples provided.

create_vendor_contract ~171

Create a contract for a vendor. Requires the server-side `vendor.pii` scope (or an admin token). status and is_expired are server-derived and cannot be set.

NameTypeReqDescription
auto_renewboolean
contract_typestringyesContract type
document_evidence_item_idstring
end_datestringEnd date (ISO-8601)
namestringyesContract name
notesstring
notice_period_daysinteger
renewal_datestringRenewal date (ISO-8601)
start_datestringStart date (ISO-8601)
terminated_atstringTermination timestamp (ISO-8601)
vendor_idstringyesVendor ID

No output schema declared.

No examples provided.

delete_evidence ~149

Delete an evidence item from the platform (system-scoped, requires WRITE access)

NameTypeReqDescription
evidence_idstringyesThe evidence item ID to delete
framework_idstringOptional: Framework ID; defaults to active scope
plan_idstringOptional: ID of the agent-authored plan this write is part of. When supplied, the platform write is tagged with the plan and the plan's local produced_artifacts[] audit chain gets an entry.
step_indexintegerOptional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

delete_issue_action ~199

Delete an action while its canonical Issue treatment plan is still a draft.

NameTypeReqDescription
action_idstringyesIssue plan action ID
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
control_implementation_idstringyesControl implementation ID returned by add_control_issue/get_control_issues
framework_idstringOptional: Framework ID; defaults to active scope
issue_idstringyesCanonical Issue ID
plan_idstringyesIssue treatment-plan ID
step_indexintegerCampaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

delete_vendor ~23

Delete a vendor entity.

NameTypeReqDescription
vendor_idstringyesVendor ID

No output schema declared.

No examples provided.

delete_vendor_assessment_template ~34

Delete an org-scoped custom or imported vendor assessment template.

NameTypeReqDescription
template_idstringyesAssessment template ID

No output schema declared.

No examples provided.

delete_vendor_contact ~50

Delete a vendor contact. Requires the server-side `vendor.pii` scope (or an admin token).

NameTypeReqDescription
contact_idstringyesContact ID
vendor_idstringyesVendor ID

No output schema declared.

No examples provided.

delete_vendor_contract ~50

Delete a vendor contract. Requires the server-side `vendor.pii` scope (or an admin token).

NameTypeReqDescription
contract_idstringyesContract ID
vendor_idstringyesVendor ID

No output schema declared.

No examples provided.

detach_vendor_system ~39

Detach a system from a vendor.

NameTypeReqDescription
system_idstringyesSystem ID to detach
vendor_idstringyesVendor ID

No output schema declared.

No examples provided.

end_recipe ~161

Close a recipe execution context and return the RecipeResult summary (status, evidence, narrative, and Issue counts, errors, elapsed time). Pass recipe_context_id returned by start_recipe; legacy context_id is accepted only for backwards compatibility. Must be called once the recipe's work is complete; failure to call leaves the context in place until the 1-hour expiry sweep.

NameTypeReqDescription
context_idstringDeprecated alias for recipe_context_id; accepted for backwards compatibility. Prefer recipe_context_id.
recipe_context_idstringPreferred: context id returned by start_recipe (the same value passed as recipe_context_id to update_narrative / add_control_issue / resolve_control_issue)
statusstringCaller-supplied disposition (defaults to 'pass')

No output schema declared.

No examples provided.

export_stig_checklist ~188

Export a checklist to a local file as DISA .ckl (XML) or .cklb (JSON). Regenerated on demand (air-gap/FIPS-safe; no eMASS connector needed). Writes to output_path and returns {path, format, size_bytes, sha256} — the raw file is written to disk, not inlined in the response. Read the written file for the checklist content. Refuses an existing output_path unless overwrite=true, and never writes through a symlink.

NameTypeReqDescription
checklist_idstringyesChecklist ID to export
formatstringExport format: ckl (XML) or cklb (JSON)
output_pathstringyesLocal path to write the exported checklist file
overwritebooleanReplace output_path if it already exists.
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

fail_plan ~81

Mark an active plan as failed after an unrecoverable execution error. The terminal transition is sticky. Post-mortem delivery is best-effort and cannot change the failed result.

NameTypeReqDescription
expected_versioninteger
outcome_summarystringBounded failure summary.
plan_idstringyes
postmortemobject

No output schema declared.

No examples provided.

generate_control_artifacts ~151

Generate read-only AI drafts for a control narrative, evidence recommendations, and recommended issues using the same Codex agent workflow as the CLI

NameTypeReqDescription
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
framework_idstringyesThe framework ID
modelstringOptional: model override for the Codex agent
system_idstringyesThe system ID or name
working_directorystringOptional: local workspace path for code-aware drafting

No output schema declared.

No examples provided.

generate_inheritance_narrative ~111

AI-generate a grounded inheritance narrative for a control, using the vendor's evidence and documentation.

NameTypeReqDescription
control_idstringyesThe control ID. Use canonical IDs from list_controls. NIST/FedRAMP IDs are zero-padded (e.g., ac-02). CMMC IDs use dotted notation (e.g., AC.L2-3.1.1).
framework_idstringyesFramework ID
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

generate_risk_assessment_report ~94

Synchronously generate or reuse the Risk Assessment Report (RAR) for one system/framework. Replay with force_regenerate=false is idempotent and returns the existing document ID with already_generated=true.

NameTypeReqDescription
force_regeneratebooleanCreate a fresh report instead of reusing the current one.
framework_idstringyesActive framework ID
system_idstringyesThe system ID or name

No output schema declared.

No examples provided.

get_active_recipes ~128

Read the active recipe set for the active (or given) scope — the curated subset of the cookbook provisioned for this compliance effort — plus a provisioning proposal: the recipes runnable on this host (candidates), source kinds ready but covered by no recipe (coverage_gaps), and active recipes whose pinned version has drifted (drift). Call this during preflight to seed the active set, and whenever deciding what to run.

NameTypeReqDescription
framework_idstringOptional framework id; defaults to the active scope.
system_idstringOptional: The system ID or name

No output schema declared.

No examples provided.

Common questions

What is the Pretorin Compliance MCP server?

Pretorin Compliance is an MCP server listed in the public MCP registry as io.github.pretorin-ai/pretorin. Access Pretorin controls, evidence, narratives, and local Plan-backed Campaigns from AI tools. This page covers its PyPI package (pretorin).

Is the Pretorin Compliance MCP server safe to use?

Pretorin Compliance scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Pretorin Compliance MCP server expose?

Pretorin Compliance exposes 270 tools: list_frameworks, get_framework, list_control_families, list_controls, get_control, and 265 more. Their descriptions and schemas cost roughly 37,551 tokens of context every time the server is loaded.

Is the Pretorin Compliance MCP server still maintained?

Pretorin Compliance is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Pretorin Compliance MCP server under?

Pretorin Compliance declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.