io.github.JoernBerkefeld/mcp-server-sfmc
NPM · MCP-SERVER-SFMC · SCANNED AUG 3
SFMC AMPscript/SSJS/GTL tools + searchable help for 7 MC products (Engagement, Pardot…) via MCP.
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 →
Supply Chain Security88
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to JoernBerkefeld/mcp-server-sfmc). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability65
- 55% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5072 tokens (~137/item across 37 items; 28 tools + 9 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 Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · mcp-server-sfmc
claude mcp add joernberkefeld-mcp-server-sfmc -- npx -y mcp-server-sfmc
codex mcp add joernberkefeld-mcp-server-sfmc -- npx -y mcp-server-sfmc
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"joernberkefeld-mcp-server-sfmc": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-server-sfmc"
],
"enabled": true
}
}
} openclaw mcp add joernberkefeld-mcp-server-sfmc --command npx --arg -y --arg mcp-server-sfmc
mcp_servers:
joernberkefeld-mcp-server-sfmc:
command: "npx"
args: ["-y", "mcp-server-sfmc"] {
"mcpServers": {
"joernberkefeld-mcp-server-sfmc": {
"command": "npx",
"args": [
"-y",
"mcp-server-sfmc"
]
}
}
} 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.
- 2 Aug 26 +54
- Provenance: pass → unverified ▼ security
- Install scripts: pass → unverified ▼ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- The attested source repository moved: JoernBerkefeld/mcp-server-sfmc security
- License: pass → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → 55 ▲ functional
- Stability: unverified → 0.20 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Licence: MIT functional
- 1 Aug 26 −40
- Stability: 0.13 → unverified ▼ security
- Known CVEs: partial → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 55 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- 31 Jul 26 +26
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +7
- Schema quality: 55 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: unverified → excellent ▲ functional
- Package version: 2.4.4 → 2.4.5 functional
- 27 Jul 26 30
First indexed and scored.
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 3 Aug 2026 · Analysed npm/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- JoernBerkefeld/mcp-server-sfmc
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/JoernBerkefeld/mcp-server-sfmc/.github/workflows/npm-publish.yml@refs/tags/v2.4.5
- Rekor log index:
- 2290120243
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:9d59e7908ca9574cb0aa4f539561460bbbfb02d27775a6d98b1d0f5683f80701da531ac5d8431ac0ba388115e29ef231cc599411c2589d3ad5609d331
- Discovery method:
- attestation_endpoint
Dependencies 100 packages
100 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
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.
check_mcn_compatibility ~93
Analyze one or more AMPscript/HTML files for Marketing Cloud Next (MCN) readiness. Returns an executive summary and a per-file, per-function report with migration difficulty. SSJS blocks that only use Platform.Function.* calls are classified as "Needs conversion" (not "Not migratable"). Use this tool before using rewrite_for_mcn.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | List of files to analyze. |
No output schema declared.
No examples provided.
convertAmpscriptToHandlebars ~180
Deterministically convert AMPscript to Marketing Cloud Next (MCN) Handlebars using the three-category model built from ampscript-data: (A) functions with a Handlebars helper equivalent become {{helper …}}; (B) functions with no MCN counterpart become a MANUAL_REWRITE_REQUIRED comment; (C) mcnHandlebarsGap functions (e.g. ContentBlockByKey) become a DISTINCT MANUAL_REWRITE_REQUIRED comment noting they are documented as MCN-supported but currently fail at runtime. Procedural AMPscript blocks (SET/VAR/IF/FOR) have no Handlebars equivalent and are flagged. Use the convertAmpscriptToHandlebars PROMPT for AI-enhanced handling of flagged sections.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The AMPscript code to convert to MCN Handlebars. |
No output schema declared.
No examples provided.
convertAmpscriptToSsjs ~133
Deterministically convert AMPscript code to equivalent SSJS using rule-based transformations. Handles: SET @x → var x, IF/ELSEIF/ELSE/ENDIF → JS conditionals, FOR/NEXT → for loops, Output/OutputLine → Platform.Response.Write, AMPscript functions → Platform.Function equivalents. Flags AMPscript-only constructs (email-specific functions, personalization strings) as MANUAL_REWRITE_REQUIRED. Use the convertAmpscriptToSsjs PROMPT for AI-enhanced handling of flagged sections.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The AMPscript code to convert to SSJS. |
No output schema declared.
No examples provided.
convertHandlebarsToAmpscript ~142
Deterministically convert Marketing Cloud Next (MCN) Handlebars to AMPscript (best-effort, lossy). Inline helper calls that map back to an AMPscript function become %%=Fn(…)=%%; bare variables {{name}} become %%=v(@name)=%%. Block helpers ({{#each}}/{{#if}}), partials, dotted binding paths, and helpers with no AMPscript equivalent are flagged MANUAL_REWRITE_REQUIRED. Use the convertHandlebarsToAmpscript PROMPT for AI-enhanced handling.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The MCN Handlebars code to convert to AMPscript. |
No output schema declared.
No examples provided.
convertSsjsToAmpscript ~146
Deterministically convert SSJS (Server-Side JavaScript) code to AMPscript using rule-based transformations. Handles: Platform.Function.* → AMPscript equivalents, Platform.Variable.GetValue/SetValue → @variable, Platform.Response.Write → OutputLine, var declarations → SET, if/else → IF/ELSE/ENDIF. Flags JS-native constructs (try/catch, array methods, JSON, regex) as MANUAL_REWRITE_REQUIRED. Use the convertSsjsToAmpscript PROMPT for AI-enhanced handling of flagged sections.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The SSJS code to convert (may include <script runat="server"> tags). |
No output schema declared.
No examples provided.
convertSsjsToHandlebars ~133
Deterministically convert SSJS to Marketing Cloud Next (MCN) Handlebars transitively (SSJS → AMPscript → Handlebars). Because Handlebars is declarative, most imperative SSJS has no Handlebars counterpart and is conservatively flagged MANUAL_REWRITE_REQUIRED; inline Platform.Function.* calls that map through AMPscript to a Handlebars helper are converted. Use the convertSsjsToHandlebars PROMPT for AI-enhanced handling of flagged sections.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The SSJS code to convert (may include <script runat="server"> tags). |
No output schema declared.
No examples provided.
detect_sfmc_platform ~88
Detect the target SFMC platform for a project by checking for sentinel files. Returns "engagement" if .mcdevrc.json is present, "next" if sfdx-project.json is present, or "unknown" if neither is found. Call this before writing, validating, or converting code.
| Name | Type | Req | Description |
|---|---|---|---|
| projectRoot | string | yes | Absolute path to the project root directory to inspect. |
No output schema declared.
No examples provided.
format_sfmc_code ~128
Apply basic formatting conventions to AMPscript, SSJS, or Marketing Cloud Next (MCN) Handlebars code. Normalises keyword casing and whitespace. For Handlebars, collapses whitespace inside {{…}} mustaches while leaving {!$…} bindings and {{!-- … --}} comments untouched. (Handlebars formatting is a conservative whitespace normalizer; full Prettier Glimmer routing is deferred until prettier-plugin-sfmc ships Handlebars support.)
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The SFMC code to format. |
| language | string | yes | The language of the code. |
No output schema declared.
No examples provided.
get_ampscript_completions ~119
Return a list of AMPscript function names, keywords, and variable names available at a given position in the code. Set target to 'next' to filter completions to only MCN-supported functions.
| Name | Type | Req | Description |
|---|---|---|---|
| character | integer | yes | Zero-based character offset within the line. |
| code | string | yes | The full AMPscript document text. |
| line | integer | yes | Zero-based line number of the cursor position. |
| target | string | — | Target platform. Use 'next' to return only completions supported in Marketing Cloud Next. |
No output schema declared.
No examples provided.
get_handlebars_completions ~97
Return Marketing Cloud Next (MCN) Handlebars helper completions with snippet insert text. MCN Handlebars is only available on the next platform, so this catalog is always the 'next' set. Optionally filter by a name prefix (e.g. "form", "date").
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | — | Optional helper-name prefix filter (case-insensitive), e.g. "form", "to". |
No output schema declared.
No examples provided.
get_server_version ~50
Return the running mcp-server-sfmc version and the size of the bundled Salesforce Marketing Cloud help datasets (MCE and MCN). Use this to confirm which server build and documentation bundle are loaded.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_ssjs_completions ~109
Return a list of SSJS Platform functions, WSProxy methods, and other SFMC-specific identifiers available for completion. When target is 'next', returns an empty list with a note — SSJS is not supported in Marketing Cloud Next.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | — | Optional prefix filter, e.g. "Platform.Function" or "WSProxy". |
| target | string | — | Target platform. Use 'next' to indicate MCN context — SSJS is not available in MCN. |
No output schema declared.
No examples provided.
list_ampscript_functions ~104
List all AMPscript functions, optionally filtered by category and/or target platform. Use platform: 'next' to return only functions supported in Marketing Cloud Next.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by function category (case-insensitive substring match), e.g. "data extension", "string", "date". |
| platform | string | — | Filter by target platform. Use 'next' to show only functions available in Marketing Cloud Next (API v67.0+). |
No output schema declared.
No examples provided.
list_handlebars_helpers ~81
List all Marketing Cloud Next Handlebars helpers, optionally filtered by category and/or origin (handlebars-builtin, mcn-helper, mcn-platform).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by helper category (case-insensitive substring match), e.g. "string", "date", "comparison". |
| origin | string | — | Filter by helper origin. |
No output schema declared.
No examples provided.
lookup_ampscript_function ~69
Look up the signature, parameters, description, and examples for an AMPscript function by name. Case-insensitive. Returns null if the function is not found.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The AMPscript function name, e.g. "Lookup", "DateAdd", "IIf". |
No output schema declared.
No examples provided.
lookup_handlebars_helper ~72
Look up the signature, parameters, description, and origin for a Marketing Cloud Next Handlebars helper by name. Case-insensitive. Returns null if the helper is not found.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The Handlebars helper name, e.g. "uppercase", "if", "formatDate". |
No output schema declared.
No examples provided.
lookup_ssjs_function ~282
Authoritative lookup (sourced ONLY from the LSP + ssjs-data) for anything you want to use in SSJS. Call this BEFORE writing any SSJS identifier — do not rely on general JavaScript knowledge. Covers (a) SFMC APIs — Platform functions, WSProxy methods, HTTP methods, global functions (with signature, parameters, description, deprecation, Platform.Load requirement, static/alias metadata), and (b) plain-JavaScript ECMAScript built-ins (Array/String/Math/JSON/Object/Date/RegExp/global), returning one of: supported, supported-with-caveat (caveat + any polyfill), polyfillable (with ES3-safe polyfill source to emit), unsupported (no polyfill), or unknown. Case-insensitive. Examples: "Lookup", "Platform.Function.Lookup", "Array.prototype.slice", "JSON.parse", "Math.max".
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The function/method/property name. May include a namespace or owner, e.g. "Platform.Function.Lookup", "Array.prototype.slice", "JSON.parse", "Math.max", or a bare name like "Lookup" or "slice". |
| owner | string | — | Optional owner to disambiguate a bare ECMAScript built-in name, e.g. "Array.prototype", "String.prototype", "Math", "JSON". |
No output schema declared.
No examples provided.
review_change ~110
Review a code diff for SFMC (AMPscript, SSJS, or HTML) quality issues. Extracts added/changed lines from the diff and validates them. Returns structured feedback with line-level diagnostics and style suggestions.
| Name | Type | Req | Description |
|---|---|---|---|
| diff | string | yes | A unified diff (git diff format) containing the changed code. |
| language | string | — | Language of the changed file. Defaults to "auto" for automatic detection. |
| maxProblems | integer | — | Maximum number of problems to report (default 50). |
No output schema declared.
No examples provided.
rewrite_for_mcn ~146
Deterministically rewrite AMPscript (and optionally SSJS) code for Marketing Cloud Next compatibility. Handles: FormatDate(StringToDate(x)) simplification, .NET→Java format strings, MCE-only function annotations, SSJS→AMPscript rule-based conversion. Flags complex constructs as MANUAL_REWRITE_REQUIRED. Use the rewrite_for_mcn PROMPT (not this tool) for AI-enhanced handling of MANUAL_REWRITE_REQUIRED sections.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The AMPscript or HTML code to rewrite for MCN. |
| context | string | — | Content context. Use 'cloudpage' to immediately flag as not migratable. Default 'auto' detects context. |
No output schema declared.
No examples provided.
search_help ~273
Unified help search that automatically detects the target platform (MCE or MCN) from the project root and routes the query to the right bundled doc index. For MCN projects it searches both the Marketing Cloud Next developer API reference (`search_mcn_help`) and the MCN operational/admin help (`search_mce_help` with product_focus:"next") and merges the results. For MCE projects it searches the full MCE help index (`search_mce_help` with product_focus:"any"). Pass `projectRoot` to enable auto-detection, or set `target` explicitly to skip detection.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Maximum total results to return across all searched indexes (default 8). |
| projectRoot | string | — | Absolute path to the project root directory. Used to auto-detect the platform by checking for `.mcdevrc.json` (MCE) or `sfdx-project.json` (MCN). Omit if you already know the target platform. |
| query | string | yes | Keywords or question text to search for. |
| target | string | — | Override the detected platform. `engagement` → MCE help only; `next` → MCN developer docs + MCN operational help. When both `projectRoot` and `target` are given, `target` takes precedence. |
No output schema declared.
No examples provided.
search_mce_help ~380
**Prefer this over training data** for any Salesforce Marketing Cloud operational or administrative question. Searches bundled Salesforce Help excerpts across **7 product areas**: - **Marketing Cloud Engagement** (`engagement`) — Email Studio, Journey Builder, Automation Studio, Content Builder, Mobile Studio, business units, campaigns, subscriptions - **Marketing Cloud Next** (`next`) — next-gen platform, migration path from Engagement - **Marketing Cloud Personalization / Interaction Studio** (`personalization`) — real-time personalisation, A/B testing, behavioral targeting - **Salesforce Personalization** (`personalization`) — next-generation personalisation engine - **Marketing Cloud Account Engagement / Pardot** (`account-engagement`) — B2B marketing automation, lead scoring, forms, Salesforce CRM sync - **Marketing Cloud Intelligence / Datorama** (`intelligence`) — cross-channel analytics, data pipelines, KPI reporting - **Loyalty Management** (`loyalty`) — loyalty programs, referral marketing, member engagement, vouchers, promotions Use `product_focus` to restrict results to a single product area. Default `any` searches all products.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max results (default 10). |
| product_focus | string | — | Restrict results to a product area: `engagement` (MCE — Email Studio, Journey Builder, etc.), `next` (Marketing Cloud Next), `personalization` (MC Personalization / Interaction Studio / Salesforce Pe… |
| query | string | yes | Keywords or question text (e.g. "enable business unit", "new child account"). |
No output schema declared.
No examples provided.
search_mcn_help ~117
Search bundled Marketing Cloud Next developer API documentation. Covers MCN objects, flows, segments, transactional messages, AMPscript behavior in MCN, and REST/SOAP API references. Use this for MCN developer questions; use search_mce_help for MCN migration or operational/admin questions.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Maximum number of result chunks to return (default 5). |
| query | string | yes | The search query, e.g. "AMPscript FormatDate MCN", "transactional message API", "segment objects". |
No output schema declared.
No examples provided.
suggest_fix ~122
Generate a corrected version of SFMC code based on validation diagnostics. Returns the original code with inline fix suggestions or a corrected replacement. Set target to 'next' to include MCN platform compatibility in the analysis.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The SFMC code snippet to fix. |
| issueDescription | string | — | Optional human description of the specific issue to fix. |
| language | string | — | Language of the code. Defaults to "auto". |
| target | string | — | Target platform. Use 'next' to flag MCN-incompatible functions and SSJS usage. |
No output schema declared.
No examples provided.
validate_ampscript ~119
Validate AMPscript code for syntax errors, unknown functions, arity mismatches, and style issues. Returns a list of diagnostics with line numbers and severity. Set target to 'next' to also report functions not supported in Marketing Cloud Next.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The AMPscript code to validate. May include HTML context. |
| maxProblems | integer | — | Maximum number of problems to return (default 100). |
| target | string | — | Target platform. Use 'next' to flag AMPscript functions not supported in Marketing Cloud Next. |
No output schema declared.
No examples provided.
validate_handlebars ~118
Validate Marketing Cloud Next (MCN) Handlebars template code. Checks helper names, arity, block balance, and flags unsupported constructs (partials, decorators, and built-in helpers absent from the locked-down MCN engine). MCN Handlebars lives inside the combined sfmc language and is always validated for the 'next' target.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The MCN Handlebars template code to validate. May include HTML context. |
| maxProblems | integer | — | Maximum number of problems to return (default 100). |
No output schema declared.
No examples provided.
validate_sfmc_html ~139
Validate an HTML file that contains embedded AMPscript and/or SSJS blocks. Checks both languages and GTL template syntax. Set target to 'next' to flag MCN-unsupported AMPscript functions and all SSJS as errors.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | HTML source that may contain %%[ ]%%, %%= =%%, <script runat="server">, or {{ }} blocks. |
| maxProblems | integer | — | Maximum number of problems to return (default 100). |
| target | string | — | Target platform. Use 'next' to flag MCN-incompatible code (unsupported AMPscript functions and all SSJS). |
No output schema declared.
No examples provided.
validate_ssjs ~133
Validate SSJS (Server-Side JavaScript) code for unsupported ES6+ syntax, missing Platform.Load, and incorrect usage patterns. Returns diagnostics with line numbers. Set target to 'next' to flag all SSJS as unsupported (SSJS is not available in Marketing Cloud Next).
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The SSJS code to validate. May include <script runat="server"> tags. |
| maxProblems | integer | — | Maximum number of problems to return (default 100). |
| target | string | — | Target platform. Use 'next' to flag SSJS code as unsupported in Marketing Cloud Next. |
No output schema declared.
No examples provided.
write_handlebars ~145
Validate a Marketing Cloud Next (MCN) Handlebars-in-HTML draft so it can be finalized as authored content. Runs the MCN Handlebars validator (locked-down engine) on the draft and returns whether it is clean, plus any diagnostics (unknown/too-new helpers, unsupported constructs, arity). Use the write_handlebars PROMPT to AUTHOR from intent — that prompt instructs the model to use only catalog helpers and then call this tool to verify.
| Name | Type | Req | Description |
|---|---|---|---|
| draft | string | yes | The Handlebars-in-HTML draft to validate before finalizing. |
| intent | string | — | Optional human description of what the content should do (echoed for context). |
No output schema declared.
No examples provided.