Pretorin Compliance
PYPI · PRETORIN · SCANNED SEP 23
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 Security50
- Malware scan not yet available for this package.Unverified
- 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 72 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 41809 tokens (~137/item across 305 items; 282 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 Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage92
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 75% 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 284 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.
- 23 Sept 26 0
- Stability: 0.97 → pass security
- Package version: 0.29.18 → 0.29.19 functional
- 22 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- Package version: 0.29.17 → 0.29.18 functional
- 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
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 23 Sept 2026 · Analysed pypi/pretorin@0.29.19
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 72 packages
| Packages resolved | 72 |
|---|---|
| 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 →
submit_test_results ~94
Upload STIG scan results from a CLI scan run.
| Name | Type | Req | Description |
|---|---|---|---|
| cli_run_id | string | yes | The CLI scan run identifier |
| cli_version | string | – | Optional CLI version string |
| framework_id | string | – | Optional active framework ID used for exact Issue attribution. Supply it for compliance scans. |
| results | array | yes | Array of test result objects |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
submit_vendor_assessment ~39
Move an in-progress vendor assessment to submitted.
| Name | Type | Req | Description |
|---|---|---|---|
| assessment_id | string | yes | Assessment ID |
| vendor_id | string | yes | Vendor ID |
No output schema declared.
No examples provided.
suggest_policy_definition ~63
Suggest and return an editable definition from human-authored title/purpose context. Waits for the durable advisory job; never saves, submits, or approves a policy.
| Name | Type | Req | Description |
|---|---|---|---|
| purpose | string | yes | – |
| title | string | yes | – |
| version | string | – | – |
No output schema declared.
No examples provided.
sync_stale_edges ~34
Bulk sync all stale inherited controls from their source narratives.
| Name | Type | Req | Description |
|---|---|---|---|
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
transition_issue_action ~224
Transition work on an action in an approved canonical Issue plan (see approve_issue_plan).
| Name | Type | Req | Description |
|---|---|---|---|
| action_id | string | yes | Issue plan action ID |
| 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). |
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| evidence_ids | array | – | – |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| issue_id | string | yes | Canonical Issue ID |
| note | string | – | – |
| plan_id | string | yes | Issue treatment-plan ID |
| status | string | yes | – |
| step_index | integer | – | Campaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign. |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
trigger_family_review ~126
Trigger AI review for all controls in a family. Reviews each control sequentially and returns aggregated findings. May take 2-4 minutes for large families. Poll get_family_review_results with the job_id.
| 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). 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.
trigger_policy_generation ~100
Trigger AI generation of the policy document from answered questions. By default this also runs AI review in the same durable job. Returns a job ID. Use AFTER answering policy questions. Optionally provide system_id for scope context.
| Name | Type | Req | Description |
|---|---|---|---|
| include_review | boolean | – | Run AI review after generation in the same job. Defaults to true. |
| policy_id | string | yes | Organization policy ID |
| system_id | string | – | Optional: system ID for scope context |
No output schema declared.
No examples provided.
trigger_policy_review ~45
Trigger AI review of policy answers/document. Returns a job ID for polling. Poll get_policy_review_results with the job_id.
| Name | Type | Req | Description |
|---|---|---|---|
| policy_id | string | yes | Organization policy ID |
No output schema declared.
No examples provided.
trigger_scope_generation ~106
Trigger AI generation of the scope document from answered questions. By default this also runs AI review in the same durable job. Returns a job ID for polling. Use AFTER answering scope questions. Poll get_scope_review_results with the job_id until status is 'succeeded'.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | yes | Framework ID |
| include_review | boolean | – | Run AI review after generation in the same job. Defaults to true. |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
trigger_scope_review ~66
Trigger AI review of scope answers. Returns a job ID for polling. Use to check answer quality BEFORE or AFTER generation. Poll get_scope_review_results with the job_id.
| 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.
unlink_risk_artifact ~60
Remove an artifact link from a risk.
| Name | Type | Req | Description |
|---|---|---|---|
| link_id | string | yes | Link ID (returned by link_risk_artifact) |
| risk_id | string | yes | Risk ID |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
update_campaign_item_phase ~101
Deprecated checkpoint compatibility only. Record a legacy Campaign worker phase for observers. Preflight is informational: use degraded or unavailable metadata and continue without sources.
| Name | Type | Req | Description |
|---|---|---|---|
| attempt | integer | – | – |
| checkpoint_path | string | yes | Local campaign checkpoint path |
| item_id | string | yes | Campaign item id |
| message | string | yes | Concise observer-safe progress message |
| metadata | object | – | Optional non-secret operational metadata |
| phase | string | yes | – |
No output schema declared.
No examples provided.
update_cci_implementation ~153
Commit agent-authored working fields for one CCI before approval. Ordinary updates may only set status=in_progress; use approve_cci_implementation for the explicit CCI completion decision. This operation never approves the parent control.
| Name | Type | Req | Description |
|---|---|---|---|
| assessment_procedure | string | – | – |
| cci_uuid | string | yes | CCI catalog UUID, not the CCI-000XXX display label. |
| evidence_ids | array | – | – |
| narrative | string | – | – |
| reason | string | – | – |
| responsible_entities | string | – | – |
| status | string | – | – |
| system_id | string | yes | The system ID or name |
| test_date | string | – | – |
| tested_by | string | – | – |
No output schema declared.
No examples provided.
update_control_status ~234
Start or reopen authoring for a control by setting status to in_progress within exactly one active system/framework scope
| 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 |
| plan_id | string | – | Optional: 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. |
| status | string | yes | Only accepted value: in_progress |
| step_index | integer | – | Optional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied. |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
update_issue_action ~209
Completely replace an action on a draft canonical Issue treatment plan.
| Name | Type | Req | Description |
|---|---|---|---|
| action | object | yes | Complete editable action or milestone |
| action_id | string | yes | Issue plan action ID |
| 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). |
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| issue_id | string | yes | Canonical Issue ID |
| plan_id | string | yes | Issue treatment-plan ID |
| step_index | integer | – | Campaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign. |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
update_issue_plan ~195
Completely replace an editable canonical Issue treatment-plan draft.
| 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). |
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| issue_id | string | yes | Canonical Issue ID |
| plan | object | yes | Complete editable treatment-plan draft |
| plan_id | string | yes | Issue treatment-plan ID |
| step_index | integer | – | Campaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign. |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
update_narrative ~1,052
Push a narrative text update. Normally MCP agents must pass a narrative-producing recipe_context_id and non-empty evidence_ids so narrative claims are tied to evidence. The sole evidence-free form is needs_input_only=true for a trusted initial/interim Campaign worker: omit narrative and recipe_context_id and pass evidence_ids=[]; Pretorin deterministically renders only frozen coordinator-preflight and current objective limitations. It requests review only when the Campaign's frozen publication policy explicitly requires it. preserve_human=true records an accurate human parent without rewriting it; readiness stays pending. Use evidence_citations to preserve claim-level grounding from search_evidence. Citations do not satisfy expectation coverage: complete the plan's evidence-expectation mapping step before composing the narrative. Review is off by default and is only an explicit user-requested exception after the final narrative generation is stable. A normal Plan-attributed single-control save returns the verified mapping gate and expectation-coverage read-back for handoff.
| 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). |
| evidence_citations | array | – | Optional full citation payloads. Each item requires evidence_id and may include citation_role, locator_chunk_index, and matched_excerpt. Map search_evidence's chunk_index/matched_text to the locator… |
| evidence_ids | array | yes | Evidence ids cited by this narrative update. Normally non-empty; pass an explicit empty array only with server-authorized Campaign needs_input_only or preserve_human mode. |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| is_ai_generated | boolean | – | Whether the narrative was AI-generated |
| narrative | string | – | Agent-authored control narrative markdown, required except in needs_input_only mode, with no section headers or standalone bold labels. Target 150-300 words, require at least 800 characters, and neve… |
| needs_input_only | boolean | – | Narrow Campaign-only evidence-free mode. Allowed only for a current initial/interim child after the shared frozen preflight recorded limitations and every objective was recorded as needs_input with n… |
| plan_id | string | – | Optional: 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. |
| preservation_reason | string | – | Why the existing human-authored parent remains accurate and should be preserved |
| preserve_human | boolean | – | Campaign: preserve accurate human parent without a write. Omit narrative and recipe; pass evidence_ids=[] and preservation_reason. Readiness remains pending. |
| recipe_context_id | string | – | Active narrative-producing recipe context id from start_recipe. May be a single-control context or a family (multi-control) context for this control's system + framework. |
| review_requested_by_user | boolean | – | Confirmation that the user explicitly requested AI review of this final narrative generation. Required semantically when trigger_review=true; without it the handler refuses the review and does not sa… |
| step_index | integer | – | Optional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied. |
| system_id | string | – | Optional: The system ID or name |
| trigger_review | boolean | – | Explicit exception: ask the platform to review this final narrative generation. Defaults false. Never set this merely because a narrative was saved; the user must explicitly request review and review… |
| wait_for_review | boolean | – | When trigger_review=true, wait for exact-generation analysis before returning. Defaults true for interactive calls. Campaign workers set false so execution and platform-review state remain independen… |
No output schema declared.
No examples provided.
update_objective_implementation ~210
Commit agent-authored working fields for one assessment objective before approval. Ordinary updates may only set status=in_progress; use approve_objective_implementation for the explicit objective completion decision. This operation never approves the parent control — objectives are leaves and issues live at the control level.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence_ids | array | – | – |
| narrative | string | – | – |
| objective_uuid | string | yes | The objective implementation row UUID, not the '3.1.1.a' label. |
| plan_id | string | – | Optional: 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. |
| reason | string | – | – |
| status | string | – | – |
| step_index | integer | – | Optional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied. |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
update_plan_step ~397
Update one step's status and/or outcome summary. Status transitions are guarded: pending -> in_progress | skipped; in_progress -> completed | skipped; terminal states are sticky. Skipping a step requires a non-empty outcome_summary explaining why — the plan cannot complete without it. Workflow-required phases cannot be skipped and require an outcome summary. A selected recipe step cannot be skipped or completed without its exact start_recipe/end_recipe receipt. Completing the single-control evidence-expectation mapping step requires a structured evidence_mapping record with declared keys, bindings, intentionally unbound evidence, and the post-link coverage read-back. Campaign child completion verifies that record against a fresh authoritative get_control_context response. Refused if the plan itself is completed or cancelled.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence_mapping | object | – | Required when completing the evidence-expectation mapping step. Populate this from get_control_context after link_evidence calls. For Campaign children, completion re-reads get_control_context and re… |
| expected_version | integer | – | Optional optimistic-locking guard. If supplied, the call returns a structured version_conflict error if the plan's on-disk version no longer matches — the caller can reload + retry. Step-status chang… |
| outcome_summary | string | – | Short note about what the step actually produced. Optional in general, but REQUIRED for every completed workflow-owned phase and when status is 'skipped' — a skip without a stated reason is indisting… |
| plan_id | string | yes | – |
| status | string | – | – |
| step_index | integer | yes | – |
No output schema declared.
No examples provided.
update_policy_definition ~56
Replace a custom definition using its expected revision; may require reset_authoring.
| Name | Type | Req | Description |
|---|---|---|---|
| definition | object | yes | – |
| expected_revision | integer | yes | – |
| policy_id | string | yes | – |
| reset_authoring | boolean | – | – |
No output schema declared.
No examples provided.
update_policy_narrative ~114
Replace an org policy's generated narrative sections. An approved policy is locked — call reopen_policy first (this returns a 422 policy_locked error otherwise). Read the current sections first with get_policy_narrative, then pass the full ordered list of sections back; each is an object with section_id, title, and content.
| Name | Type | Req | Description |
|---|---|---|---|
| policy_id | string | yes | Organization policy ID |
| sections | array | yes | Full ordered list of policy sections; each object has section_id, title, content, and optional order. |
No output schema declared.
No examples provided.
update_preflight ~166
Bind resolver collections to recommended source kinds and persist the preflight artifact. Each kind maps to a COLLECTION of resolvers (each tells a distinct piece of the evidence story). Replaces a kind's collection wholesale. Resolver types are open: workspace_path, cli_tool, command, manual/attested, mcp, connected_api, pretorin_feature, or any custom type with a probe.
| Name | Type | Req | Description |
|---|---|---|---|
| bindings | array | yes | Per-kind resolver bindings to upsert. |
| framework_id | string | – | Optional framework id; defaults to the active scope. |
| source_kind | string | – | Optional canonical source kind to return with full detail after the update; this filters only the response, not which bindings are updated. |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
update_risk ~167
Update a risk. This is the mitigation surface — set/edit treatment, treatment_plan, and treatment_due_date through this tool (there is no separate /mitigate endpoint). Any subset of fields can be updated.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| cia_category | string | – | – |
| description | string | – | – |
| impact | string | – | – |
| likelihood | string | – | – |
| owner_id | string | – | – |
| review_frequency_days | integer | – | – |
| risk_id | string | yes | Risk ID |
| status | string | – | – |
| system_id | string | yes | The system ID or name |
| title | string | – | – |
| treatment | string | – | – |
| treatment_due_date | string | – | ISO date |
| treatment_plan | string | – | – |
No output schema declared.
No examples provided.
update_scope_narrative ~113
Replace the scope narrative sections for a system+framework. A completed scope is locked — call reopen_scope first (this returns a 422 scope_locked error otherwise). Pass the full ordered list of sections; each is an object with at least title and content.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | yes | Framework ID |
| sections | array | yes | Full ordered list of narrative sections; each object has title, content, and optional key/order/parent_key. |
| system_id | string | yes | The system ID or name |
No output schema declared.
No examples provided.
update_vendor ~104
Update vendor fields (name, description, provider_type, authorization_level, owner_user_id, inherent_risk).
| Name | Type | Req | Description |
|---|---|---|---|
| authorization_level | string | – | – |
| description | string | – | – |
| inherent_risk | string | – | Inherent risk band. 'medium' is a deprecated alias for 'moderate'. |
| name | string | – | – |
| owner_user_id | string | – | – |
| provider_type | string | – | – |
| vendor_id | string | yes | Vendor ID |
No output schema declared.
No examples provided.
update_vendor_contact ~110
Update a vendor contact. Requires the server-side `vendor.pii` scope (or an admin token). Only provided fields are updated.
| Name | Type | Req | Description |
|---|---|---|---|
| contact_id | string | yes | Contact ID |
| string | – | – | |
| is_primary | boolean | – | Mark as primary contact (auto-demotes the prior primary). |
| name | string | – | – |
| notes | string | – | – |
| phone | string | – | – |
| title | string | – | – |
| vendor_id | string | yes | Vendor ID |
No output schema declared.
No examples provided.
update_vendor_contract ~181
Update a vendor contract. Requires the server-side `vendor.pii` scope (or an admin token). Only provided fields are updated. status and is_expired are server-derived and cannot be set.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_renew | boolean | – | – |
| contract_id | string | yes | Contract ID |
| contract_type | string | – | – |
| document_evidence_item_id | string | – | – |
| end_date | string | – | End date (ISO-8601) |
| name | string | – | – |
| notes | string | – | – |
| notice_period_days | integer | – | – |
| renewal_date | string | – | Renewal date (ISO-8601) |
| start_date | string | – | Start date (ISO-8601) |
| terminated_at | string | – | Termination timestamp (ISO-8601) |
| vendor_id | string | yes | Vendor ID |
No output schema declared.
No examples provided.
upload_evidence ~262
Upload a file as evidence to the platform (system-scoped, requires WRITE access)
| Name | Type | Req | Description |
|---|---|---|---|
| allow_unverified_sources | boolean | – | Allow writes when source attestation shows a mismatch. Defaults to false. |
| control_id | string | – | Optional: 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). |
| description | string | – | Evidence description |
| evidence_type | string | – | Type of evidence |
| file_path | string | yes | Absolute path to the file to upload |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| name | string | yes | Evidence name |
| plan_id | string | – | Optional: 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_index | integer | – | Optional: zero-based index of the plan step that triggered this write. Only meaningful when plan_id is also supplied. |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
upload_vendor_document ~141
Upload a vendor evidence document (SOC 2 report, CRM, FedRAMP package, etc). Provide the file_path on the local filesystem.
| Name | Type | Req | Description |
|---|---|---|---|
| attestation_type | string | – | Default: vendor_provided |
| description | string | – | Document description |
| expires_at | string | – | Document expiry date (ISO-8601, e.g. 2027-01-31). |
| file_path | string | yes | Local file path to upload |
| name | string | – | Document display name |
| refresh_cadence_days | integer | – | Refresh reminder cadence in days (1-365). |
| vendor_id | string | yes | Vendor ID |
No output schema declared.
No examples provided.
verify_issue ~239
Verify completed treatment and CLOSE a canonical Issue. This is the only way to close one. Requires lifecycle_status == verification_pending, which completing an approved plan produces; Issues sourced from an RFI or finding, or carrying an ai_review_finding_key, can reach it without a completed plan. The generic issue PATCH cannot close an Issue and rejects the attempt.
| 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). |
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| issue_id | string | yes | Canonical Issue ID |
| step_index | integer | – | Campaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign. |
| system_id | string | – | Optional: The system ID or name |
| verification_note | string | yes | – |
No output schema declared.
No examples provided.
verify_preflight ~160
Probe resolver bindings in the preflight artifact and persist the results. Without source_kind, probes the full profile and refreshes its global verification timestamp. With source_kind, probes only that kind and deliberately leaves profile-wide freshness unchanged. Probes run locally on the CLI host (e.g. `gh auth status`, `az account show`, workspace path checks); the response reports verification_scope explicitly.
| Name | Type | Req | Description |
|---|---|---|---|
| framework_id | string | – | Optional framework id; defaults to the active scope. |
| source_kind | string | – | Optional canonical source kind. When provided, probe and return only that kind's resolvers; this partial verification does not refresh the artifact's profile-wide last_verified_at timestamp. |
| system_id | string | – | Optional: The system ID or name |
No output schema declared.
No examples provided.
void_issue ~278
Void a canonical Issue that was never valid or no longer applies. TERMINAL and IRREVERSIBLE: the Issue becomes an immutable POA&M record that cannot be modified, reopened, or closed. Accepted from any non-voided state INCLUDING closed, so voiding a verified Issue destroys the audit distinction between remediated and never-valid. Requires explicit force=true confirmation; prefer verify_issue for work that was actually done.
| 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). |
| control_implementation_id | string | yes | Control implementation ID returned by add_control_issue/get_control_issues |
| force | boolean | yes | Required explicit confirmation for this terminal, irreversible operation. Set true only when the finding was never valid. |
| framework_id | string | – | Optional: Framework ID; defaults to active scope |
| issue_id | string | yes | Canonical Issue ID |
| reason | string | yes | – |
| step_index | integer | – | Campaign workers: zero-based assigned child-Plan step for this governed Issue mutation. Ignored outside a Campaign. |
| system_id | string | – | Optional: The system ID or name |
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 63 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 23 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 282 tools: list_frameworks, get_framework, list_control_families, list_controls, get_control, and 277 more. Their descriptions and schemas cost roughly 40,261 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 23 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.