mcp-server-scf
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCF_API_KEY | Yes | API key from your self-hosted platform instance | |
| SCF_API_URL | Yes | Base URL of your self-hosted platform (e.g. http://localhost:8000) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scf_list_controlsA | List SCF security controls from the reference catalog. Returns paginated controls with SCF ID, title, description, and mapped frameworks. Filter by domain, framework, or free-text search. |
| scf_get_controlA | Get a single SCF control by ID. Returns description, mapped frameworks, assessment objectives, and linked evidence items from the reference catalog. |
| scf_list_frameworksA | List every compliance framework mapped in the SCF catalog (NIST 800-53, ISO 27001, SOC 2, FedRAMP, GDPR, and 350+ more). Returns framework identifiers and display names. |
| scf_list_domainsA | List every compliance domain in the SCF taxonomy. Domains group related controls (e.g., GOV = Governance, AST = Asset Management, IAC = Identity & Access Control). |
| scf_list_evidence_catalogA | List evidence items from the SCF reference catalog — the 272 standard evidence types that can be collected to demonstrate control implementation. Supports free-text search and pagination. |
| scf_list_assessment_objectivesA | List SCF assessment objectives — the 5,736 test criteria used to evaluate control implementation. Optionally filter by control ID; supports free-text search and pagination. |
| scf_get_domainA | Get one SCF domain with its controls (read, no org). Deprecated controls are excluded unless include_deprecated is set; a deprecated domain still resolves, badged. |
| scf_get_catalog_evidenceA | Get one catalog evidence entry with the controls it maps to (read, no org). The reference definition, not an organization's tracking record — see scf_get_evidence for that. |
| scf_list_scoped_controlsB | List controls scoped to the organization with implementation status. Filter by scope status, domain, framework, CSF function, weighting, or free-text search. Paginated. |
| scf_get_scoped_controlA | Get one scoped control in detail: owner, implementation notes, evidence links, and audit history. Identify by scf_id, not by UUID. |
| scf_update_scoped_controlA | Update a scoped control's implementation fields (write — editor+ role). Identify by scf_id, not UUID. Only provided fields are applied. |
| scf_get_scoping_statsA | Get the organization's implementation statistics: counts by status, overall completion percentage, and per-framework coverage breakdown. |
| scf_scope_frameworkA | Bulk-scope every control mapped to a framework into the organization (write — editor+ role). Creates a scoped-control entry for each control in the framework. |
| scf_batch_update_controlsA | Batch-update up to 500 scoped controls in one transaction (write — editor+ role). Each operation identifies its target by scf_id; status values are lowercase. |
| scf_bulk_unscope_frameworkA | Remove from scope every control mapped only to the given frameworks (destructive write — editor role). Controls shared with another in-scope framework are kept; notes and status survive. |
| scf_get_framework_scope_summaryA | Get framework coverage and selection state in one view (read — viewer role): which frameworks are selected and how their controls sit against the scope. Read side of scoping; changing it is elsewhere. |
| scf_preview_framework_scope_changeA | Preview what adding or removing frameworks would do to the scope WITHOUT applying it (read — viewer role). Returns the controls that would enter or leave, so the blast radius is known beforehand. |
| scf_set_scope_overrideA | Force one control in or out of scope whatever its frameworks imply (write — editor+). 'include'/'exclude' pin it; 'inherit' clears the override back to the framework rollup. Scope only, not status. |
| scf_list_evidenceA | List evidence items tracked against an organization's controls. Returns each item's tracking status, maturity level, and linked controls. Optionally filter by system. |
| scf_create_evidenceA | Create an evidence tracking record from a catalog evidence ID (write — editor+ role). Starts tracking an evidence item for the organization. |
| scf_get_evidence_maturityA | Get the organization's evidence maturity summary: average maturity score, automation percentage, distribution by maturity level, and improvement opportunities. |
| scf_get_evidence_item_maturityA | Get one evidence item's collection maturity: current level (1=Ad Hoc to 5=Optimized), contributing factors, upgrade potential, and tracking state. |
| scf_get_evidence_upgrade_recommendationsA | Get upgrade-path recommendations for maturing one evidence item's collection: target level, effort, impact, and step-by-step actions — the same guidance shown in the platform UI. |
| scf_get_evidence_suggestionsA | Get system-aware collection suggestions for one evidence item: which tracked system currently collects it, which in-scope systems are capable of collecting it, and tailored collection guidance. |
| scf_list_evidence_gapsA | List the organization's evidence coverage gaps: evidence required by in-scope controls that is not yet tracked, with overall coverage percentage. |
| scf_get_evidence_healthA | Get evidence collection health for the organization: per-item freshness status (green/amber/red) against collection frequency, with a roll-up summary. |
| scf_list_evidence_filesA | List all files uploaded or ingested for an evidence item. Returns filename, content type, upload timestamp, validation status, and a pre-signed download URL (15-min expiry). |
| scf_get_evidence_fileA | Get metadata and a pre-signed download URL (15-min expiry) for a single evidence file. Use to inspect or retrieve a specific uploaded artifact. |
| scf_update_evidenceA | Upsert an evidence item's tracking fields (write — editor+ role). Creates the tracking row if missing. All body fields are optional; only provided fields are applied. |
| scf_get_evidence_validationA | Get the validation result for a single evidence file: status (valid/warning/partial/invalid), completeness score, individual rule findings, source, and timestamp. |
| scf_revalidate_evidence_fileA | Re-run the validation engine against an evidence file (write — editor+ role). Checks catalog existence, content type, field coverage, freshness, storage. Returns the updated result. |
| scf_get_evidence_validation_summaryA | Get aggregate evidence validation metrics for the organization dashboard: total files validated, counts by status (valid/warning/partial/invalid), and overall pass rate. |
| scf_trigger_evidence_assessmentA | Queue an AI assessment of a single evidence file (write — editor+ role, async). Returns a pending record; poll scf_get_evidence_assessment until status is sufficient/partial/insufficient. |
| scf_get_evidence_assessmentA | Get the AI assessment for an evidence file: status, relevance score (0–100), structured findings, summary, and audit metadata (model, tokens, cost). Poll after scf_trigger_evidence_assessment. |
| scf_bulk_assess_evidenceA | Queue AI assessments for multiple evidence files (write — editor+ role, async, max 50). Provide evidence_id, file_ids, and/or assess_unassessed. Returns count queued. |
| scf_get_evidence_assessment_summaryA | Get aggregate AI assessment metrics for the organization dashboard: total assessed, counts by status, unassessed count, average relevance score, and total cost in cents. |
| scf_list_evidence_tasksA | List evidence collection tasks — the work queue showing what needs to be collected, by whom, and by when. Optionally filter by assignee or status. |
| scf_trigger_window_assessmentA | Queue a windowed AI assessment that scores every file in the evidence item's frequency window as one portfolio (write — editor+ role, async). Returns 422 if tracking or frequency is missing. |
| scf_list_window_assessmentsA | List recent windowed AI assessments for an evidence item (newest first). Each entry includes window bounds, frequency, file IDs, coverage, status, relevance score, findings, and cost. |
| scf_get_window_assessmentA | Get one windowed AI assessment by ID. Returns full detail: window bounds, frequency, file IDs, coverage, expected artifact types, status, relevance score, findings, summary, hashes, tokens, cost. |
| scf_bulk_assess_windowsA | Queue windowed AI assessments for up to 25 evidence IDs (write — editor+ role, async). Items without tracking or a frequency set are reported under |
| scf_get_window_assessment_summaryA | Get aggregate windowed-assessment metrics for the organization dashboard: total windows assessed, counts by status (including |
| scf_get_control_assessment_compositeA | Get the rolled-up assessment composite for one SCF control: composite score, status band, included/missing evidence IDs, mandatory gaps, per-window detail. 404 if no composite row exists yet (async). |
| scf_list_control_assessment_compositesA | List rolled-up assessment composites for the org. Cursor-paginated, worst-band first (insufficient → sufficient). Filter by status/domain/computation_version. Pass next_cursor to page forward. |
| scf_get_evidenceA | Get one evidence tracking record (read — viewer role): tracked flag, collection method, owner, assignee, frequency, system, maturity level and its catalog deprecation badge. |
| scf_batch_update_evidenceA | Create or update up to 500 evidence tracking records in one transaction (write — editor role). Each upserts by evidence_id; only fields given change. Use instead of 500 scf_update_evidence calls. |
| scf_create_evidence_taskA | Create a manual evidence collection task against a tracking record (write — editor role). Due date and evidence_tracking_id are required; status defaults to not_started, priority to medium. |
| scf_update_evidence_taskA | Update an evidence collection task (write — editor role). Only passed fields change: due date, status, type, priority, title, description, notes, assignee, owning team. |
| scf_complete_evidence_taskA | Mark an evidence collection task completed (write — editor role). Sets status to completed and stamps the completion date; optional completion notes are stored with it. |
| scf_review_evidence_fileA | Approve, reject or request revision on one uploaded file (write — editor role). Returns 410 where per-window review is enabled — use scf_review_window_assessment there. |
| scf_delete_evidence_fileA | Soft-delete an evidence file (destructive write — editor role). The record is marked deleted and drops out of listings; the stored object is retained for audit and retention. |
| scf_get_upcoming_evidenceA | List evidence whose next collection falls due within N days (read — viewer role), computed from each item's frequency and last upload. The daily 'what is due' view. |
| scf_get_frequency_healthA | Report evidence whose declared frequency disagrees with the observed upload cadence over the last 90 days (read — viewer role). Only misaligned items are returned. |
| scf_get_assessment_review_queueA | List AI verdicts awaiting a human decision, worst first (read — viewer role). tier=file (default) lists per-file verdicts; tier=window is the web app's Awaiting-confirmation queue. |
| scf_review_evidence_assessmentA | Record a human decision on a file's current AI assessment (write — editor role). confirmed keeps the verdict; overridden needs a reason and at least one objective re-designation. |
| scf_refresh_stale_window_assessmentsA | Queue a fresh windowed AI assessment for every evidence item whose newest file postdates its last assessment (write — editor role). Capped per run; returns how many were queued. |
| scf_review_window_assessmentA | Set the acceptance review of a windowed assessment (write — editor role): approved, rejected, needs_revision, or not_reviewed to revoke. Verdict itself: scf_review_window_assessment_verdict. |
| scf_review_window_assessment_verdictA | Confirm or override a window's current AI verdict (write — editor role). overridden needs a reason and ≥1 objective re-designation. One decision per version; 422 without objectives: confirm. |
| scf_get_window_assessment_versionsA | List every AI verdict a window assessment has received, newest first (read — viewer role). Each version is frozen as reached (model, prompt version, designations) plus any human decision on it. |
| scf_list_risksA | List risk assessments in the organization's risk register. Returns each risk's likelihood, impact, treatment status, and linked controls. |
| scf_get_riskA | Get one risk assessment in detail: likelihood, inherent and residual impact scores, treatment plan, owner, and review date. |
| scf_create_riskA | Create a new risk assessment in the risk register (write — editor+ role). Likelihood and impact scores populate the 5×5 risk matrix. |
| scf_get_risk_matrixA | Get the 5×5 risk matrix data for the organization — risk distribution across likelihood × impact, ready for visualization. |
| scf_get_risk_summaryA | Get the organization's aggregate risk summary: totals by severity, treatment status breakdown, and trend data. |
| scf_list_custom_risksA | List the organization's custom risk definitions — org-defined risks alongside the static SCF catalog, carrying auto-generated R-ORG-N codes. |
| scf_create_custom_riskA | Create a custom org-defined risk (write — editor+ role). Auto-generates an R-ORG-N code and creates the matching risk assessment record. |
| scf_update_custom_riskA | Update a custom risk definition's metadata — title, description, category (write — editor+ role). Only provided fields are applied. |
| scf_delete_custom_riskA | Delete a custom risk definition, its assessment record, and every control mapping (destructive write — editor+ role). Irreversible. |
| scf_list_custom_risk_controlsA | List controls linked to a custom risk. Returns |
| scf_add_custom_risk_controlA | Link a scoped control to a custom risk (write — editor+ role). The control must already be scoped (in-scope) for this organization. |
| scf_remove_custom_risk_controlA | Unlink a scoped control from a custom risk (write — editor+ role). The control and risk both remain; only the mapping is removed. |
| scf_update_risk_assessmentB | Update a scored risk by its code (write — editor role). Only passed fields change: inherent and residual likelihood/impact 1–5, treatment status and plan, due and review dates, owner, notes. |
| scf_delete_risk_assessmentA | Delete an organization's scoring of a risk code (destructive write — editor role). The catalog or custom risk definition itself remains; only this org's assessment row is removed. |
| scf_get_risks_for_controlA | List the risk codes a control addresses and this organization's assessments of them (read — viewer role). Control-to-risk traceability from the SCF catalog mapping. |
| scf_get_controls_for_riskA | List the controls that address a risk code (read — viewer role). Works for catalog risks (R-XX-N via the SCF mapping) and custom risks (R-ORG-N via the org's control mappings). |
| scf_get_risk_profileA | Get the organization's risk profile (read — viewer role): the severity thresholds that band the 5×5 matrix into low, medium, high and critical. Auto-created with defaults if unset. |
| scf_list_vendorsA | List third-party vendors in the organization's TPRM (Third-Party Risk Management) registry. Optionally filter by status or criticality. Paginated. |
| scf_get_vendorA | Get one vendor's detail: certifications, assessments, computed risk score, and latest research results. |
| scf_create_vendorA | Create a vendor in the TPRM registry (write — editor+ role). Platform auto-scores risk based on criticality and data handling. |
| scf_update_vendorA | Update an existing vendor record (write — editor+ role). Only provided fields are applied. |
| scf_trigger_vendor_researchA | Queue AI security research for a vendor (write — editor+ role, async). Checks HIBP breach data, NVD vulnerabilities, and public posture. Returns a task ID; poll scf_get_vendor_research. |
| scf_get_vendor_researchA | Get the latest vendor research result: breach history, known vulnerabilities, and security posture analysis. Poll this after scf_trigger_vendor_research. |
| scf_trigger_vendor_assessmentA | Queue an AI vendor security assessment (write — editor+ role, async, HTTP 202). Replaces the deprecated DPSIA trigger. Returns assessment_id + job_id; poll scf_get_vendor_assessment_status. |
| scf_list_vendor_assessmentsA | List a vendor's AI security assessments, newest first. Includes status, RAG rating, recommendation, and report fields per record. |
| scf_get_latest_vendor_assessmentA | Get a vendor's latest completed AI security assessment: RAG status, recommendation, executive summary, report_markdown/report_json. 404 if none completed yet. |
| scf_get_vendor_assessmentA | Get one vendor AI assessment by ID with full detail: services_used, data_role, RAG status, recommendation, full report fields, and research sources. |
| scf_get_vendor_assessment_statusA | Get the job status of a queued vendor AI assessment: status, started_at, completed_at, error_message. Poll this after scf_trigger_vendor_assessment. |
| scf_list_vendor_certificationsA | List a vendor's certifications (read — viewer role): name, issuing body, certificate number, status, issue and expiry dates, scope and verification URL. |
| scf_create_vendor_certificationA | Record a certification a vendor holds (write — editor role), e.g. ISO 27001 or SOC 2 Type II. Status defaults to valid; track expiry_date so renewals surface. |
| scf_update_vendor_certificationA | Update a vendor certification (write — editor role). Only passed fields change; use it to mark a certificate expired or revoked, or to record the renewed expiry date. |
| scf_delete_vendor_certificationA | Delete a vendor certification record (destructive write — editor role). Prefer status=expired or revoked when the history matters. |
| scf_list_vendor_action_itemsA | List remediation action items for one vendor, or across every vendor when vendor_id is omitted (read — viewer role). Filter by status or priority. |
| scf_create_vendor_action_itemA | Create a remediation action item against a vendor (write — editor role), typically from an assessment finding. Priority defaults to medium, status to open. |
| scf_update_vendor_action_itemA | Update a vendor action item (write — editor role). Only passed fields change; set status=completed with completed_date to close it. |
| scf_delete_vendor_action_itemA | Delete a vendor action item (destructive write — editor role). Prefer status=cancelled when the record should stay visible. |
| scf_list_compensating_controlsA | List the compensating controls recorded against a vendor's gaps (read — viewer role): the gap, the control that offsets it, its effectiveness rating and risk-reduction notes. |
| scf_create_compensating_controlA | Record a compensating control for a vendor gap (write — editor role): what the gap is, what offsets it, and how effective that is (full, partial or minimal — default partial). |
| scf_update_compensating_controlA | Update a vendor compensating control (write — editor role). Only passed fields change: gap description, control text, effectiveness rating, risk-reduction notes. |
| scf_delete_compensating_controlA | Delete a vendor compensating control record (destructive write — editor role). |
| scf_get_current_userA | Get the authenticated caller's profile: name, email, organization memberships, and per-org role. |
| scf_list_organizationsA | List every organization the caller has access to. Returns org UUID, name, subscription tier, and member count. Use this first to obtain the org_id other tools need. |
| scf_get_organizationA | Get one organization's detail: subscription tier, member count, usage limits, and settings. |
| scf_list_membersA | List members of one organization with their role (admin, editor, or viewer). |
| scf_get_work_queueA | Get the caller's work queue: prioritized pending tasks, assignments, and action items across every organization they belong to. |
| scf_get_org_work_queueA | Get one organization's consolidated GRC work queue (read — viewer role): overdue evidence tasks, blocking controls, stale collection schedules. assigned_to_me narrows to the caller. |
| scf_get_audit_logA | Query one organization's append-only audit trail (read — viewer role): field-level changes with actor, source and before/after values. Filter by entity, control, action, actor, source, date or text. |
| scf_get_change_cursorA | Cheap has-anything-changed probe (read — viewer role): newest audit timestamp and row count for one organization. Compare with the pair you last saw; poll this before re-pulling the audit log. |
| scf_get_notificationsA | Get the caller's notifications: new assignments, comments, status changes, and system alerts. |
| scf_mark_notifications_readA | Mark notifications read for the current user (write — self only): one by notification_id, or every notification when all=true. Acknowledge after processing scf_get_notifications. |
| scf_list_capability_themesA | List an organization's 11 KSI capability themes. Themes group NIST 800-53 controls into security capability areas for a high-level posture view. |
| scf_list_capabilitiesB | List an organization's capabilities. Capabilities map to systems and evidence, showing what security functions the infrastructure supports. |
| scf_list_systemsA | List the organization's infrastructure systems — the tools and platforms that implement security capabilities. Optionally filter by linked vendor. |
| scf_create_systemA | Create a system in the organization's infrastructure inventory (write — editor+ role). Systems can be linked to capabilities and evidence. |
| scf_update_systemA | Update an existing system record (write — editor+ role). All fields are optional; only provided fields are applied. |
| scf_get_capability_theme_scorecardB | Get the multi-axis KSI scorecard for every capability theme. Returns per-theme Implementation Coverage, Maturity, Evidence Coverage, Evidence Quality, and composite KSI Posture Score bands. |
| scf_get_capability_themeA | Get a single capability theme (KSI) with full posture, multi-axis scores, band, and legacy posture_percentage. |
| scf_list_capability_theme_controlsA | List SCF controls mapped to a capability theme (KSI), with scoping status, implementation status, and maturity level. Supports pagination and scope filtering — ideal for KSI drill-down. |
| scf_list_system_catalogA | List system-catalog templates — the platform's knowledge base of known vendors/tools (slug, vendor, type, recipe maturity levels). Optionally search by name. |
| scf_get_system_catalog_templateA | Get one system-catalog template by slug with full detail: aliases and curated evidence-collection recipes (maturity level, steps, frequency, estimated time). |
| scf_get_system_recipesA | Get evidence-collection recipes for a system, matched via its catalog template, alias, or fallback. Returns matched_via, the template summary, and per-maturity-level recipe steps. |
| scf_generate_system_recipesA | Queue AI generation of evidence-collection recipes for a system (write — editor+ role, async, HTTP 202). Poll scf_get_recipe_generation_status for progress. |
| scf_get_recipe_generation_statusA | Get the status of a queued AI recipe-generation job for a system. Poll this after scf_generate_system_recipes. |
| scf_get_capability_theme_evidence_postureA | Get per-theme evidence metrics: controls with evidence, file counts by assessment status, average relevance score, and derived confidence (strong/moderate/weak/none). Use for KSI evidence dashboards. |
| scf_get_systemA | Get one system from the organization's inventory (read — viewer role): name, type, vendor, description, catalog template link and the evidence it is configured to provide. |
| scf_list_system_capabilitiesA | List the evidence types a system can provide and how (read — viewer role): capability status potential/configured/active, collection method, confidence and data format. |
| scf_create_system_capabilityA | Declare that a system can provide one evidence type (write — editor role). One entry per evidence_id per system; status defaults to potential, confidence to medium. |
| scf_update_system_capabilityA | Update a system's evidence capability (write — editor role). Only passed fields change; move status potential → configured → active as the collector is wired up. |
| scf_get_systems_for_evidenceA | Find every system that can provide a given evidence type (read — viewer role) — the inverse of the per-system capability list. Filter by capability status. |
| scf_create_webhookA | Create a webhook endpoint for evidence-inbox ingestion (write — admin role). Returns the plaintext HMAC signing secret exactly once — store it immediately; it cannot be retrieved later. |
| scf_list_webhooksA | List the organization's webhook endpoints (newest first). Returns name, status, delivery count, and secret prefix. |
| scf_get_webhookA | Get one webhook endpoint's detail: delivery stats, allowed evidence IDs, and rate-limit configuration. |
| scf_delete_webhookA | Revoke a webhook endpoint — soft-delete that marks it inactive (destructive write — admin role). Future deliveries return 403; the record remains for audit. |
| scf_rotate_webhook_secretA | Rotate the HMAC signing secret for a webhook endpoint (write — admin role). The old secret is invalidated immediately. Returns the new plaintext secret exactly once. |
| scf_list_webhook_deliveriesA | List delivery logs for a webhook endpoint (newest first). Each entry shows signature validation result, processing status, evidence ID, and timestamps. |
| scf_list_document_generatorsA | List the ISMS document generators available to this organization (read — viewer role): generator name, document type, tier, derivative flag. Call before scf_generate_documents. |
| scf_list_document_domainsA | List the SCF domains this organization can currently generate documents for (read — viewer role). A domain appears only when it has enough scoped controls to produce a document. |
| scf_get_document_settingsA | Get the organization's document-generation settings (read — viewer role): whether doc-gen is enabled, whether derivative generators are enabled, and the SCF licence acknowledgement state. |
| scf_update_document_settingsA | Enable or configure document generation (write — admin role). Generation stays blocked until the SCF licence is acknowledged, so the first call usually sets both enabled and acknowledge_licence. |
| scf_generate_documentsA | Queue ISMS document generation for one or more generators (write — admin role). Returns a task_id; poll scf_get_document_generation_status. Existing documents are skipped unless force is set. |
| scf_get_document_generation_statusA | Poll this organization's in-flight document generation (read — viewer role). Returns {status: 'idle'} when nothing is running. Call after scf_generate_documents until it completes. |
| scf_list_documentsA | List generated ISMS documents (read — viewer role): lifecycle status, section counts, unresolved conflicts, pending retirements, and whether the document is stale against current org inputs. |
| scf_get_documentA | Get one generated document in full (read — viewer role): metadata plus every section with its merge state — clean, edited, conflicted or pending retirement. Use this to read a document. |
| scf_update_document_sectionA | Replace one section's content with a human edit (write — editor role). Tracked as a human layer, so a later regeneration reports a conflict instead of overwriting it silently. |
| scf_get_document_section_generatedA | Get the generator's own version of a section, ignoring any human edit (read — viewer role). Use it to see what the platform would produce before resolving a conflict. |
| scf_resolve_document_sectionA | Resolve one section's merge state (write — editor role). keep_mine/take_generated settle a conflict; retire/keep dispose of a pending retirement. The wrong pair for the state returns 409. |
| scf_transition_documentA | Move a document through its lifecycle — draft to review, review to approved, approved to published (write — approving and publishing need admin). Valid targets are enforced by the platform. |
| scf_get_document_historyA | Get a document's version and transition history (read — viewer role): who moved it between lifecycle states, when, why, and what each generation version changed. |
| scf_export_documentA | Export a document as rendered markdown or HTML text (read — viewer role). The platform also renders PDF, but that is a binary download and is not offered here — fetch it from the web UI instead. |
| scf_preview_documentA | Preview a document's assembled content as structured JSON (read — viewer role) — the merged result of generated and edited sections without rendering to a file. |
| scf_list_engagementsA | List the organization's audit engagements (read — viewer role). Each entry carries its frameworks, status, dates and the catalog version its scope was frozen against. |
| scf_get_engagementA | Get one audit engagement's detail (read — viewer role, or an auditor assigned to this engagement). |
| scf_create_engagementA | Create an audit engagement in draft (write — editor role). Freezes the in-scope controls for the named frameworks against the current catalog version, so the scope renders after deprecations. |
| scf_update_engagementA | Update an engagement's name, frameworks, status or dates (write — editor role). Only passed fields change; status moves are caller-controlled: draft → active → under_review → closed. |
| scf_delete_engagementA | Delete a draft audit engagement and its frozen scope (destructive write — admin role). Non-draft engagements are refused with 409 — close them instead. Auditor grants are revoked with it. |
| scf_get_engagement_scopeA | Get an engagement's frozen control scope (read — viewer role, or an assigned auditor). Rows carry a catalog lifecycle badge, so controls deprecated since the freeze still render, marked. |
| scf_get_engagement_presentationB | Get the engagement's scope presented natively in one of its frameworks (read — viewer, or assigned auditor): SCF controls organised by that framework's own structure, as an auditor reads them. |
| scf_list_my_engagementsA | List engagements the caller holds an active auditor grant on, across organizations (read). The auditor's own view — use scf_list_engagements for the organization-side list. |
| scf_list_engagement_auditorsA | List the auditors granted read access to one engagement (read — viewer role). Each grant carries its status: invited, active or revoked. |
| scf_add_engagement_auditorA | Grant an existing user read access to one engagement (write — admin role). Scoped to that engagement's frozen scope and queries only; re-granting a revoked auditor reactivates the grant. |
| scf_remove_engagement_auditorA | Revoke an auditor's access to one engagement (destructive write — admin role). Returns no content on success. |
| scf_list_engagement_queriesA | List an engagement's structured auditor queries (read — viewer role, or an assigned auditor). A query is an auditor's question against one control, with its responses and status. |
| scf_get_engagement_queryA | Get one auditor query with its full response thread (read — viewer role, or an assigned auditor). |
| scf_create_engagement_queryA | Raise an auditor query against one control in the engagement's scope (write — org member or assigned auditor). The control must be in the engagement's frozen scope. |
| scf_respond_to_engagement_queryA | Add a response to an auditor query (write — org member or assigned auditor). Posting a response moves an open query to answered. Returns the updated query with its full thread. |
| scf_update_engagement_query_statusA | Move an auditor query through its lifecycle (write — org member or assigned auditor). Allowed: open → answered|closed, answered → open|closed, closed → open. Others are refused. |
| scf_get_catalog_reconciliation_statusA | Get this organization's catalog position (read — viewer role): its catalog version, the platform's current version, and whether reconciliation is due or in flight. Start here. |
| scf_preview_catalog_reconciliationA | Create a reconciliation preview run (write — admin role): what moving to the target catalog version would do to scoped controls, evidence and mappings. Changes nothing until apply. |
| scf_list_reconciliation_runsA | List this organization's catalog reconciliation runs, newest first (read — viewer role), with each run's status and target version. |
| scf_get_reconciliation_runA | Get one reconciliation run in detail (read — viewer role): the computed diff, every deprecated entity needing a decision, and the planned action currently recorded against each. |
| scf_set_reconciliation_actionsA | Record decisions for a reconciliation run (write — admin role). REPLACES the run's planned actions, so send the complete list. Each deprecated entity gets migrate, retain or retire_only. |
| scf_apply_catalog_reconciliationA | Apply a previewed reconciliation run (write — admin role). Asynchronous. The run must be 'previewed' and expected_to_version must match, so a stale preview is refused rather than applied. |
| scf_rollback_catalog_reconciliationA | Roll an applied reconciliation run back (destructive write — admin role). Asynchronous, and requires the typed confirmation string the run detail states. |
| scf_cancel_catalog_reconciliationA | Cancel a reconciliation run that has not been applied (write — admin role). The organization stays on its current catalog version. |
| scf_get_catalog_changelogA | Get this organization's catalog changelog (read — viewer role): what changed across reconciliations, newest first. Answers 'when did this control change, and what did we decide?' |
| scf_list_functionsA | List the platform's business functions (read — any member): the fixed set every team aligns to, identical for every tenant. Needed for the function_id on scf_create_team. |
| scf_list_teamsA | List the organization's teams (read — viewer role). Archived teams are hidden unless include_inactive is set; they are kept, never deleted, so history still resolves. |
| scf_get_teamA | Get one team with its full roster and advisory health warnings (read — viewer role), e.g. no primary owner or no members. |
| scf_create_teamA | Create a team aligned to a business function (write — admin role). The team is born empty; that is legal and reported through health warnings, not refused. |
| scf_update_teamA | Update a team's name, description, function alignment or active flag (write — admin role). Set is_active=false to archive; the row is never deleted. |
| scf_add_team_memberA | Add an organization member to a team as primary, delegate or member (write — admin role). Adding a primary or delegate when the seat is taken demotes the incumbent to member. |
| scf_remove_team_memberA | Remove a user from a team (destructive write — admin role). The membership row is deleted; the audit trail keeps the history. |
| scf_list_team_assignmentsA | Map of which team owns which scoped control or evidence item (read — viewer role). Unfiltered returns the whole map; narrow with item_ids, team_id or accountable_only. |
| scf_create_team_assignmentA | Assign a team to one scoped control or evidence item (write — admin role). is_accountable makes it the accountable team and demotes any incumbent to consulted. |
| scf_batch_create_team_assignmentsA | Assign one team to up to 500 controls or evidence items in one transaction with one aggregate notification (write — admin role). The bulk accountability tool. |
| scf_delete_team_assignmentA | Remove a team's assignment from a control or evidence item (destructive write — admin role). |
| scf_list_assignmentsA | List user assignments to controls, evidence items or tasks (read — viewer role). Filter by item type and id, or by user_id to see one person's workload. |
| scf_create_assignmentA | Assign a user to a control, evidence item or task as primary or collaborator (write — editor role). Use scf_batch_update_evidence for evidence owners in bulk. |
| scf_delete_assignmentA | Remove a user assignment (destructive write — editor role). |
| scf_list_commentsA | List the comment thread on one control, evidence item or task (read — viewer role), oldest first, with authors, mentions and reply structure. |
| scf_create_commentA | Post a comment on a control, evidence item or task (write — any member). Mention users by UUID to notify them; set parent_comment_id to reply in a thread. |
| scf_update_commentA | Edit a comment you authored (write — author only). Replaces the body and, if given, the mentions; the platform keeps the edit history. |
| scf_delete_commentA | Retract a comment you authored (write — author only). Soft delete: the thread keeps its place, the body is withdrawn. |
| scf_get_journeyA | Get the organization's guided journey — the staged path it walks, with preconditions evaluated (read — viewer role). Never writes: an org without a journey sees the default template as a preview. |
| scf_list_journey_templatesA | List the journey templates this deployment ships (read — viewer role). If importing a returned template_key 404s, the file's declared key differs from its filename stem — import by the stem. |
| scf_import_journeyA | Set or re-issue the org's journey from a template (write — ADMIN role). Merges by stage key: attestations survive; dropping an attested stage is refused (409). An uploaded |
| scf_attest_journey_stageA | Pass a journey stage by named attestation (write — editor+). The ONLY way a stage passes — nothing advances on computed evidence — and who attested is recorded. A conditional pass needs target_date. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 196 tools
Most tools are cleanly separated by a consistent verb+resource pattern and unusually detailed descriptions, so list/get/summary variants are usually distinguishable. However, the 196-tool surface reuses the same vocabulary across different concepts (capability vs capability_theme vs system_capability) and has near-neighbor pairs like review_window_assessment vs review_window_assessment_verdict that can mislead before the description is read.
Names are almost uniformly scf_ + snake_case verb_noun, and resource nouns remain stable across list/get/create/update/delete operations. Minor deviations—batch vs bulk, get_systems_for_evidence, and long chains like review_window_assessment_verdict—add noise but do not break the overall pattern.
196 tools is far beyond a coherent single-server surface, even for a broad GRC platform. It would be much more navigable split into per-domain servers (evidence, risk, vendor, engagement, documents, admin). The sheer namespace forces agents to scan a huge list for any task.
Across controls, evidence, risks, vendors, teams, engagements, documents, and webhooks, the set provides comprehensive lifecycle coverage with create/read/update/delete or deliberate status-transition alternatives. Minor gaps exist—no update_webhook, no delete for systems/vendors/evidence tracking records—but they are workable and often appear to be retention-by-design.