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
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
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
claude mcp add app-scfcontrolsplatform-mcp-server-scf -- npx -y mcp-server-scf
{
"mcpServers": {
"app-scfcontrolsplatform-mcp-server-scf": {
"command": "npx",
"args": [
"-y",
"mcp-server-scf"
]
}
}
} {
"servers": {
"app-scfcontrolsplatform-mcp-server-scf": {
"command": "npx",
"args": [
"-y",
"mcp-server-scf"
]
}
}
} codex mcp add app-scfcontrolsplatform-mcp-server-scf -- npx -y mcp-server-scf
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"app-scfcontrolsplatform-mcp-server-scf": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-server-scf"
],
"enabled": true
}
}
} openclaw mcp add app-scfcontrolsplatform-mcp-server-scf --command npx --arg -y --arg mcp-server-scf
mcp_servers:
app-scfcontrolsplatform-mcp-server-scf:
command: "npx"
args: ["-y", "mcp-server-scf"] {
"McpServers": {
"app-scfcontrolsplatform-mcp-server-scf": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"mcp-server-scf"
]
}
}
} assistant mcp add app-scfcontrolsplatform-mcp-server-scf -t stdio -c npx -a -y mcp-server-scf
{
"mcpServers": {
"app-scfcontrolsplatform-mcp-server-scf": {
"command": "npx",
"args": [
"-y",
"mcp-server-scf"
]
}
}
} 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.
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 →
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 →
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.
| Name | Type | Req | Description |
|---|---|---|---|
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| risk_code | string | yes | Custom risk code in R-ORG-N format (e.g., 'R-ORG-1') — obtain from scf_list_custom_risks |
| scf_id | string | yes | SCF 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.
| Name | Type | Req | Description |
|---|---|---|---|
| engagement_id | string | yes | Audit engagement UUID — obtain from scf_list_engagements |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| user_id | string | yes | UUID 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.
| Name | Type | Req | Description |
|---|---|---|---|
| membership_role | string | yes | Seat on the team |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| team_id | string | yes | Team UUID — obtain from scf_list_teams |
| user_id | string | yes | User 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.
| Name | Type | Req | Description |
|---|---|---|---|
| expected_to_version | string | yes | The target catalog version from the run detail — guards against applying a stale preview |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| run_id | string | yes | Reconciliation 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.
| Name | Type | Req | Description |
|---|---|---|---|
| is_accountable | boolean | – | Make this the accountable team (default false) |
| item_ids | array | yes | Item UUIDs to assign, max 500 |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| team_id | string | yes | Team UUID — obtain from scf_list_teams |
| type | string | yes | Item 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.
| Name | Type | Req | Description |
|---|---|---|---|
| operations | array | yes | Update operations to apply (1–500 per call) |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| operations | array | yes | Upsert operations, max 500 — each keyed by evidence_id |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| assess_unassessed | boolean | – | Also assess every file that has no existing assessment (default false) |
| evidence_id | string | – | Evidence ID — assesses every file under this evidence item |
| file_ids | array | – | Specific evidence file UUIDs to assess |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence_ids | array | yes | Evidence IDs to assess (e.g., ['E-IAM-01','E-BCM-11']); 1–25 per request |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| frameworks | array | yes | Framework slugs to remove, e.g. ['iso_27017_2015'] — obtain from scf_list_frameworks |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| removal_reason | string | – | Why 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.
| Name | Type | Req | Description |
|---|---|---|---|
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| run_id | string | yes | Reconciliation 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.
| Name | Type | Req | Description |
|---|---|---|---|
| completion_notes | string | – | Notes recorded on completion |
| task_id | string | yes | Evidence 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.
| Name | Type | Req | Description |
|---|---|---|---|
| assignable_id | string | yes | Scoped control, evidence tracking or task UUID |
| assignable_type | string | yes | Item kind |
| role | string | – | Assignment role (default primary) |
| user_id | string | yes | Assignee — 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.
| Name | Type | Req | Description |
|---|---|---|---|
| commentable_id | string | yes | Scoped control, evidence tracking or task UUID |
| commentable_type | string | yes | Item kind |
| content | string | yes | Comment body |
| mentions | array | – | User UUIDs to notify |
| parent_comment_id | string | – | Reply 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).
| Name | Type | Req | Description |
|---|---|---|---|
| compensating_control | string | yes | The control that offsets the gap |
| effectiveness_rating | string | – | Effectiveness (default partial) |
| gap_description | string | yes | The gap the control offsets |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| risk_reduction_notes | string | – | How much residual risk this removes |
| vendor_id | string | yes | Vendor 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category_color | string | – | Hex color for the category badge, e.g., '#6b7280' (default '#6b7280') |
| category_name | string | – | Category label shown in UI (default 'Custom') |
| description | string | yes | Risk description (required) |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| title | string | yes | Risk 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.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | Fieldwork end date, ISO 8601 (YYYY-MM-DD) |
| frameworks | array | yes | Framework identifiers in scope — obtain from scf_list_frameworks |
| name | string | yes | Engagement name, e.g. a framework and audit period |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| start_date | string | – | Fieldwork 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.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | Full text of the query |
| engagement_id | string | yes | Audit engagement UUID — obtain from scf_list_engagements |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| scf_id | string | yes | SCF control the query is about, in DOMAIN-NN format — must be in scope, see scf_get_engagement_scope |
| title | string | yes | Short 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.
| Name | Type | Req | Description |
|---|---|---|---|
| collecting_system | string | – | Name of the tool or system that collects the evidence |
| comments | string | – | Free-text notes or context |
| evidence_id | string | yes | Catalog evidence ID (e.g., 'E-IAM-01') — obtain from scf_list_evidence_catalog |
| frequency | string | – | Collection cadence: 'daily', 'weekly', 'monthly', 'quarterly', or 'annually' |
| is_tracked | boolean | – | Start actively tracking this item (default false) |
| maturity_level | string | – | Evidence maturity level L0–L5 (e.g., 'L3'); omit to leave unset |
| method_of_collection | string | – | Collection approach: 'automated', 'manual', or 'hybrid' |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| owner | string | – | Person accountable for this evidence item |
| system_id | string | – | System 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.
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_user_id | string | – | Assignee user UUID — obtain from scf_list_members |
| description | string | – | What has to be collected and how |
| due_date | string | yes | Due date, YYYY-MM-DD |
| evidence_tracking_id | string | yes | Evidence tracking record UUID (the id field from scf_list_evidence, not the E-xxx catalog id) |
| owning_team_id | string | – | Team that owns the task — obtain from scf_list_teams |
| priority | string | – | Priority (default medium) |
| status | string | – | Initial status (default not_started) |
| task_type | string | – | Task type (default collection) |
| title | string | – | Task 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.
| Name | Type | Req | Description |
|---|---|---|---|
| control_id | string | – | SCF control ID to link (e.g., 'AST-01') — obtain from scf_list_controls |
| description | string | yes | Risk description (required) |
| impact | integer | yes | Inherent impact on a 1–5 scale |
| likelihood | integer | yes | Inherent likelihood on a 1–5 scale |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| owner | string | – | Name or identifier of the risk owner |
| title | string | yes | Risk title (required, max ~100 chars) |
| treatment_status | string | – | Treatment 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.
| Name | Type | Req | Description |
|---|---|---|---|
| catalog_template_id | integer | – | System-catalog template ID to link — obtain from scf_list_system_catalog |
| category | string | – | Free-text category (e.g., 'SIEM', 'Endpoint', 'Identity') |
| description | string | – | Free-text description of the system |
| name | string | yes | Human-readable system name (required) |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| status | string | – | Lifecycle status (default: active) |
| system_type | string | yes | System classification: cloud_provider, identity_provider, ticketing, logging, security_tool, code_repository, document_management, or custom |
| vendor | string | – | Legacy free-text vendor name (prefer vendor_id for a structural link) |
| vendor_id | string | – | Vendor 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.
| Name | Type | Req | Description |
|---|---|---|---|
| capability_status | string | – | Capability status (default potential) |
| collection_method | string | – | How the evidence is collected |
| confidence_level | string | – | Confidence in evidence quality (default medium) |
| data_format | string | – | Format of the collected data, e.g. 'csv', 'json', 'pdf' |
| evidence_id | string | yes | Catalog evidence ID, e.g. E-IAM-01 |
| notes | string | – | Free-text notes about the capability |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| system_id | string | yes | System 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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | What the team is responsible for |
| function_id | string | yes | Primary business function — obtain from scf_list_functions |
| function_ids | array | – | Additional functions the team serves |
| name | string | yes | Team name (1–255 characters) |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| is_accountable | boolean | – | Make this the accountable team (default false) |
| item_id | string | yes | Scoped control or evidence tracking record UUID |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| team_id | string | yes | Team UUID — obtain from scf_list_teams |
| type | string | yes | Item 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Category label (e.g., 'SaaS', 'Infrastructure', 'Consulting') |
| contact_email | string | – | Primary contact email address |
| criticality | string | – | Business criticality tier (default 'medium') |
| description | string | – | Short free-text description of the vendor |
| name | string | yes | Vendor legal or trading name (required) |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| status | string | – | Lifecycle status (default 'prospect') |
| website | string | – | Vendor 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Free-text category, e.g. 'contractual', 'technical' |
| completed_date | string | – | YYYY-MM-DD |
| description | string | – | Action item detail |
| due_date | string | – | YYYY-MM-DD |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| owner_name | string | – | Owner name |
| owner_user_id | string | – | Owner — obtain from scf_list_members |
| priority | string | – | Priority (default medium) |
| status | string | – | Status (default open) |
| title | string | yes | Action item title |
| vendor_id | string | yes | Vendor 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.
| Name | Type | Req | Description |
|---|---|---|---|
| certificate_number | string | – | Certificate number |
| certification_body | string | – | Issuing body |
| certification_name | string | yes | Certification name, e.g. 'ISO 27001:2022' |
| expiry_date | string | – | YYYY-MM-DD |
| issue_date | string | – | YYYY-MM-DD |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| scope | string | – | Certification scope statement |
| status | string | – | Status (default valid) |
| vendor_id | string | yes | Vendor UUID — obtain from scf_list_vendors |
| verification_url | string | – | Public 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.
| Name | Type | Req | Description |
|---|---|---|---|
| allowed_evidence_ids | array | – | Restrict ingestion to specific evidence IDs (e.g., ['ERL-IAM-001']); omit to allow any |
| description | string | – | Free-text description of what this endpoint is for |
| name | string | yes | Human-readable label (e.g., 'Splunk SIEM', 'AWS Config') |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| rate_limit_per_minute | integer | – | Per-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).
| Name | Type | Req | Description |
|---|---|---|---|
| assignment_id | string | yes | Assignment 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.
| Name | Type | Req | Description |
|---|---|---|---|
| comment_id | string | yes | Comment 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).
| Name | Type | Req | Description |
|---|---|---|---|
| cc_id | string | yes | Compensating control UUID — obtain from scf_list_compensating_controls |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| vendor_id | string | yes | Vendor 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.
| Name | Type | Req | Description |
|---|---|---|---|
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| risk_code | string | yes | Custom 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.
| Name | Type | Req | Description |
|---|---|---|---|
| engagement_id | string | yes | Audit engagement UUID — obtain from scf_list_engagements |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence_id | string | yes | Catalog evidence ID the file belongs to, e.g. E-IAM-01 |
| file_id | string | yes | Evidence file UUID — obtain from scf_list_evidence_files |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| risk_code | string | yes | Risk 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).
| Name | Type | Req | Description |
|---|---|---|---|
| assignment_id | string | yes | Team assignment UUID — from scf_list_team_assignments |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| item_id | string | yes | Action item UUID — obtain from scf_list_vendor_action_items |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| vendor_id | string | yes | Vendor 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cert_id | string | yes | Certification UUID — obtain from scf_list_vendor_certifications |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| vendor_id | string | yes | Vendor 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.
| Name | Type | Req | Description |
|---|---|---|---|
| endpoint_id | string | yes | Webhook endpoint UUID — obtain from scf_list_webhooks |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| document_id | string | yes | Generated document UUID — obtain from scf_list_documents |
| format | string | – | Export format: 'md' for markdown, 'html' for rendered HTML |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Regenerate even when a document already exists for that generator and domain (default false) |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| requests | array | yes | Between 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.
| Name | Type | Req | Description |
|---|---|---|---|
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| system_id | string | yes | System 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Page size (1–200, default 50) |
| offset | integer | – | Pagination offset (default 0) |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| status | string | – | Queue 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | Filter by action: create, update or delete |
| action_source | string | – | Filter by origin of the change: ui, api_key, mcp or system |
| actor_id | string | – | Filter by actor user UUID — platform alias of changed_by_user_id |
| changed_by_user_id | string | – | Filter by the user who made the change — obtain from scf_list_members |
| date_from | string | – | Include changes at or after this ISO-8601 timestamp (YYYY-MM-DDTHH:MM:SSZ) |
| date_to | string | – | Include changes at or before this ISO-8601 timestamp (YYYY-MM-DDTHH:MM:SSZ) |
| entity_id | string | – | Filter by the changed entity's UUID |
| entity_type | string | – | Filter 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 |
| limit | integer | – | Page size (1–200, default 50) |
| offset | integer | – | Pagination offset — number of results to skip (default 0) |
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| request_id | string | – | Filter by request correlation ID — groups every change one API call made |
| scf_id | string | – | Filter by SCF control ID in DOMAIN-NN format |
| search_text | string | – | Case-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.
| Name | Type | Req | Description |
|---|---|---|---|
| org_id | string | yes | Organization UUID — obtain from scf_list_organizations |
| theme_code | string | yes | Capability 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.
| Name | Type | Req | Description |
|---|---|---|---|
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| org_id | string | yes | Organization 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?'
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Page size, 1–500 (default 50) |
| offset | integer | – | Rows to skip for pagination (default 0) |
| org_id | string | yes | Organization 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.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence_id | string | yes | Catalog evidence ID, e.g. E-IAM-01 — obtain from scf_list_evidence_catalog |
No output schema declared.
No examples provided.
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.