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

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

+47 this week 77 Trust /100
Trust breakdown (6 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 →

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
Install

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

# add to Claude Code
claude mcp add joernberkefeld-mcp-server-sfmc -- npx -y mcp-server-sfmc
# add to Codex CLI
codex mcp add joernberkefeld-mcp-server-sfmc -- npx -y mcp-server-sfmc
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "joernberkefeld-mcp-server-sfmc": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-server-sfmc"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add joernberkefeld-mcp-server-sfmc --command npx --arg -y --arg mcp-server-sfmc
# ~/.hermes/config.yaml
mcp_servers:
  joernberkefeld-mcp-server-sfmc:
    command: "npx"
    args: ["-y", "mcp-server-sfmc"]
// mcp.json
{
  "mcpServers": {
    "joernberkefeld-mcp-server-sfmc": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-sfmc"
      ]
    }
  }
}
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.

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

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

MCP tools — 28 exposed · ~3,828 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.

Tool Tokens
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.

NameTypeReqDescription
filesarrayyesList 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.

NameTypeReqDescription
codestringyesThe 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.

NameTypeReqDescription
codestringyesThe 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.

NameTypeReqDescription
codestringyesThe 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.

NameTypeReqDescription
codestringyesThe 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.

NameTypeReqDescription
codestringyesThe 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.

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

NameTypeReqDescription
codestringyesThe SFMC code to format.
languagestringyesThe 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.

NameTypeReqDescription
characterintegeryesZero-based character offset within the line.
codestringyesThe full AMPscript document text.
lineintegeryesZero-based line number of the cursor position.
targetstringTarget 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").

NameTypeReqDescription
filterstringOptional 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.

NameTypeReqDescription
filterstringOptional prefix filter, e.g. "Platform.Function" or "WSProxy".
targetstringTarget 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.

NameTypeReqDescription
categorystringFilter by function category (case-insensitive substring match), e.g. "data extension", "string", "date".
platformstringFilter 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).

NameTypeReqDescription
categorystringFilter by helper category (case-insensitive substring match), e.g. "string", "date", "comparison".
originstringFilter 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.

NameTypeReqDescription
namestringyesThe 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.

NameTypeReqDescription
namestringyesThe 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".

NameTypeReqDescription
namestringyesThe 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".
ownerstringOptional 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.

NameTypeReqDescription
diffstringyesA unified diff (git diff format) containing the changed code.
languagestringLanguage of the changed file. Defaults to "auto" for automatic detection.
maxProblemsintegerMaximum 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.

NameTypeReqDescription
codestringyesThe AMPscript or HTML code to rewrite for MCN.
contextstringContent 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.

NameTypeReqDescription
limitintegerMaximum total results to return across all searched indexes (default 8).
projectRootstringAbsolute 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.
querystringyesKeywords or question text to search for.
targetstringOverride 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.

NameTypeReqDescription
limitintegerMax results (default 10).
product_focusstringRestrict results to a product area: `engagement` (MCE — Email Studio, Journey Builder, etc.), `next` (Marketing Cloud Next), `personalization` (MC Personalization / Interaction Studio / Salesforce Pe…
querystringyesKeywords 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.

NameTypeReqDescription
limitintegerMaximum number of result chunks to return (default 5).
querystringyesThe 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.

NameTypeReqDescription
codestringyesThe SFMC code snippet to fix.
issueDescriptionstringOptional human description of the specific issue to fix.
languagestringLanguage of the code. Defaults to "auto".
targetstringTarget 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.

NameTypeReqDescription
codestringyesThe AMPscript code to validate. May include HTML context.
maxProblemsintegerMaximum number of problems to return (default 100).
targetstringTarget 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.

NameTypeReqDescription
codestringyesThe MCN Handlebars template code to validate. May include HTML context.
maxProblemsintegerMaximum 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.

NameTypeReqDescription
codestringyesHTML source that may contain %%[ ]%%, %%= =%%, <script runat="server">, or {{ }} blocks.
maxProblemsintegerMaximum number of problems to return (default 100).
targetstringTarget 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).

NameTypeReqDescription
codestringyesThe SSJS code to validate. May include <script runat="server"> tags.
maxProblemsintegerMaximum number of problems to return (default 100).
targetstringTarget 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.

NameTypeReqDescription
draftstringyesThe Handlebars-in-HTML draft to validate before finalizing.
intentstringOptional human description of what the content should do (echoed for context).

No output schema declared.

No examples provided.