mcp-server-sfmc 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,9 +29,14 @@ You **do not** have to install the VS Code extension. Pick one way to run the se
29
29
  | **`npx` (no install)** | Default in the examples below. Runs the latest published version from npm on demand; first run may download the package. **Requires Node.js and npm** (which provides `npx`). |
30
30
  | **`npm install -g mcp-server-sfmc`** | Same CLI as `npx`, but the package stays on disk so **startup is faster** and you can set `"command": "mcp-server-sfmc"` with empty `args` in your MCP config. |
31
31
  | **`npm install mcp-server-sfmc` in a project** | Keeps a **pinned version** in that folder’s `node_modules` — point your MCP config at `npx mcp-server-sfmc` with `cwd` set to the project, or run `./node_modules/.bin/mcp-server-sfmc` directly. |
32
+ | **`sfmc-review-diff` (bundled CLI)** | For **CI**: spawns this MCP server, calls `review_change` on a unified diff (stdin or file), exits non-zero on `ERROR` by default. Install the package in the job, then e.g. `git diff base...HEAD \| npx sfmc-review-diff`. |
32
33
 
33
34
  None of these replace the VS Code extension for **editing** (syntax, LSP, snippets); they only expose the **MCP server** to tools that speak the Model Context Protocol.
34
35
 
36
+ ## CI templates and `sfmc-review-diff`
37
+
38
+ Ready-to-copy workflows (GitHub Actions, GitLab CI, Jenkins, Azure Pipelines, Bitbucket Pipelines) live under **[`ci-templates/`](./ci-templates/)**. They run **`eslint-plugin-sfmc`** on changed files and **`sfmc-review-diff`** on the PR/MR unified diff. See **[`ci-templates/README.md`](./ci-templates/README.md)** for what each file does and how the two checks differ.
39
+
35
40
  ## What it gives your AI assistant
36
41
 
37
42
  | Feature | Details |
@@ -43,7 +48,7 @@ None of these replace the VS Code extension for **editing** (syntax, LSP, snippe
43
48
  | **Completions** | AMPscript function/keyword completions, SSJS Platform API catalog |
44
49
  | **Prompts** | Guided prompts for writing AMPscript, SSJS, reviewing code, and converting between the two |
45
50
  | **Resources** | Full function catalogs, keyword list, unsupported ES6+ syntax list |
46
- | **MCE help search** | Bundled excerpts from local Help mirrors (`docs/help.salesforce/mce`) with Engagement vs Next labeling |
51
+ | **MCE help search** | Bundled excerpts from mirrored Salesforce Help (MCE vs Next scoped) |
47
52
 
48
53
  ## Quick start
49
54
 
@@ -238,7 +243,7 @@ In clients that support MCP prompts (e.g. VS Code with the `/mcp.sfmc.answerMceH
238
243
 
239
244
  ## Refresh bundled Marketing Cloud Engagement help
240
245
 
241
- The published npm package includes `bundled/mce-help/chunks.json`, built from a checkout that contains the mirrored Help tree at `docs/help.salesforce/mce` (for example in this monorepo). To regenerate after updating those docs:
246
+ The published npm package includes `bundled/mce-help/chunks.json`, produced by `npm run bundle-mce-help`. By default the bundler uses the path in **`MCE_HELP_DOCS`** (see `scripts/bundle-mce-help.mjs`); set it to the root of your mirrored MCE Help Markdown tree when not using the maintainer default.
242
247
 
243
248
  ```bash
244
249
  cd mcp-server-sfmc
@@ -247,7 +252,7 @@ npm run build
247
252
  npm test
248
253
  ```
249
254
 
250
- Override the source path: `MCE_HELP_DOCS=/absolute/path/to/mce npm run bundle-mce-help`
255
+ Example: `MCE_HELP_DOCS=/absolute/path/to/mce-help-mirror npm run bundle-mce-help`
251
256
 
252
257
  ## AI code review in pull requests
253
258
 
@@ -0,0 +1,71 @@
1
+ // Jenkins pipeline — SFMC Code Quality
2
+ // Runs eslint-plugin-sfmc on changed AMPscript and SSJS files in a pull request.
3
+ //
4
+ // Prerequisites:
5
+ // - Node.js 20+ installed on the agent (or use the 'nodejs' tool in Jenkins config)
6
+ // - "GitHub Pull Request Builder" or "Bitbucket Branch Source" plugin for PR detection
7
+
8
+ pipeline {
9
+ agent any
10
+
11
+ tools {
12
+ nodejs 'node-20' // matches the name in Manage Jenkins > Global Tool Configuration
13
+ }
14
+
15
+ triggers {
16
+ // GitHub Pull Request Builder plugin trigger (adjust as needed for your SCM)
17
+ githubPush()
18
+ }
19
+
20
+ stages {
21
+ stage('Lint SFMC') {
22
+ when {
23
+ changeRequest() // only run on PRs/MRs
24
+ }
25
+ steps {
26
+ script {
27
+ // Install linter
28
+ sh 'npm install --no-save eslint eslint-plugin-sfmc'
29
+
30
+ // Write minimal config
31
+ writeFile file: 'eslint.config.mjs', text: '''
32
+ import sfmc from 'eslint-plugin-sfmc';
33
+ export default [...sfmc.configs.recommended];
34
+ '''
35
+
36
+ // Determine changed files (adjust base-branch detection as needed)
37
+ def changedFiles = sh(
38
+ script: "git diff --name-only origin/${env.CHANGE_TARGET}...HEAD | grep -E '\\.(amp|ampscript|ssjs|html)$' || true",
39
+ returnStdout: true
40
+ ).trim()
41
+
42
+ if (changedFiles) {
43
+ echo "Linting SFMC files:\n${changedFiles}"
44
+ sh "npx eslint --format stylish ${changedFiles}"
45
+ } else {
46
+ echo "No SFMC files changed — skipping lint."
47
+ }
48
+ }
49
+ }
50
+ post {
51
+ failure {
52
+ // Optionally post a comment using the GitHub plugin
53
+ echo 'SFMC lint failed. See build log for details.'
54
+ }
55
+ }
56
+ }
57
+
58
+ stage('MCP diff review') {
59
+ when {
60
+ changeRequest()
61
+ }
62
+ steps {
63
+ script {
64
+ sh 'npm install --no-save mcp-server-sfmc@latest'
65
+ sh 'git fetch origin +refs/heads/$CHANGE_TARGET:refs/remotes/origin/$CHANGE_TARGET --depth=500 || true'
66
+ sh 'git diff origin/$CHANGE_TARGET...HEAD | npx sfmc-review-diff'
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,36 @@
1
+ # CI templates for SFMC projects
2
+
3
+ Copy these files into your own repository and adjust branch names, Node version, or path filters as needed.
4
+
5
+ ## Two complementary checks
6
+
7
+ | Mechanism | What it does |
8
+ |-----------|----------------|
9
+ | **ESLint** (`eslint-plugin-sfmc`) | Lints **changed files** matching `*.amp`, `*.ssjs`, `*.html` (and embedded rules for HTML). File-level rules (unknown functions, arity, ES6 in SSJS, etc.). |
10
+ | **`sfmc-review-diff`** (this package, CLI) | Pipes a **unified `git diff`** into the MCP tool `review_change`, which validates **only added lines** using the same language catalog as the MCP server. Fails the job on `ERROR` diagnostics by default (`--fail-on` can include warnings or infos). |
11
+
12
+ You can keep **both** jobs in CI, or drop one if you only want file-based linting or only diff-based review.
13
+
14
+ **Git history:** shallow clones often lack the merge base. Prefer `fetch-depth: 0` (GitHub Actions), `GIT_DEPTH: "0"` (GitLab merge request pipelines), or enough depth that your diff command’s base ref/SHA exists.
15
+
16
+ ## Files in this folder
17
+
18
+ | File | Platform | ESLint | `sfmc-review-diff` |
19
+ |------|----------|--------|----------------------|
20
+ | [github-action.yml](./github-action.yml) | GitHub Actions | yes | yes |
21
+ | [gitlab-ci.yml](./gitlab-ci.yml) | GitLab CI | yes | yes |
22
+ | [Jenkinsfile](./Jenkinsfile) | Jenkins | yes | yes |
23
+ | [azure-pipelines.yml](./azure-pipelines.yml) | Azure Pipelines | yes | yes |
24
+ | [bitbucket-pipelines.yml](./bitbucket-pipelines.yml) | Bitbucket Pipelines | yes | yes |
25
+ | [eslint.config.mjs](./eslint.config.mjs) | (reference) | shared flat config | — |
26
+
27
+ ## AI review instructions (not CI)
28
+
29
+ These files guide **GitLab Duo** / **GitHub Copilot** style review text; they do **not** run `sfmc-review-diff`:
30
+
31
+ - [gitlab-duo-review-instructions.md](./gitlab-duo-review-instructions.md) — place content in `.gitlab/duo/mr-review-instructions.yaml` per GitLab docs (YAML format), not as a raw paste of this file.
32
+ - [github-copilot-review-instructions.md](./github-copilot-review-instructions.md) — Copilot / agent instructions; MCP blocks belong in client config, not in Actions YAML.
33
+
34
+ ## Installing the CLI in CI
35
+
36
+ Templates use `npm install --no-save mcp-server-sfmc@latest` so the `sfmc-review-diff` binary is available. Pin a semver range in your project if you need reproducible builds.
@@ -0,0 +1,64 @@
1
+ # Azure DevOps Pipelines — SFMC Code Quality
2
+ # Runs eslint-plugin-sfmc on changed AMPscript and SSJS files in pull requests.
3
+ #
4
+ # Add to your repository as azure-pipelines.yml and enable in Azure DevOps Pipelines.
5
+
6
+ trigger: none # only run on PRs, not pushes
7
+
8
+ pr:
9
+ branches:
10
+ include:
11
+ - main
12
+ - master
13
+ - develop
14
+ paths:
15
+ include:
16
+ - "**/*.amp"
17
+ - "**/*.ampscript"
18
+ - "**/*.ssjs"
19
+ - "**/*.html"
20
+
21
+ pool:
22
+ vmImage: "ubuntu-latest"
23
+
24
+ steps:
25
+ - task: NodeTool@0
26
+ inputs:
27
+ versionSpec: "20.x"
28
+ displayName: "Install Node.js 20"
29
+
30
+ - script: npm install --no-save eslint eslint-plugin-sfmc
31
+ displayName: "Install eslint-plugin-sfmc"
32
+
33
+ - script: |
34
+ cat > eslint.config.mjs << 'EOF'
35
+ import sfmc from 'eslint-plugin-sfmc';
36
+ export default [...sfmc.configs.recommended];
37
+ EOF
38
+ displayName: "Create ESLint config"
39
+
40
+ - script: |
41
+ git fetch origin $(System.PullRequest.TargetBranch) --depth=1
42
+ CHANGED=$(git diff --name-only origin/$(System.PullRequest.TargetBranch)...HEAD \
43
+ | grep -E '\.(amp|ampscript|ssjs|html)$' || true)
44
+
45
+ if [ -z "$CHANGED" ]; then
46
+ echo "No SFMC files changed — skipping lint."
47
+ exit 0
48
+ fi
49
+
50
+ echo "Linting SFMC files:"
51
+ echo "$CHANGED"
52
+ npx eslint --format stylish $CHANGED
53
+ displayName: "Run SFMC lint"
54
+ failOnStderr: false
55
+
56
+ - script: npm install --no-save mcp-server-sfmc@latest
57
+ displayName: "Install mcp-server-sfmc (sfmc-review-diff)"
58
+
59
+ - script: |
60
+ set -e
61
+ git fetch origin "$(System.PullRequest.TargetBranch)" --unshallow 2>/dev/null || git fetch origin "$(System.PullRequest.TargetBranch)" --depth=500
62
+ git diff "origin/$(System.PullRequest.TargetBranch)...HEAD" | npx sfmc-review-diff
63
+ displayName: "MCP diff review (sfmc-review-diff)"
64
+ failOnStderr: false
@@ -0,0 +1,57 @@
1
+ # Bitbucket Pipelines — SFMC Code Quality
2
+ # Runs eslint-plugin-sfmc on changed AMPscript and SSJS files in pull requests.
3
+ #
4
+ # Add to your repository as bitbucket-pipelines.yml (or merge into your existing one).
5
+
6
+ image: node:20-alpine
7
+
8
+ definitions:
9
+ steps:
10
+ - step: &sfmc-lint
11
+ name: Lint AMPscript & SSJS
12
+ script:
13
+ - npm install --no-save eslint eslint-plugin-sfmc
14
+ - |
15
+ cat > eslint.config.mjs << 'EOF'
16
+ import sfmc from 'eslint-plugin-sfmc';
17
+ export default [...sfmc.configs.recommended];
18
+ EOF
19
+ - |
20
+ # Bitbucket provides BITBUCKET_PR_DESTINATION_BRANCH for PR builds
21
+ if [ -n "$BITBUCKET_PR_DESTINATION_BRANCH" ]; then
22
+ git fetch origin "$BITBUCKET_PR_DESTINATION_BRANCH" --depth=1
23
+ CHANGED=$(git diff --name-only "origin/$BITBUCKET_PR_DESTINATION_BRANCH"...HEAD \
24
+ | grep -E '\.(amp|ampscript|ssjs|html)$' || true)
25
+ else
26
+ # Fallback: lint all SFMC files
27
+ CHANGED=$(find . -type f \( -name '*.amp' -o -name '*.ampscript' -o -name '*.ssjs' \) | head -50)
28
+ fi
29
+
30
+ if [ -z "$CHANGED" ]; then
31
+ echo "No SFMC files to lint."
32
+ exit 0
33
+ fi
34
+
35
+ echo "Linting:"
36
+ echo "$CHANGED"
37
+ npx eslint --format stylish $CHANGED
38
+
39
+ - step: &sfmc-review-diff
40
+ name: MCP diff review (sfmc-review-diff)
41
+ script:
42
+ - npm install --no-save mcp-server-sfmc@latest
43
+ - |
44
+ if [ -n "$BITBUCKET_PR_DESTINATION_BRANCH" ]; then
45
+ git fetch origin "$BITBUCKET_PR_DESTINATION_BRANCH" --depth=500
46
+ git diff "origin/$BITBUCKET_PR_DESTINATION_BRANCH"...HEAD | npx sfmc-review-diff
47
+ else
48
+ echo "Not a PR build — skipping sfmc-review-diff."
49
+ exit 0
50
+ fi
51
+
52
+ pipelines:
53
+ pull-requests:
54
+ "**":
55
+ - parallel:
56
+ - step: *sfmc-lint
57
+ - step: *sfmc-review-diff
@@ -0,0 +1,25 @@
1
+ /**
2
+ * eslint.config.mjs — SFMC project ESLint configuration
3
+ *
4
+ * Copy this file to your project root to enable eslint-plugin-sfmc rules
5
+ * for AMPscript (.amp, .ampscript) and SSJS (.ssjs) files.
6
+ *
7
+ * Usage:
8
+ * npm install --save-dev eslint eslint-plugin-sfmc
9
+ * npx eslint .
10
+ */
11
+
12
+ import sfmc from 'eslint-plugin-sfmc';
13
+
14
+ export default [
15
+ // eslint-plugin-sfmc recommended rules for .amp, .ampscript, .ssjs, and .html files
16
+ ...sfmc.configs.recommended,
17
+
18
+ // Optional: customise rules for your project
19
+ {
20
+ rules: {
21
+ // Increase the maximum number of problems reported per file
22
+ // 'sfmc/max-problems': ['warn', { max: 200 }],
23
+ },
24
+ },
25
+ ];
@@ -0,0 +1,109 @@
1
+ # place this file in .github/workflows
2
+ name: SFMC Code Quality
3
+
4
+ on:
5
+ pull_request:
6
+ paths:
7
+ - "**/*.amp"
8
+ - "**/*.ampscript"
9
+ - "**/*.ssjs"
10
+ - "**/*.html"
11
+
12
+ jobs:
13
+ lint-sfmc:
14
+ name: Lint AMPscript & SSJS
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: read
18
+ pull-requests: write
19
+
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@v4
23
+
24
+ - name: Set up Node.js
25
+ uses: actions/setup-node@v4
26
+ with:
27
+ node-version: "20"
28
+
29
+ - name: Install eslint-plugin-sfmc
30
+ run: npm install --no-save eslint eslint-plugin-sfmc
31
+
32
+ - name: Create ESLint config
33
+ run: |
34
+ cat > eslint.config.mjs << 'EOF'
35
+ import sfmc from 'eslint-plugin-sfmc';
36
+ export default [
37
+ ...sfmc.configs.recommended,
38
+ ];
39
+ EOF
40
+
41
+ - name: Run ESLint on changed files
42
+ id: lint
43
+ run: |
44
+ # Get changed files
45
+ git fetch origin ${{ github.base_ref }} --depth=1
46
+ CHANGED=$(git diff --name-only origin/${{ github.base_ref }}...HEAD \
47
+ | grep -E '\.(amp|ampscript|ssjs|html)$' || true)
48
+
49
+ if [ -z "$CHANGED" ]; then
50
+ echo "No SFMC files changed."
51
+ echo "result=pass" >> "$GITHUB_OUTPUT"
52
+ exit 0
53
+ fi
54
+
55
+ echo "Linting files:"
56
+ echo "$CHANGED"
57
+
58
+ # Run eslint and capture output
59
+ OUTPUT=$(npx eslint --format stylish $CHANGED 2>&1 || true)
60
+ echo "$OUTPUT"
61
+
62
+ if echo "$OUTPUT" | grep -q "error"; then
63
+ echo "result=fail" >> "$GITHUB_OUTPUT"
64
+ echo "lint_output<<EOF" >> "$GITHUB_OUTPUT"
65
+ echo "$OUTPUT" >> "$GITHUB_OUTPUT"
66
+ echo "EOF" >> "$GITHUB_OUTPUT"
67
+ else
68
+ echo "result=pass" >> "$GITHUB_OUTPUT"
69
+ fi
70
+
71
+ - name: Comment on PR
72
+ if: steps.lint.outputs.result == 'fail'
73
+ uses: actions/github-script@v7
74
+ with:
75
+ script: |
76
+ const output = `${{ steps.lint.outputs.lint_output }}`;
77
+ await github.rest.issues.createComment({
78
+ issue_number: context.issue.number,
79
+ owner: context.repo.owner,
80
+ repo: context.repo.repo,
81
+ body: `## SFMC Lint Results\n\n\`\`\`\n${output}\n\`\`\`\n\n> Run by [SFMC Code Quality workflow](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})`
82
+ });
83
+
84
+ - name: Fail if errors found
85
+ if: steps.lint.outputs.result == 'fail'
86
+ run: exit 1
87
+
88
+ review-diff-sfmc:
89
+ name: MCP diff review (sfmc-review-diff)
90
+ runs-on: ubuntu-latest
91
+ permissions:
92
+ contents: read
93
+ steps:
94
+ - name: Checkout
95
+ uses: actions/checkout@v4
96
+ with:
97
+ fetch-depth: 0
98
+
99
+ - name: Set up Node.js
100
+ uses: actions/setup-node@v4
101
+ with:
102
+ node-version: "20"
103
+
104
+ - name: Install mcp-server-sfmc
105
+ run: npm install --no-save mcp-server-sfmc@latest
106
+
107
+ - name: review_change on PR unified diff
108
+ run: |
109
+ git diff "${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }}" | npx sfmc-review-diff
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: sfmc-reviewer
3
+ description: >
4
+ SFMC code quality specialist. Reviews AMPscript, SSJS, and HTML containing
5
+ SFMC-specific syntax. Validates language correctness, catches common mistakes,
6
+ and suggests idiomatic fixes — all grounded in the SFMC language catalog via
7
+ the mcp-server-sfmc MCP tools.
8
+ tools:
9
+ - read_file
10
+ - create_file
11
+ - replace_string_in_file
12
+ - sfmc/validate_ampscript
13
+ - sfmc/validate_ssjs
14
+ - sfmc/validate_sfmc_html
15
+ - sfmc/lookup_ampscript_function
16
+ - sfmc/lookup_ssjs_function
17
+ - sfmc/review_change
18
+ - sfmc/suggest_fix
19
+ - sfmc/get_ampscript_completions
20
+ - sfmc/get_ssjs_completions
21
+ mcp-servers:
22
+ sfmc:
23
+ type: stdio
24
+ command: npx
25
+ args:
26
+ - "-y"
27
+ - "mcp-server-sfmc@latest"
28
+ ---
29
+
30
+ # instructions for human
31
+ Place this content in `.github/agents/sfmc-reviewer.agent.md` in your repository.
32
+ GitLab Duo Code Review will use these instructions when reviewing merge requests.
33
+
34
+ # instructions for AI
35
+ You are an expert Salesforce Marketing Cloud (SFMC) developer and code reviewer.
36
+
37
+ ## Your responsibilities
38
+
39
+ - Review AMPscript, SSJS, and SFMC HTML code for correctness and best practices.
40
+ - Use `validate_ampscript`, `validate_ssjs`, or `validate_sfmc_html` to find real errors — never guess.
41
+ - Use `lookup_ampscript_function` and `lookup_ssjs_function` to verify function signatures and parameter counts before commenting on them.
42
+ - Use `suggest_fix` to generate concrete, compilable corrections for every issue you raise.
43
+ - Use `review_change` when reviewing diffs rather than full files.
44
+
45
+ ## Language rules to enforce
46
+
47
+ ### AMPscript
48
+ - Delimiters: `%%[ ]%%` for blocks, `%%= =%%` for inline output.
49
+ - Keywords (SET, VAR, IF, ELSEIF, ELSE, ENDIF, FOR, NEXT, OUTPUT) must be uppercase.
50
+ - Variables start with `@`. Example: `SET @myVar = "value"`.
51
+ - Comments: `/* block comment */` only — never `//` or `<!-- -->`.
52
+ - No ES6+ syntax (this is NOT JavaScript).
53
+ - All function names are case-insensitive (PascalCase by convention).
54
+
55
+ ### SSJS
56
+ - ES5 engine only: use `var`, never `let`/`const`.
57
+ - No arrow functions, template literals, destructuring, Promises, or `class`.
58
+ - Wrap code in `<script runat="server">` ... `</script>`.
59
+ - Call `Platform.Load("core", "1.1.5");` before using Core library objects (DataExtension, Rows, etc.).
60
+ - Use `Platform.Function.*` for SFMC-specific APIs.
61
+ - Use `new WSProxy()` for SOAP API calls.
62
+ - Handle WSProxy errors by checking `response.Status`.
63
+
64
+ ## Review format
65
+
66
+ For each issue found:
67
+ 1. State the line number and the exact problem.
68
+ 2. Quote the problematic code.
69
+ 3. Provide the corrected code.
70
+ 4. Explain why the original is wrong (one sentence).
71
+
72
+ End with a brief summary: total issues by severity, and whether the code is safe to merge.
@@ -0,0 +1,49 @@
1
+ # GitLab CI — SFMC Code Quality
2
+ #
3
+ # Runs eslint-plugin-sfmc on every merge request that touches AMPscript or SSJS files.
4
+ # Add this to your .gitlab-ci.yml or include it via:
5
+ #
6
+ # include:
7
+ # - remote: 'https://raw.githubusercontent.com/JoernBerkefeld/mcp-server-sfmc/main/ci-templates/gitlab-ci.yml'
8
+
9
+ stages:
10
+ - lint
11
+
12
+ sfmc-lint:
13
+ stage: lint
14
+ image: node:20-alpine
15
+ rules:
16
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
17
+ changes:
18
+ - "**/*.amp"
19
+ - "**/*.ampscript"
20
+ - "**/*.ssjs"
21
+ - "**/*.html"
22
+ script:
23
+ - npm install --no-save eslint eslint-plugin-sfmc
24
+ - |
25
+ cat > eslint.config.mjs << 'EOF'
26
+ import sfmc from 'eslint-plugin-sfmc';
27
+ export default [...sfmc.configs.recommended];
28
+ EOF
29
+ - |
30
+ CHANGED=$(git diff --name-only origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME...HEAD \
31
+ | grep -E '\.(amp|ampscript|ssjs|html)$' || true)
32
+ if [ -z "$CHANGED" ]; then
33
+ echo "No SFMC files changed — skipping lint."
34
+ exit 0
35
+ fi
36
+ npx eslint --format stylish $CHANGED
37
+ allow_failure: false
38
+
39
+ sfmc-review-diff:
40
+ stage: lint
41
+ image: node:20-alpine
42
+ variables:
43
+ GIT_DEPTH: "0"
44
+ rules:
45
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
46
+ script:
47
+ - npm install --no-save mcp-server-sfmc@latest
48
+ - git diff "$CI_MERGE_REQUEST_DIFF_BASE_SHA...HEAD" | npx sfmc-review-diff
49
+ allow_failure: false
@@ -0,0 +1,36 @@
1
+ # GitLab Duo — SFMC Code Review Instructions
2
+
3
+ Place this content in `.gitlab/duo-instructions.md` in your repository.
4
+ GitLab Duo Code Review will use these instructions when reviewing merge requests.
5
+
6
+ ---
7
+
8
+ This repository contains Salesforce Marketing Cloud (SFMC) code.
9
+ Apply the following rules when reviewing merge requests that contain AMPscript, SSJS, or HTML files.
10
+
11
+ ## AMPscript rules
12
+
13
+ - Block delimiters must balance: every `%%[` requires a matching `]%%`, every `%%=` requires `=%%`.
14
+ - Control flow must balance: every `IF` requires `ENDIF`, every `FOR` requires `NEXT`.
15
+ - Keywords must be uppercase: `SET`, `VAR`, `IF`, `ELSEIF`, `ELSE`, `ENDIF`, `FOR`, `TO`, `NEXT`, `OUTPUT`.
16
+ - Variables must start with `@`. Example: `SET @name = "value"`.
17
+ - Comments must use `/* */`. Flag `//` and `<!-- -->` inside AMPscript blocks as errors.
18
+ - Flag any function name that does not match the AMPscript function catalog.
19
+ - Flag arity mismatches (too few or too many arguments for known functions).
20
+
21
+ ## SSJS rules
22
+
23
+ - SSJS runs on an ES5 engine. Flag `let`, `const`, arrow functions, template literals, and `class`.
24
+ - Flag missing `Platform.Load("core", "1.1.5")` when Core library objects (DataExtension, Rows, etc.) are used.
25
+ - Verify WSProxy error handling: flag any `WSProxy` call without a `Status` check on the response.
26
+ - Flag `console.log` — use `Platform.Response.Write()` or `Write()` instead.
27
+
28
+ ## Review format
29
+
30
+ For each issue:
31
+ 1. Provide the line number.
32
+ 2. Quote the exact problematic code.
33
+ 3. Explain why it is wrong.
34
+ 4. Provide the corrected version.
35
+
36
+ End with a one-line verdict: APPROVE, REQUEST CHANGES, or COMMENT.
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * sfmc-review-diff — CI helper: spawn mcp-server-sfmc and call review_change on a unified diff.
4
+ */
5
+ export type FailOnLevel = 'error' | 'warning' | 'info';
6
+ export interface SeverityCounts {
7
+ errors: number;
8
+ warnings: number;
9
+ infos: number;
10
+ }
11
+ /** Counts diagnostic lines emitted by the review_change tool (see src/index.ts). */
12
+ export declare function countReviewSeverities(output: string): SeverityCounts;
13
+ /** Whether the CLI should exit with code 1 given counts and --fail-on policy. */
14
+ export declare function shouldFail(counts: SeverityCounts, failOn: FailOnLevel): boolean;
15
+ //# sourceMappingURL=reviewDiff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewDiff.d.ts","sourceRoot":"","sources":["../../src/cli/reviewDiff.ts"],"names":[],"mappings":";AACA;;GAEG;AAUH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAUpE;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAO/E"}
@@ -0,0 +1,227 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * sfmc-review-diff — CI helper: spawn mcp-server-sfmc and call review_change on a unified diff.
4
+ */
5
+ import { readFileSync } from 'node:fs';
6
+ import { stdin } from 'node:process';
7
+ import { fileURLToPath } from 'node:url';
8
+ import path from 'node:path';
9
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
10
+ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
11
+ /** Counts diagnostic lines emitted by the review_change tool (see src/index.ts). */
12
+ export function countReviewSeverities(output) {
13
+ let errors = 0;
14
+ let warnings = 0;
15
+ let infos = 0;
16
+ for (const line of output.split('\n')) {
17
+ if (line.startsWith('🔴 ERROR'))
18
+ errors += 1;
19
+ else if (line.startsWith('🟡 WARNING'))
20
+ warnings += 1;
21
+ else if (line.startsWith('🔵 INFO'))
22
+ infos += 1;
23
+ }
24
+ return { errors, warnings, infos };
25
+ }
26
+ /** Whether the CLI should exit with code 1 given counts and --fail-on policy. */
27
+ export function shouldFail(counts, failOn) {
28
+ if (counts.errors > 0)
29
+ return true;
30
+ if (failOn === 'warning' || failOn === 'info') {
31
+ if (counts.warnings > 0)
32
+ return true;
33
+ }
34
+ if (failOn === 'info' && counts.infos > 0)
35
+ return true;
36
+ return false;
37
+ }
38
+ function toolResultToText(result) {
39
+ const parts = [];
40
+ for (const block of result.content ?? []) {
41
+ if (block.type === 'text' && 'text' in block && typeof block.text === 'string') {
42
+ parts.push(block.text);
43
+ }
44
+ }
45
+ return parts.join('\n');
46
+ }
47
+ function readStdin() {
48
+ return new Promise((resolve, reject) => {
49
+ const chunks = [];
50
+ stdin.on('data', (c) => chunks.push(c));
51
+ stdin.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
52
+ stdin.on('error', reject);
53
+ });
54
+ }
55
+ function projectRoot() {
56
+ const here = path.dirname(fileURLToPath(import.meta.url));
57
+ // dist/cli -> package root
58
+ return path.join(here, '..', '..');
59
+ }
60
+ function serverEntryPath() {
61
+ const here = path.dirname(fileURLToPath(import.meta.url));
62
+ return path.join(here, '..', 'index.js');
63
+ }
64
+ function pkgVersion() {
65
+ try {
66
+ const p = path.join(projectRoot(), 'package.json');
67
+ const j = JSON.parse(readFileSync(p, 'utf8'));
68
+ return j.version ?? '0.0.0';
69
+ }
70
+ catch {
71
+ return '0.0.0';
72
+ }
73
+ }
74
+ function printHelp() {
75
+ console.log(`sfmc-review-diff — run MCP review_change on a unified diff (stdin or file).
76
+
77
+ Usage:
78
+ sfmc-review-diff [options] [file]
79
+ git diff base...HEAD | sfmc-review-diff [options]
80
+
81
+ Options:
82
+ --fail-on <error|warning|info> Minimum severity that fails the process (default: error)
83
+ --language <ampscript|ssjs|html|auto> Passed to review_change (default: auto)
84
+ --max-problems <n> Max diagnostics (default: 50)
85
+ -h, --help Show this help
86
+
87
+ Exit codes:
88
+ 0 No failing severity per --fail-on (including "no added lines" / clean review)
89
+ 1 Review findings matched the failure policy, MCP error, or I/O error
90
+ `);
91
+ }
92
+ function parseArgs(argv) {
93
+ let failOn = 'error';
94
+ let language;
95
+ let maxProblems;
96
+ let help = false;
97
+ const positional = [];
98
+ for (let i = 0; i < argv.length; i++) {
99
+ const a = argv[i];
100
+ if (a === '-h' || a === '--help') {
101
+ help = true;
102
+ continue;
103
+ }
104
+ if (a === '--fail-on') {
105
+ const v = argv[++i];
106
+ if (v !== 'error' && v !== 'warning' && v !== 'info') {
107
+ throw new Error(`--fail-on must be error, warning, or info, got: ${v ?? '(missing)'}`);
108
+ }
109
+ failOn = v;
110
+ continue;
111
+ }
112
+ if (a === '--language') {
113
+ const v = argv[++i];
114
+ if (v !== 'ampscript' && v !== 'ssjs' && v !== 'html' && v !== 'auto') {
115
+ throw new Error(`--language must be ampscript, ssjs, html, or auto`);
116
+ }
117
+ language = v;
118
+ continue;
119
+ }
120
+ if (a === '--max-problems') {
121
+ const v = argv[++i];
122
+ const n = v ? parseInt(v, 10) : NaN;
123
+ if (!Number.isFinite(n) || n < 1) {
124
+ throw new Error(`--max-problems must be a positive integer`);
125
+ }
126
+ maxProblems = n;
127
+ continue;
128
+ }
129
+ if (a.startsWith('-')) {
130
+ throw new Error(`Unknown option: ${a}`);
131
+ }
132
+ positional.push(a);
133
+ }
134
+ if (positional.length > 1) {
135
+ throw new Error('At most one file argument is allowed');
136
+ }
137
+ return {
138
+ filePath: positional[0] ?? null,
139
+ failOn,
140
+ language,
141
+ maxProblems,
142
+ help,
143
+ };
144
+ }
145
+ function isExecutedDirectly() {
146
+ const runPath = process.argv[1];
147
+ if (!runPath)
148
+ return false;
149
+ try {
150
+ return path.resolve(fileURLToPath(import.meta.url)) === path.resolve(runPath);
151
+ }
152
+ catch {
153
+ return false;
154
+ }
155
+ }
156
+ async function main() {
157
+ let parsed;
158
+ try {
159
+ parsed = parseArgs(process.argv.slice(2));
160
+ }
161
+ catch (e) {
162
+ console.error(String(e instanceof Error ? e.message : e));
163
+ process.exit(1);
164
+ }
165
+ if (parsed.help) {
166
+ printHelp();
167
+ process.exit(0);
168
+ }
169
+ let diffText;
170
+ if (parsed.filePath) {
171
+ diffText = readFileSync(parsed.filePath, 'utf8');
172
+ }
173
+ else {
174
+ diffText = await readStdin();
175
+ }
176
+ const serverPath = serverEntryPath();
177
+ const cwd = projectRoot();
178
+ const transport = new StdioClientTransport({
179
+ command: process.execPath,
180
+ args: [serverPath],
181
+ cwd,
182
+ });
183
+ const client = new Client({
184
+ name: 'sfmc-review-diff',
185
+ version: pkgVersion(),
186
+ });
187
+ try {
188
+ await client.connect(transport);
189
+ const args = { diff: diffText };
190
+ if (parsed.language !== undefined)
191
+ args.language = parsed.language;
192
+ if (parsed.maxProblems !== undefined)
193
+ args.maxProblems = parsed.maxProblems;
194
+ const result = await client.callTool({
195
+ name: 'review_change',
196
+ arguments: args,
197
+ });
198
+ const text = toolResultToText(result);
199
+ process.stdout.write(text);
200
+ if (!text.endsWith('\n'))
201
+ process.stdout.write('\n');
202
+ if (result.isError) {
203
+ process.exit(1);
204
+ }
205
+ const counts = countReviewSeverities(text);
206
+ if (shouldFail(counts, parsed.failOn)) {
207
+ process.exit(1);
208
+ }
209
+ process.exit(0);
210
+ }
211
+ catch (err) {
212
+ console.error(String(err instanceof Error ? err.message : err));
213
+ process.exit(1);
214
+ }
215
+ finally {
216
+ try {
217
+ await client.close();
218
+ }
219
+ catch {
220
+ /* ignore */
221
+ }
222
+ }
223
+ }
224
+ if (isExecutedDirectly()) {
225
+ void main();
226
+ }
227
+ //# sourceMappingURL=reviewDiff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewDiff.js","sourceRoot":"","sources":["../../src/cli/reviewDiff.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -396,8 +396,8 @@ server.tool('search_mce_help', MCE_HELP_TOOL_DESC, {
396
396
  if (hits.length === 0) {
397
397
  const stats = getMceHelpStats();
398
398
  const hint = stats.chunkCount === 0
399
- ? 'Bundled help index missing. Run `npm run bundle-mce-help` from the package folder with ' +
400
- '`docs/help.salesforce/mce` present, or set `MCE_HELP_DOCS` to that tree.'
399
+ ? 'Bundled help index missing. Run `npm run bundle-mce-help` from the package folder and set ' +
400
+ '`MCE_HELP_DOCS` to the root of your mirrored Help Markdown tree (see `scripts/bundle-mce-help.mjs`).'
401
401
  : `No matches for this query with product_focus="${focus}". Try broader keywords or product_focus="any".`;
402
402
  return { content: [{ type: 'text', text: hint }] };
403
403
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-server-sfmc",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "mcpName": "io.github.JoernBerkefeld/mcp-server-sfmc",
5
5
  "description": "SFMC AMPscript/SSJS/GTL tools and searchable Marketing Cloud Engagement help (MCE vs Next scoped) via MCP.",
6
6
  "author": "Jörn Berkefeld",
@@ -27,7 +27,8 @@
27
27
  ],
28
28
  "type": "module",
29
29
  "bin": {
30
- "mcp-server-sfmc": "./dist/index.js"
30
+ "mcp-server-sfmc": "./dist/index.js",
31
+ "sfmc-review-diff": "./dist/cli/reviewDiff.js"
31
32
  },
32
33
  "main": "./dist/index.js",
33
34
  "exports": {
@@ -36,6 +37,7 @@
36
37
  "files": [
37
38
  "dist",
38
39
  "bundled",
40
+ "ci-templates",
39
41
  "README.md",
40
42
  "LICENSE"
41
43
  ],
@@ -45,6 +47,7 @@
45
47
  "build": "tsc -p tsconfig.json",
46
48
  "dev": "tsc -p tsconfig.json --watch",
47
49
  "start": "node dist/index.js",
50
+ "review-diff": "node dist/cli/reviewDiff.js",
48
51
  "pretest": "npm run build",
49
52
  "test": "node --test tests/*.test.mjs",
50
53
  "clean": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\""