Pretorin Compliance
PYPI · PRETORIN · SCANNED SEP 21
Access Pretorin controls, evidence, narratives, and local Plan-backed Campaigns from AI tools.
Available components
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
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
claude mcp add pretorin-ai-pretorin -- uvx pretorin
{
"mcpServers": {
"pretorin-ai-pretorin": {
"command": "uvx",
"args": [
"pretorin"
]
}
}
} {
"servers": {
"pretorin-ai-pretorin": {
"command": "uvx",
"args": [
"pretorin"
]
}
}
} codex mcp add pretorin-ai-pretorin -- uvx pretorin
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"pretorin-ai-pretorin": {
"type": "local",
"command": [
"uvx",
"pretorin"
],
"enabled": true
}
}
} openclaw mcp add pretorin-ai-pretorin --command uvx --arg pretorin
mcp_servers:
pretorin-ai-pretorin:
command: "uvx"
args: ["pretorin"] {
"McpServers": {
"pretorin-ai-pretorin": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"pretorin"
]
}
}
} assistant mcp add pretorin-ai-pretorin -t stdio -c uvx -a pretorin
{
"mcpServers": {
"pretorin-ai-pretorin": {
"command": "uvx",
"args": [
"pretorin"
]
}
}
} 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
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 →
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 →
get_analytics_summary ~99
Get a full system progress snapshot: scope completion, policy completion, control narrative/evidence coverage, evidence gaps, and `controls.controls_with_unmet_baseline_expectations` (the count of in-scope controls with an unmet baseline-tier evidence expectation). Lightweight — returns counts only, no content. Use to decide what needs attention.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | yes | Framework ID |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_assessment ~60
Get one formal assessment, including snapshot_state, active_snapshot_id, snapshot_job_id, and snapshot errors. Poll after start until snapshot_state=frozen.
| Name | Type | Req | Description |
|---|---|---|---|
| assessment_id | string | yes | – |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_asset_inventory ~68
Return the system's asset inventory. Active rows by default; pass `as_of` (ISO-8601 timestamp) to replay historical state.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | Optional ISO-8601 timestamp for historical replay. |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_campaign ~64
Read one local Plan-backed Campaign through the shared CLI/MCP projection. Returns a bounded, redacted immutable-order item page plus an informational same-host CLI watch command.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_plan_id | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
No output schema declared.
No examples provided.
get_campaign_item_context ~54
Deprecated checkpoint compatibility only. Fetch one claimed legacy Campaign item's context and drafting instructions for a proposal.
| Name | Type | Req | Description |
|---|---|---|---|
| checkpoint_path | string | yes | Local campaign checkpoint path |
| item_id | string | yes | Campaign item id to inspect |
No output schema declared.
No examples provided.
get_campaign_status ~55
Deprecated checkpoint compatibility only. Return counts, events, claims, and failures for a legacy checkpoint. Use `campaign status <campaign-plan-id>` for Plan-backed Campaigns.
| Name | Type | Req | Description |
|---|---|---|---|
| checkpoint_path | string | yes | Local campaign checkpoint path |
No output schema declared.
No examples provided.
get_cci ~44
Get CCI detail with linked SRGs and STIG rules.
| Name | Type | Req | Description |
|---|---|---|---|
| cci_id | string | yes | The CCI identifier (e.g., CCI-000015) |
No output schema declared.
No examples provided.
get_cci_chain ~55
Get full traceability chain for a NIST control: Control -> CCIs -> SRGs -> STIG rules.
| Name | Type | Req | Description |
|---|---|---|---|
| nist_control_id | string | yes | The NIST control ID (e.g., AC-2) |
No output schema declared.
No examples provided.
get_cci_implementation ~115
Read a single per-system CCI implementation row by (system_id, cci_uuid). Returns full impl detail (status, status_source, narrative, ai_generated_narrative, evidence_ids, eMASS fields, has_status_conflict). 404 means the row hasn't been initialized yet for this system.
| Name | Type | Req | Description |
|---|---|---|---|
| cci_uuid | string | yes | The CCI catalog UUID (the unique catalog row id, not the CCI-000XXX label) |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_cci_implementation_summary ~117
Get bounded CCI implementation approval posture for the active system/framework. Returns total, approved, unapproved, and effective-status counts for initialized, current, in-scope, non-deprecated CCI implementation rows. This is authoring and approval posture, not the STIG scan rollup, and it never approves the parent control.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | – | Framework ID. Defaults to the active MCP context framework; an explicit value must match active context. |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_cci_status ~65
Get CCI-level compliance rollup for a system, optionally filtered by NIST control.
| Name | Type | Req | Description |
|---|---|---|---|
| nist_control_id | string | – | Optional NIST control ID to filter (e.g., AC-2) |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_cli_status ~99
Return the local Pretorin CLI version status, including update availability and upgrade guidance for MCP hosts and agents. PRESENT the returned upgrade_command to the human operator; do not execute it. When upgrade_requires_human_approval is true the command mutates this machine's Pretorin install, and upgrade_note explains what changes and why a restart is needed
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Bypass the local cache and re-check PyPI for the latest version |
No output schema declared.
No examples provided.
get_compliance_status ~33
Get compliance status and framework progress for a system
| Name | Type | Req | Description |
|---|---|---|---|
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_control ~117
Get detailed information about a specific control including parameters, enhancements, and AI guidance (summary, intent, evidence expectations, implementation considerations, common failures)
| Name | Type | Req | Description |
|---|---|---|---|
| control_id | string | yes | 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). |
| framework_id | string | yes | The framework ID (e.g., nist-800-53-r5) |
No output schema declared.
No examples provided.
get_control_context ~255
Get rich context for a control including AI guidance, statement, objectives, scope status, implementation details, and the full per-expectation coverage map within one active system/framework scope. Returns both halves of the grading contract: expectation_coverage.expectations (the tiered rubric the platform's AI review scores against) and ai_analysis (its last verdict — tier-labeled gaps_detail, unsupported_claims, strengths, confidence_score). For CMMC / 800-171A controls it also returns objective_context: each normative assessment objective with its per-system status, bound evidence, and the evidence_expectations that target it — adjudicate these with the objective implementation tools (list_objectives, update_objective_implementation, approve_objective_implementation, link_evidence_to_objective_implementation).
| Name | Type | Req | Description |
|---|---|---|---|
| control_id | string | yes | 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). |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
get_control_implementation ~149
Get implementation details for a control in a system, including canonical narrative, evidence count, operating evidence count, expectation coverage, and notes
| Name | Type | Req | Description |
|---|---|---|---|
| allow_unverified_sources | boolean | – | Allow writes when source attestation shows a mismatch. Defaults to false. |
| control_id | string | yes | 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). |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
get_control_issues ~272
Get issues for a control implementation within exactly one active system/framework scope. Each issue carries lifecycle_status and gate_status — the canonical state that decides whether it still gates approval. Results are bounded and put open Issues first so closed history cannot hide approval-gating work. The is_blocking flag is false only for calibrated evidence-gap Issues; demonstrated control deficiencies remain blocking. Above-target 'areas to strengthen' are reported in ai_analysis.gaps_detail and are never filed as Issues.
| Name | Type | Req | Description |
|---|---|---|---|
| control_id | string | yes | 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). |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| limit | integer | – | – |
| max_body_chars | integer | – | When snippet_only is false, maximum characters to retain per body field; use a positive value to request body content |
| offset | integer | – | – |
| snippet_only | boolean | – | Replace body-sized fields such as content with bounded snippets |
| status | string | – | Lifecycle filter; all preserves the legacy list behavior |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
get_control_notes ~185
Deprecated alias for get_control_issues.
| Name | Type | Req | Description |
|---|---|---|---|
| control_id | string | yes | 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). |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| limit | integer | – | – |
| max_body_chars | integer | – | When snippet_only is false, maximum characters to retain per body field; use a positive value to request body content |
| offset | integer | – | – |
| snippet_only | boolean | – | Replace body-sized fields such as content with bounded snippets |
| status | string | – | Lifecycle filter; all preserves the legacy list behavior |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
get_control_references ~104
Get control references: statement, guidance, objectives, and related controls
| Name | Type | Req | Description |
|---|---|---|---|
| control_id | string | yes | 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). |
| framework_id | string | yes | The framework ID (e.g., nist-800-53-r5) |
No output schema declared.
No examples provided.
get_control_responsibility ~113
Get the inheritance/responsibility edge for a control. Shows if it's inherited, shared, or system-specific.
| Name | Type | Req | Description |
|---|---|---|---|
| control_id | string | yes | 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). |
| framework_id | string | yes | Framework ID |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_controls_batch ~69
Get detailed control data for many controls in a single framework-scoped request
| Name | Type | Req | Description |
|---|---|---|---|
| control_ids | array | – | Optional: list of control IDs to retrieve; omit to retrieve all controls |
| framework_id | string | yes | The framework ID (e.g., nist-800-53-r5) |
No output schema declared.
No examples provided.
get_evidence_attestation ~156
Fetch the DSSE attestation envelope (ADR 0003) for an evidence record. Returns the in-toto Statement, signing key fingerprint, and provenance metadata. With include_lineage=true, also returns the full history of prior attestations (newest first). Read-only; no recipe context required. Returns a structured 'attestation_unavailable' error when the platform attestation surface is disabled or no envelope exists for the row.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence_id | string | yes | The evidence item ID to fetch the attestation for |
| include_archived | boolean | – | When include_lineage is set, include archived attestations |
| include_lineage | boolean | – | Also return the full lineage of attestations for this evidence |
No output schema declared.
No examples provided.
get_family_analytics ~56
Get per-family breakdown: narrative coverage, evidence coverage, open notes, status distribution for each control family in scope.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | yes | Framework ID |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_family_bundle ~129
Get all controls in a family with their status, narrative presence, evidence presence, and notes count. Use to understand the state of a family before working on it.
| Name | Type | Req | Description |
|---|---|---|---|
| family_id | string | yes | Canonical control family ID for this framework (e.g. 'access-control' for NIST/FedRAMP, 'CC6' for SOC 2, 'access-control-level-2' for CMMC). Use `list_control_families` to list valid values. |
| framework_id | string | yes | Framework ID |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_family_review_results ~72
Poll for family review results. Returns per-control findings with severity, affected control IDs, recommended fixes, and optional `expectation_tier` / `tier_label` context.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | Job ID from trigger_family_review |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_framework ~66
Get detailed metadata about a specific compliance framework including AI context (purpose, target audience, regulatory context, scope, key concepts)
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | yes | The framework ID (e.g., nist-800-53-r5, fedramp-moderate, soc2) |
No output schema declared.
No examples provided.
get_instructions ~63
Return the server's routing instructions as a regular tool response. The MCP `initialize` handshake exposes instructions but not every harness (Cursor, Codex, vanilla Agents SDK) renders them to the agent. Call this tool to fetch the routing protocol on demand. Unauthenticated.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_issue_acceptance_history ~87
Read the formal risk-acceptance decision history for a canonical Issue, newest first. Record one with accept_issue_risk; withdraw one with revoke_issue_risk_acceptance.
| Name | Type | Req | Description |
|---|---|---|---|
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| issue_id | string | yes | Canonical Issue ID |
| limit | integer | – | – |
No output schema declared.
No examples provided.
get_issue_action ~79
Read one action or milestone from a canonical Issue treatment plan.
| Name | Type | Req | Description |
|---|---|---|---|
| action_id | string | yes | Issue plan action ID |
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| issue_id | string | yes | Canonical Issue ID |
| plan_id | string | yes | Issue treatment-plan ID |
No output schema declared.
No examples provided.
get_issue_actions ~74
Read ordered actions and milestones for a canonical Issue treatment plan.
| Name | Type | Req | Description |
|---|---|---|---|
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| issue_id | string | yes | Canonical Issue ID |
| limit | integer | – | – |
| plan_id | string | yes | Issue treatment-plan ID |
No output schema declared.
No examples provided.
get_issue_plan ~80
Read one canonical Issue treatment-plan version, including its full approval lifecycle (submitted/approved/rejected/completed actors and timestamps).
| Name | Type | Req | Description |
|---|---|---|---|
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| issue_id | string | yes | Canonical Issue ID |
| plan_id | string | yes | Issue treatment-plan ID |
No output schema declared.
No examples provided.
get_issue_plans ~63
Read newest-first versioned treatment plans for a canonical Issue.
| Name | Type | Req | Description |
|---|---|---|---|
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| issue_id | string | yes | Canonical Issue ID |
| limit | integer | – | – |
No output schema declared.
No examples provided.
get_issue_risk_history ~65
Read newest-first immutable risk-evaluation versions for a canonical Issue.
| Name | Type | Req | Description |
|---|---|---|---|
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| issue_id | string | yes | Canonical Issue ID |
| limit | integer | – | – |
No output schema declared.
No examples provided.
get_narrative ~149
Get an existing implementation narrative and its evidence citations, including claim-level grounding and RAG locators, for a control in a system
| Name | Type | Req | Description |
|---|---|---|---|
| allow_unverified_sources | boolean | – | Allow writes when source attestation shows a mismatch. Defaults to false. |
| control_id | string | yes | 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). |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
get_objective_implementation ~124
Read a single per-system assessment objective implementation row by (system_id, objective_uuid). Returns full detail (objective_id, objective_text, status, status_source, narrative, ai_generated_narrative, evidence_ids, has_status_conflict, approved_by/at). 404 means the row hasn't been seeded yet for this system.
| Name | Type | Req | Description |
|---|---|---|---|
| objective_uuid | string | yes | The objective implementation row UUID (from list_objectives / get_control_context, not the '3.1.1.a' label) |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_org_policy_questionnaire ~90
Get the canonical questionnaire state for one organization policy, including template sections, questions, and saved answers. Set include_guidance=false to omit static section/question guidance when retrieving a large questionnaire over MCP.
| Name | Type | Req | Description |
|---|---|---|---|
| include_guidance | boolean | – | Optional: include static template/question guidance (default true). Set false for a compact large-policy projection. |
| policy_id | string | yes | The organization policy ID |
No output schema declared.
No examples provided.
get_oscal_artifact ~93
Get OSCAL artifact metadata including oscal_version, generator_version, the two-tier validation report, and checksum_sha256. The presigned download_url is CLI-only and is not returned over MCP; use the `pretorin oscal artifacts download` CLI to fetch verified bytes.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | The OSCAL artifact ID |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_pending_families ~62
Get control families that need work. Returns family IDs with counts of pending vs total controls. Use to decide which family to work on next.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | yes | Framework ID |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_pending_policy_questions ~115
Use this to see which policy questions still need answers. Returns only unanswered questions — much smaller than the full policy questionnaire dump. WORKFLOW: After fetching pending questions, explore the local workspace (source code, config files, existing policy documents, infrastructure definitions, documentation) to gather evidence. Answer as many questions as possible from workspace evidence WITHOUT asking the user. Only use gap questions (see answer_policy_question) for genuine gaps that require organizational knowledge not present in the workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| policy_id | string | yes | Organization policy ID |
No output schema declared.
No examples provided.
get_pending_scope_questions ~134
Use this to see which scope questions still need answers. Returns only unanswered questions — much smaller than the full scope dump. Call get_scope_question_detail for guidance on a specific question. WORKFLOW: After fetching pending questions, explore the local workspace (source code, config files, infrastructure definitions, documentation) to gather evidence. Answer as many questions as possible from workspace evidence WITHOUT asking the user. Only use interview mode (see answer_scope_question) for genuine gaps that require organizational knowledge not present in the workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | yes | Framework ID |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
get_plan ~65
Return the full record of a Plan selected by start_task or created with create_plan. Use it before activation, when resuming work from a prior session, or when auditing what was intended.
| Name | Type | Req | Description |
|---|---|---|---|
| plan_id | string | yes | UUID-shaped Plan id returned by start_task or create_plan. |
No output schema declared.
No examples provided.
get_policy_analytics ~44
Get per-policy analytics: question completion, document generation status, review status. Use to understand one policy's progress.
| Name | Type | Req | Description |
|---|---|---|---|
| policy_id | string | yes | Organization policy ID |
No output schema declared.
No examples provided.
get_policy_definition ~43
Read a policy definition and revision in bounded section/question pages.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| offset | integer | – | – |
| policy_id | string | yes | – |
No output schema declared.
No examples provided.
get_policy_mappings ~55
Read persisted policy mappings, optionally limited to one framework, in bounded pages.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | – | – |
| limit | integer | – | – |
| offset | integer | – | – |
| policy_id | string | yes | – |
No output schema declared.
No examples provided.
get_policy_narrative ~249
Read an org policy's generated narrative sections, in order — the read counterpart of update_policy_narrative. Returns {policy_id, sections:[{section_id, order, title, description, content, is_ai_generated, needs_input, is_reviewed, reviewed_by, reviewed_at, source_frameworks}]}. Use this before a surgical edit: read the current sections, modify or append one, then pass the FULL list back to update_policy_narrative so no existing section is dropped. (get_org_policy_questionnaire returns the Q&A template, NOT these generated sections.) Large reads are paginated by default; use offset/limit to continue, include_content=false for an index, or section_id to fetch one complete section.
| Name | Type | Req | Description |
|---|---|---|---|
| include_content | boolean | – | Optional: include complete section content (default true). Set false for a compact section index. |
| limit | integer | – | Optional: page size, 1-100 (default 10). |
| offset | integer | – | Optional: zero-based page offset (default 0). |
| policy_id | string | yes | Organization policy ID |
| section_id | string | – | Optional: fetch one complete section by stable section_id. |
No output schema declared.
No examples provided.
get_policy_question_detail ~57
Use this BEFORE answering a specific policy question. Returns guidance, tips, and the current answer for ONE question.
| Name | Type | Req | Description |
|---|---|---|---|
| policy_id | string | yes | Organization policy ID |
| question_id | string | yes | Question ID from the pending list |
No output schema declared.
No examples provided.
get_policy_review_results ~73
Poll for policy generation or review results. Returns structured findings. Status: 'queued', 'running', 'succeeded', or 'failed'. Poll every 2 seconds.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | Job ID from trigger_policy_generation or trigger_policy_review |
| policy_id | string | yes | Organization policy ID |
No output schema declared.
No examples provided.
get_policy_workflow_state ~48
Get per-policy workflow state: how many questions answered, whether the document is generated, review status, and the recommended next action.
| Name | Type | Req | Description |
|---|---|---|---|
| policy_id | string | yes | Organization policy ID |
No output schema declared.
No examples provided.
get_preflight ~202
Read the local preflight verdict for the active (or given) scope: which recommended source kinds are mapped to host-local resolvers and their per-kind rollup (ready/degraded/missing/unverified/unmapped). This is the CLI-local source of truth for source availability — the platform cannot verify connections. When authenticated it also seeds the platform's in-scope recommended source kinds into the artifact (persisted only when the profile changed something; offline it is a pure local read). Returns exists=false with a hint when no artifact has been built yet and the platform recommends nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | – | Optional framework id; defaults to the active scope. |
| source_kind | string | – | Optional canonical source kind. When omitted, returns a bounded summary with every kind verdict and action. When provided, returns that kind's full resolver, scope, identity, capability, and verifica… |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
get_recipe ~45
Return one recipe's full manifest and body. The body is the markdown playbook the calling agent reads to understand the procedure.
| Name | Type | Req | Description |
|---|---|---|---|
| recipe_id | string | yes | Recipe id to fetch |
No output schema declared.
No examples provided.
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.