原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Sfmc MCP Server

作者:Inefavel版本 0.2.1i★ –i在你的电脑上运行
注册名称io.github.Inefavel/sfmc-mcp-server

安装

概览

作者提供的说明(英文原文)

MCP Server para Salesforce Marketing Cloud: valida queries do Automation Studio antes de rodar.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 营销与社交媒体
  • 你需要填写:SFMC_SUBDOMAIN, SFMC_CLIENT_ID, SFMC_CLIENT_SECRET

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: SFMC_SUBDOMAIN, SFMC_CLIENT_ID, SFMC_CLIENT_SECRET, SFMC_ACCOUNT_ID, SFMC_MODE

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "sfmc": {
      "command": "npx",
      "args": [
        "-y",
        "sfmc-mcp-server"
      ],
      "env": {
        "SFMC_SUBDOMAIN": "your-value",
        "SFMC_CLIENT_ID": "your-value",
        "SFMC_CLIENT_SECRET": "your-value",
        "SFMC_ACCOUNT_ID": "your-value",
        "SFMC_MODE": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add sfmc --env SFMC_SUBDOMAIN=your-value --env SFMC_CLIENT_ID=your-value --env SFMC_CLIENT_SECRET=your-value --env SFMC_ACCOUNT_ID=your-value --env SFMC_MODE=your-value -- npx -y sfmc-mcp-server

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "sfmc": {
      "command": "npx",
      "args": [
        "-y",
        "sfmc-mcp-server"
      ],
      "env": {
        "SFMC_SUBDOMAIN": "your-value",
        "SFMC_CLIENT_ID": "your-value",
        "SFMC_CLIENT_SECRET": "your-value",
        "SFMC_ACCOUNT_ID": "your-value",
        "SFMC_MODE": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "sfmc": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "sfmc-mcp-server"
      ],
      "env": {
        "SFMC_SUBDOMAIN": "your-value",
        "SFMC_CLIENT_ID": "your-value",
        "SFMC_CLIENT_SECRET": "your-value",
        "SFMC_ACCOUNT_ID": "your-value",
        "SFMC_MODE": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • SFMC_SUBDOMAIN 必填 env
    Subdomínio da instância SFMC (a parte antes de .auth.marketingcloudapis.com)
  • SFMC_CLIENT_ID 必填 env
    Client ID do Installed Package (API Integration Server-to-Server)
  • SFMC_CLIENT_SECRET 机密 必填 env
    Client Secret do Installed Package
  • SFMC_ACCOUNT_ID env
    MID da Business Unit alvo (opcional; usa a BU padrão do package se omitido)
  • SFMC_MODE env
    Modo de operação: "read" (padrão) ou "write"

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 Inefavel 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“营销与社交媒体”中的其他服务器比较i

  • 星标数多于此分类中其他 3569 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 3569 个服务器的 17% 更新
  • 基础检查结果等于或优于此分类中其他 3569 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Sfmc MCP Server 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:SFMC_SUBDOMAIN, SFMC_CLIENT_ID, SFMC_CLIENT_SECRET

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.2.1)于4个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

MCP YouTube Transcript

作者:jkawamoto

An MCP server retrieving transcripts of YouTube videos

在你的电脑上运行★ 495MIT10天前更新
安装

Google Analytics MCP

作者:surendranb

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

在你的电脑上运行★ 244MIT10天前更新
安装

AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.

在云端运行★ 137MIT11天前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

SFMC MCP Server

Conecte o Claude (ou qualquer client MCP) ao Salesforce Marketing Cloud. Explore Data Extensions, consulte registros e valide queries do Automation Studio antes de rodá-las.


O problema

Quem opera SFMC conhece a rotina: você escreve uma Query Activity, salva, roda a automação — e 30 minutos depois descobre que digitou EmailAdress em vez de EmailAddress. Ou que usou um ORDER BY, que o dialeto do Automation Studio não suporta. Ou que a coluna de saída não existe na DE de destino.

O feedback loop do SFMC é medido em dezenas de minutos. Este servidor MCP reduz para segundos.

O que ele faz

ToolO que resolve
validate_sqlValida uma Query Activity antes de executar: regras do dialeto restrito do SFMC + checagem de que as DEs e colunas realmente existem
list_data_extensionsLista DEs com metadados, filtro por nome, paginação e schema completo
query_data_extensionConsulta registros com filtro, ordenação e paginação
validate_sql em ação
Você: valide essa query pra mim

SELECT c.SubscriberKey, c.EmailAdress, c.LastPurchaseDate FROM Customers_Master c ORDER BY c.CreatedDate DESC

❌ INVÁLIDA — 3 erro(s) bloqueante(s).

  1. ORDER BY não é suportado em Query Activities do SFMC. [linha ~3] → Se precisar de ranking, use ROW_NUMBER() OVER (ORDER BY ...) em subquery.
  1. A coluna "EmailAdress" não existe na DE "Customers_Master". → Você quis dizer "EmailAddress"?
  1. A coluna "LastPurchaseDate" não existe na DE "Customers_Master". → Campos disponíveis: SubscriberKey, EmailAddress, FirstName, Status, CreatedDate

O que ele detecta:

*Regras do dialeto* — ORDER BY, CTEs (WITH), MERGE, DML/DDL, variáveis (DECLARE @), temp tables (#temp), cursores, stored procedures, FULL OUTER JOIN, parênteses desbalanceados, SELECT * arriscado, GETDATE() em fuso do servidor.

*Contra o schema real* — DEs inexistentes, colunas inexistentes (com sugestão de correção via distância de edição), aliases não declarados, colunas de saída incompatíveis com a DE de destino, PK do destino ausente no SELECT (a falha silenciosa mais cara do SFMC).


Instalação

npx sfmc-mcp-server

Ou instalando localmente:

npm install -g sfmc-mcp-server

Configuração

1. Crie um Installed Package no SFMC

Setup → Apps → Installed Packages → New → Add Component → API Integration (Server-to-Server)

Permissões mínimas (somente leitura):

  • Data Extensions: Read
  • Automations: Read

Anote o Client ID, o Client Secret e o subdomínio (a parte antes de .auth.marketingcloudapis.com).

2. Configure o Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) %APPDATA%\Claude\claude_desktop_config.json (Windows)

{

"mcpServers": { "sfmc": { "command": "npx", "args": ["-y", "sfmc-mcp-server"], "env": { "SFMC_SUBDOMAIN": "mcXXXXXXXXXXXXXXXXXXXXXX", "SFMC_CLIENT_ID": "seu_client_id", "SFMC_CLIENT_SECRET": "seu_client_secret", "SFMC_MODE": "read" } } } }

Reinicie o Claude Desktop. Pronto.

Múltiplas Business Units

Uma entrada por BU, cada uma com seu SFMC_ACCOUNT_ID (o MID):

{

"mcpServers": { "sfmc-varejo": { "command": "npx", "args": ["-y", "sfmc-mcp-server"], "env": { "SFMC_ACCOUNT_ID": "1234567", "...": "..." } }, "sfmc-b2b": { "command": "npx", "args": ["-y", "sfmc-mcp-server"], "env": { "SFMC_ACCOUNT_ID": "7654321", "...": "..." } } } }


Exemplos de uso

  • *"Valide essa query contra a DE de destino Active_Buyers"* → aponta erros antes de você perder 30 min
  • *"Liste as DEs que têm 'master' no nome, com os campos"* → schema completo sem abrir o Contact Builder
  • *"Quantos registros ativos tem a Customers_Master?"* → consulta direta com filtro
  • *"Essa DE tem chave primária? Quais campos são NOT NULL?"* → auditoria de schema em segundos

Segurança

  • Somente leitura por padrão. SFMC_MODE=read é o default. Tools de escrita (roadmap) só serão registradas com SFMC_MODE=write.
  • Credenciais apenas via variáveis de ambiente. Nunca commitadas, nunca em disco.
  • Log de auditoria. Toda tool call vai para stderr com timestamp e argumentos — redirecione para arquivo ou coletor conforme sua política.
  • Sem retenção. O servidor não persiste dados do SFMC.

Arquitetura

src/

├── index.ts # Entry point — registra tools, transporte stdio ├── auth.ts # OAuth client_credentials, cache de token (~20 min) ├── sfmcClient.ts # REST client com retry exponencial (429/5xx) └── tools/ ├── validateSql.ts # Regras do dialeto + validação contra schema real ├── listDataExtensions.ts └── queryDataExtension.ts

Detalhes de implementação:

  • Token com cache e margem de 60s antes da expiração (SFMC expira em ~18-20 min)
  • Retry exponencial em 429/5xx — o SFMC estrangula com facilidade sob carga
  • Auth lazy: o servidor sobe mesmo sem credenciais, valida na primeira tool call
  • Paginação forçada nas consultas (máx 50 linhas) para não estourar o contexto do modelo

Roadmap

  • get_automation_status — status e histórico de execução
  • list_journeys — journeys ativas, versões, métricas
  • get_send_stats — opens, clicks, bounces
  • upsert_rows — gravação com padrão checkpoint/resume (modo write)
  • Suporte a Shared Data Extensions do Parent BU via SOAP

Limitações conhecidas

  • A validate_sql cobre as restrições conhecidas do Automation Studio e a existência de tabelas/colunas. Não garante correção lógica nem performance.
  • DEs compartilhadas (ENT.) não são validadas contra schema — vivem no Parent BU, fora do alcance da REST da BU atual.
  • Colunas não qualificadas (sem prefixo alias.) não são validadas em queries com múltiplos JOINs — resolver isso exigiria um parser SQL completo.
  • O endpoint /data/v1/customobjects é relativamente recente. Instâncias em releases antigas podem precisar do fallback SOAP.

Contribuindo

PRs bem-vindos. As áreas de maior impacto são as tools do roadmap e novas regras de validação do dialeto SFMC — se você já perdeu tempo com uma construção que o Automation Studio rejeita, abra uma issue com o caso.

Licença

MIT

问 PopNx