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

app.scfcontrolsplatform/mcp-server-scf

NPM · MCP-SERVER-SCF · SCANNED SEP 20

MCP server for the SCF Controls Platform — 187 tools for controls, evidence, risk, and TPRM.

Available components

0 this week 95 Trust /100
Trust breakdown (7 categories)

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

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to MarkAC007/mcp-server-scf). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability81
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 20095 tokens (~107/item across 187 items; 187 tools + 0 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 Management91
  • Stability check failed: the tool surface changed between 2.1.0 and 3.4.2: 7 tool removals, 0 breaking changes, 59 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 15 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 187 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the app.scfcontrolsplatform/mcp-server-scf server?

app.scfcontrolsplatform/mcp-server-scf runs locally as an npm package, launched with npx -y mcp-server-scf. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · mcp-server-scf

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

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

  • 20 Sept 26 +1

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

  • 18 Sept 26 +1
    • Package version: 2.0.1 → 3.4.2 functional
  • 16 Sept 26 −3
    • Stability: pass → fail security
  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
    • Stability: 0.97 → pass security
  • 14 Sept 26 −14
    • Known CVEs: pass → unverified security
    • Stability: 0.93 → unverified security
    • Malware scan: pass → unverified security
    • Tool safety: pass → unverified security
    • Schema quality: 13281 → 20095 functional
    • Dependency health: 0.84 → unverified functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Security disclosure: unverified → pass functional
    • Package version: 3.0.0 → 3.4.2 functional
    • Package version: 3.0.0 → 3.4.0 functional
    • Package version: 3.0.0 → 3.2.0 functional
  • 13 Sept 26 0
    • Security disclosure: pass → unverified functional
  • 12 Sept 26 +1

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

  • 10 Sept 26 +1

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

Diagnostics

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

Captured 20 Sept 2026 · Analysed npm/mcp-server-scf@3.4.2

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo MarkAC007/mcp-server-scf
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/MarkAC007/mcp-server-scf/.github/workflows/auto-release.yml@refs/heads/main
Rekor log index 2831944435
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:864b65ab73c8ad6895c0cb94a34e8e8c77fb60f3605ce4e019c1bb0382be5675b733fdd2f861d798f63a3acd72539efffeb70c25f95b3f0000fcfba33

Background: How many MCP packages publish verified provenance →

Dependencies 95 packages
Packages resolved 95
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 187 exposed · ~20,095 tokens

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

Tool Tokens
scf_add_custom_risk_control ~132

Link a scoped control to a custom risk (write — editor+ role). The control must already be scoped (in-scope) for this organization.

NameTypeReqDescription
org_idstringyesOrganization UUID — obtain from scf_list_organizations
risk_codestringyesCustom risk code in R-ORG-N format (e.g., 'R-ORG-1') — obtain from scf_list_custom_risks
scf_idstringyesSCF control ID to link (e.g., 'AST-01') — obtain from scf_list_scoped_controls

No output schema declared.

No examples provided.

scf_add_engagement_auditor ~116

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.

NameTypeReqDescription
engagement_idstringyesAudit engagement UUID — obtain from scf_list_engagements
org_idstringyesOrganization UUID — obtain from scf_list_organizations
user_idstringyesUUID of an existing user to grant engagement access to — obtain from scf_list_members

No output schema declared.

No examples provided.

scf_add_team_member ~112

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.

NameTypeReqDescription
membership_rolestringyesSeat on the team
org_idstringyesOrganization UUID — obtain from scf_list_organizations
team_idstringyesTeam UUID — obtain from scf_list_teams
user_idstringyesUser UUID — obtain from scf_list_members

No output schema declared.

No examples provided.

scf_apply_catalog_reconciliation ~122

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.

NameTypeReqDescription
expected_to_versionstringyesThe target catalog version from the run detail — guards against applying a stale preview
org_idstringyesOrganization UUID — obtain from scf_list_organizations
run_idstringyesReconciliation run UUID — obtain from scf_list_reconciliation_runs or scf_preview_catalog_reconciliation

No output schema declared.

No examples provided.

scf_batch_create_team_assignments ~122

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.

NameTypeReqDescription
is_accountablebooleanMake this the accountable team (default false)
item_idsarrayyesItem UUIDs to assign, max 500
org_idstringyesOrganization UUID — obtain from scf_list_organizations
team_idstringyesTeam UUID — obtain from scf_list_teams
typestringyesItem kind

No output schema declared.

No examples provided.

scf_batch_update_controls ~79

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.

NameTypeReqDescription
operationsarrayyesUpdate operations to apply (1–500 per call)
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_batch_update_evidence ~93

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.

NameTypeReqDescription
operationsarrayyesUpsert operations, max 500 — each keyed by evidence_id
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_bulk_assess_evidence ~124

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.

NameTypeReqDescription
assess_unassessedbooleanAlso assess every file that has no existing assessment (default false)
evidence_idstringEvidence ID — assesses every file under this evidence item
file_idsarraySpecific evidence file UUIDs to assess
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_bulk_assess_windows ~106

Queue windowed AI assessments for up to 25 evidence IDs (write — editor+ role, async). Items without tracking or a frequency set are reported under `skipped_detail` in the response.

NameTypeReqDescription
evidence_idsarrayyesEvidence IDs to assess (e.g., ['E-IAM-01','E-BCM-11']); 1–25 per request
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_bulk_unscope_framework ~117

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.

NameTypeReqDescription
frameworksarrayyesFramework slugs to remove, e.g. ['iso_27017_2015'] — obtain from scf_list_frameworks
org_idstringyesOrganization UUID — obtain from scf_list_organizations
removal_reasonstringWhy these controls leave scope — recorded in the audit trail

No output schema declared.

No examples provided.

scf_cancel_catalog_reconciliation ~82

Cancel a reconciliation run that has not been applied (write — admin role). The organization stays on its current catalog version.

NameTypeReqDescription
org_idstringyesOrganization UUID — obtain from scf_list_organizations
run_idstringyesReconciliation run UUID — obtain from scf_list_reconciliation_runs or scf_preview_catalog_reconciliation

No output schema declared.

No examples provided.

scf_complete_evidence_task ~74

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.

NameTypeReqDescription
completion_notesstringNotes recorded on completion
task_idstringyesEvidence task UUID — obtain from scf_list_evidence_tasks

No output schema declared.

No examples provided.

scf_create_assignment ~101

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.

NameTypeReqDescription
assignable_idstringyesScoped control, evidence tracking or task UUID
assignable_typestringyesItem kind
rolestringAssignment role (default primary)
user_idstringyesAssignee — obtain from scf_list_members

No output schema declared.

No examples provided.

scf_create_comment ~107

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.

NameTypeReqDescription
commentable_idstringyesScoped control, evidence tracking or task UUID
commentable_typestringyesItem kind
contentstringyesComment body
mentionsarrayUser UUIDs to notify
parent_comment_idstringReply to this comment

No output schema declared.

No examples provided.

scf_create_compensating_control ~145

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

NameTypeReqDescription
compensating_controlstringyesThe control that offsets the gap
effectiveness_ratingstringEffectiveness (default partial)
gap_descriptionstringyesThe gap the control offsets
org_idstringyesOrganization UUID — obtain from scf_list_organizations
risk_reduction_notesstringHow much residual risk this removes
vendor_idstringyesVendor UUID — obtain from scf_list_vendors

No output schema declared.

No examples provided.

scf_create_custom_risk ~135

Create a custom org-defined risk (write — editor+ role). Auto-generates an R-ORG-N code and creates the matching risk assessment record.

NameTypeReqDescription
category_colorstringHex color for the category badge, e.g., '#6b7280' (default '#6b7280')
category_namestringCategory label shown in UI (default 'Custom')
descriptionstringyesRisk description (required)
org_idstringyesOrganization UUID — obtain from scf_list_organizations
titlestringyesRisk title (required, max 100 chars)

No output schema declared.

No examples provided.

scf_create_engagement ~146

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.

NameTypeReqDescription
end_datestringFieldwork end date, ISO 8601 (YYYY-MM-DD)
frameworksarrayyesFramework identifiers in scope — obtain from scf_list_frameworks
namestringyesEngagement name, e.g. a framework and audit period
org_idstringyesOrganization UUID — obtain from scf_list_organizations
start_datestringFieldwork start date, ISO 8601 (YYYY-MM-DD)

No output schema declared.

No examples provided.

scf_create_engagement_query ~143

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.

NameTypeReqDescription
bodystringyesFull text of the query
engagement_idstringyesAudit engagement UUID — obtain from scf_list_engagements
org_idstringyesOrganization UUID — obtain from scf_list_organizations
scf_idstringyesSCF control the query is about, in DOMAIN-NN format — must be in scope, see scf_get_engagement_scope
titlestringyesShort summary of what is being asked

No output schema declared.

No examples provided.

scf_create_evidence ~247

Create an evidence tracking record from a catalog evidence ID (write — editor+ role). Starts tracking an evidence item for the organization.

NameTypeReqDescription
collecting_systemstringName of the tool or system that collects the evidence
commentsstringFree-text notes or context
evidence_idstringyesCatalog evidence ID (e.g., 'E-IAM-01') — obtain from scf_list_evidence_catalog
frequencystringCollection cadence: 'daily', 'weekly', 'monthly', 'quarterly', or 'annually'
is_trackedbooleanStart actively tracking this item (default false)
maturity_levelstringEvidence maturity level L0–L5 (e.g., 'L3'); omit to leave unset
method_of_collectionstringCollection approach: 'automated', 'manual', or 'hybrid'
org_idstringyesOrganization UUID — obtain from scf_list_organizations
ownerstringPerson accountable for this evidence item
system_idstringSystem UUID to link this evidence to — obtain from scf_list_systems

No output schema declared.

No examples provided.

scf_create_evidence_task ~194

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.

NameTypeReqDescription
assigned_user_idstringAssignee user UUID — obtain from scf_list_members
descriptionstringWhat has to be collected and how
due_datestringyesDue date, YYYY-MM-DD
evidence_tracking_idstringyesEvidence tracking record UUID (the id field from scf_list_evidence, not the E-xxx catalog id)
owning_team_idstringTeam that owns the task — obtain from scf_list_teams
prioritystringPriority (default medium)
statusstringInitial status (default not_started)
task_typestringTask type (default collection)
titlestringTask title

No output schema declared.

No examples provided.

scf_create_risk ~178

Create a new risk assessment in the risk register (write — editor+ role). Likelihood and impact scores populate the 5×5 risk matrix.

NameTypeReqDescription
control_idstringSCF control ID to link (e.g., 'AST-01') — obtain from scf_list_controls
descriptionstringyesRisk description (required)
impactintegeryesInherent impact on a 1–5 scale
likelihoodintegeryesInherent likelihood on a 1–5 scale
org_idstringyesOrganization UUID — obtain from scf_list_organizations
ownerstringName or identifier of the risk owner
titlestringyesRisk title (required, max ~100 chars)
treatment_statusstringTreatment workflow status (default identified)

No output schema declared.

No examples provided.

scf_create_system ~219

Create a system in the organization's infrastructure inventory (write — editor+ role). Systems can be linked to capabilities and evidence.

NameTypeReqDescription
catalog_template_idintegerSystem-catalog template ID to link — obtain from scf_list_system_catalog
categorystringFree-text category (e.g., 'SIEM', 'Endpoint', 'Identity')
descriptionstringFree-text description of the system
namestringyesHuman-readable system name (required)
org_idstringyesOrganization UUID — obtain from scf_list_organizations
statusstringLifecycle status (default: active)
system_typestringyesSystem classification: cloud_provider, identity_provider, ticketing, logging, security_tool, code_repository, document_management, or custom
vendorstringLegacy free-text vendor name (prefer vendor_id for a structural link)
vendor_idstringVendor UUID to structurally link this system to — obtain from scf_list_vendors (same org)

No output schema declared.

No examples provided.

scf_create_system_capability ~179

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.

NameTypeReqDescription
capability_statusstringCapability status (default potential)
collection_methodstringHow the evidence is collected
confidence_levelstringConfidence in evidence quality (default medium)
data_formatstringFormat of the collected data, e.g. 'csv', 'json', 'pdf'
evidence_idstringyesCatalog evidence ID, e.g. E-IAM-01
notesstringFree-text notes about the capability
org_idstringyesOrganization UUID — obtain from scf_list_organizations
system_idstringyesSystem UUID — obtain from scf_list_systems

No output schema declared.

No examples provided.

scf_create_team ~118

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.

NameTypeReqDescription
descriptionstringWhat the team is responsible for
function_idstringyesPrimary business function — obtain from scf_list_functions
function_idsarrayAdditional functions the team serves
namestringyesTeam name (1–255 characters)
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_create_team_assignment ~120

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.

NameTypeReqDescription
is_accountablebooleanMake this the accountable team (default false)
item_idstringyesScoped control or evidence tracking record UUID
org_idstringyesOrganization UUID — obtain from scf_list_organizations
team_idstringyesTeam UUID — obtain from scf_list_teams
typestringyesItem kind

No output schema declared.

No examples provided.

scf_create_vendor ~161

Create a vendor in the TPRM registry (write — editor+ role). Platform auto-scores risk based on criticality and data handling.

NameTypeReqDescription
categorystringCategory label (e.g., 'SaaS', 'Infrastructure', 'Consulting')
contact_emailstringPrimary contact email address
criticalitystringBusiness criticality tier (default 'medium')
descriptionstringShort free-text description of the vendor
namestringyesVendor legal or trading name (required)
org_idstringyesOrganization UUID — obtain from scf_list_organizations
statusstringLifecycle status (default 'prospect')
websitestringVendor website URL

No output schema declared.

No examples provided.

scf_create_vendor_action_item ~188

Create a remediation action item against a vendor (write — editor role), typically from an assessment finding. Priority defaults to medium, status to open.

NameTypeReqDescription
categorystringFree-text category, e.g. 'contractual', 'technical'
completed_datestringYYYY-MM-DD
descriptionstringAction item detail
due_datestringYYYY-MM-DD
org_idstringyesOrganization UUID — obtain from scf_list_organizations
owner_namestringOwner name
owner_user_idstringOwner — obtain from scf_list_members
prioritystringPriority (default medium)
statusstringStatus (default open)
titlestringyesAction item title
vendor_idstringyesVendor UUID — obtain from scf_list_vendors

No output schema declared.

No examples provided.

scf_create_vendor_certification ~184

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.

NameTypeReqDescription
certificate_numberstringCertificate number
certification_bodystringIssuing body
certification_namestringyesCertification name, e.g. 'ISO 27001:2022'
expiry_datestringYYYY-MM-DD
issue_datestringYYYY-MM-DD
org_idstringyesOrganization UUID — obtain from scf_list_organizations
scopestringCertification scope statement
statusstringStatus (default valid)
vendor_idstringyesVendor UUID — obtain from scf_list_vendors
verification_urlstringPublic verification URL

No output schema declared.

No examples provided.

scf_create_webhook ~167

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.

NameTypeReqDescription
allowed_evidence_idsarrayRestrict ingestion to specific evidence IDs (e.g., ['ERL-IAM-001']); omit to allow any
descriptionstringFree-text description of what this endpoint is for
namestringyesHuman-readable label (e.g., 'Splunk SIEM', 'AWS Config')
org_idstringyesOrganization UUID — obtain from scf_list_organizations
rate_limit_per_minuteintegerPer-endpoint rate limit in requests/min (1–10000); omit to use the org default

No output schema declared.

No examples provided.

scf_delete_assignment ~39

Remove a user assignment (destructive write — editor role).

NameTypeReqDescription
assignment_idstringyesAssignment UUID — from scf_list_assignments

No output schema declared.

No examples provided.

scf_delete_comment ~53

Retract a comment you authored (write — author only). Soft delete: the thread keeps its place, the body is withdrawn.

NameTypeReqDescription
comment_idstringyesComment UUID — obtain from scf_list_comments

No output schema declared.

No examples provided.

scf_delete_compensating_control ~87

Delete a vendor compensating control record (destructive write — editor role).

NameTypeReqDescription
cc_idstringyesCompensating control UUID — obtain from scf_list_compensating_controls
org_idstringyesOrganization UUID — obtain from scf_list_organizations
vendor_idstringyesVendor UUID — obtain from scf_list_vendors

No output schema declared.

No examples provided.

scf_delete_custom_risk ~95

Delete a custom risk definition, its assessment record, and every control mapping (destructive write — editor+ role). Irreversible.

NameTypeReqDescription
org_idstringyesOrganization UUID — obtain from scf_list_organizations
risk_codestringyesCustom risk code in R-ORG-N format (e.g., 'R-ORG-1') — obtain from scf_list_custom_risks

No output schema declared.

No examples provided.

scf_delete_engagement ~87

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.

NameTypeReqDescription
engagement_idstringyesAudit engagement UUID — obtain from scf_list_engagements
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_delete_evidence_file ~108

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.

NameTypeReqDescription
evidence_idstringyesCatalog evidence ID the file belongs to, e.g. E-IAM-01
file_idstringyesEvidence file UUID — obtain from scf_list_evidence_files
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_delete_risk_assessment ~87

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.

NameTypeReqDescription
org_idstringyesOrganization UUID — obtain from scf_list_organizations
risk_codestringyesRisk code — catalog R-XX-N or custom R-ORG-N

No output schema declared.

No examples provided.

scf_delete_team_assignment ~66

Remove a team's assignment from a control or evidence item (destructive write — admin role).

NameTypeReqDescription
assignment_idstringyesTeam assignment UUID — from scf_list_team_assignments
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_delete_vendor_action_item ~93

Delete a vendor action item (destructive write — editor role). Prefer status=cancelled when the record should stay visible.

NameTypeReqDescription
item_idstringyesAction item UUID — obtain from scf_list_vendor_action_items
org_idstringyesOrganization UUID — obtain from scf_list_organizations
vendor_idstringyesVendor UUID — obtain from scf_list_vendors

No output schema declared.

No examples provided.

scf_delete_vendor_certification ~91

Delete a vendor certification record (destructive write — editor role). Prefer status=expired or revoked when the history matters.

NameTypeReqDescription
cert_idstringyesCertification UUID — obtain from scf_list_vendor_certifications
org_idstringyesOrganization UUID — obtain from scf_list_organizations
vendor_idstringyesVendor UUID — obtain from scf_list_vendors

No output schema declared.

No examples provided.

scf_delete_webhook ~81

Revoke a webhook endpoint — soft-delete that marks it inactive (destructive write — admin role). Future deliveries return 403; the record remains for audit.

NameTypeReqDescription
endpoint_idstringyesWebhook endpoint UUID — obtain from scf_list_webhooks
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_export_document ~109

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.

NameTypeReqDescription
document_idstringyesGenerated document UUID — obtain from scf_list_documents
formatstringExport format: 'md' for markdown, 'html' for rendered HTML
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_generate_documents ~109

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.

NameTypeReqDescription
forcebooleanRegenerate even when a document already exists for that generator and domain (default false)
org_idstringyesOrganization UUID — obtain from scf_list_organizations
requestsarrayyesBetween 1 and 40 generation requests to queue in this batch

No output schema declared.

No examples provided.

scf_generate_system_recipes ~82

Queue AI generation of evidence-collection recipes for a system (write — editor+ role, async, HTTP 202). Poll scf_get_recipe_generation_status for progress.

NameTypeReqDescription
org_idstringyesOrganization UUID — obtain from scf_list_organizations
system_idstringyesSystem UUID — obtain from scf_list_systems

No output schema declared.

No examples provided.

scf_get_assessment_review_queue ~109

List AI evidence assessments waiting for a human decision, worst first (read — viewer role): most gaps, then most unassessable objectives, then least relevant, then oldest.

NameTypeReqDescription
limitintegerPage size (1–200, default 50)
offsetintegerPagination offset (default 0)
org_idstringyesOrganization UUID — obtain from scf_list_organizations
statusstringQueue filter (default awaiting)

No output schema declared.

No examples provided.

scf_get_audit_log ~376

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.

NameTypeReqDescription
actionstringFilter by action: create, update or delete
action_sourcestringFilter by origin of the change: ui, api_key, mcp or system
actor_idstringFilter by actor user UUID — platform alias of changed_by_user_id
changed_by_user_idstringFilter by the user who made the change — obtain from scf_list_members
date_fromstringInclude changes at or after this ISO-8601 timestamp (YYYY-MM-DDTHH:MM:SSZ)
date_tostringInclude changes at or before this ISO-8601 timestamp (YYYY-MM-DDTHH:MM:SSZ)
entity_idstringFilter by the changed entity's UUID
entity_typestringFilter by exact entity type as written in the log, e.g. scoped_control, evidence_file, audit_engagement, vendor — unsure of the spelling? use search_text
limitintegerPage size (1–200, default 50)
offsetintegerPagination offset — number of results to skip (default 0)
org_idstringyesOrganization UUID — obtain from scf_list_organizations
request_idstringFilter by request correlation ID — groups every change one API call made
scf_idstringFilter by SCF control ID in DOMAIN-NN format
search_textstringCase-insensitive search across entity_type, field_name, old_value and new_value

No output schema declared.

No examples provided.

scf_get_capability_theme ~88

Get a single capability theme (KSI) with full posture, multi-axis scores, band, and legacy posture_percentage.

NameTypeReqDescription
org_idstringyesOrganization UUID — obtain from scf_list_organizations
theme_codestringyesCapability theme code (e.g., 'ACCESS_CONTROL', 'INCIDENT_RESPONSE') — obtain from scf_list_capability_themes

No output schema declared.

No examples provided.

scf_get_capability_theme_evidence_posture ~74

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.

NameTypeReqDescription
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_get_capability_theme_scorecard ~69

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.

NameTypeReqDescription
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_get_catalog_changelog ~101

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

NameTypeReqDescription
limitintegerPage size, 1–500 (default 50)
offsetintegerRows to skip for pagination (default 0)
org_idstringyesOrganization UUID — obtain from scf_list_organizations

No output schema declared.

No examples provided.

scf_get_catalog_evidence ~77

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.

NameTypeReqDescription
evidence_idstringyesCatalog evidence ID, e.g. E-IAM-01 — obtain from scf_list_evidence_catalog

No output schema declared.

No examples provided.

Common questions

What is the app.scfcontrolsplatform/mcp-server-scf server?

app.scfcontrolsplatform/mcp-server-scf is listed in the public MCP registry as app.scfcontrolsplatform/mcp-server-scf. MCP server for the SCF Controls Platform, 187 tools for controls, evidence, risk, and TPRM. This page covers its npm package (mcp-server-scf).

Is the app.scfcontrolsplatform/mcp-server-scf server safe to use?

app.scfcontrolsplatform/mcp-server-scf scores 95 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 app.scfcontrolsplatform/mcp-server-scf server expose?

app.scfcontrolsplatform/mcp-server-scf exposes 187 tools: scf_list_controls, scf_get_control, scf_list_frameworks, scf_list_domains, scf_list_evidence_catalog, and 182 more. Their descriptions and schemas cost roughly 20,095 tokens of context every time the server is loaded.

Is the app.scfcontrolsplatform/mcp-server-scf server still maintained?

app.scfcontrolsplatform/mcp-server-scf is still listed as active in the MCP registry. We last reached this channel on 20 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 app.scfcontrolsplatform/mcp-server-scf server under?

app.scfcontrolsplatform/mcp-server-scf declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.