
Sfmc Mcp Server
io.github.Inefavel由 GitHub 帳號 Inefavel 發布v0.2.1更新於 Oct 24, 2026
MCP Server para Salesforce Marketing Cloud: valida queries do Automation Studio antes de rodar.
概覽
將助理連接到 Salesforce Marketing Cloud,可列出與查詢資料擴充,並在執行前驗證 Automation Studio 的 SQL 查詢。
- 可以做什麼
- 依 SFMC 方言規則與實際資料擴充結構驗證 Automation Studio SQL 查詢,對缺少的資料表與欄位提供修正建議,並檢查目標主鍵缺漏、不支援的語法與括號不對稱。列出資料擴充與其中繼資料,支援依名稱篩選、分頁與完整結構。依篩選、排序與分頁查詢資料擴充記錄,每次查詢最多 50 列。
- 適用情境
- 適合撰寫 Query Activity 的 SFMC 營運與行銷人員,希望在漫長的自動化執行前幾秒內發現錯誤,或需要在不開啟 Contact Builder 的情況下檢視資料擴充結構與記錄數。
- 執行需求
- 透過 npx 或全域 npm 安裝後在本機執行(需要 Node.js)。需要一個啟用 Server-to-Server API 整合的 SFMC Installed Package,至少具備資料擴充讀取與自動化讀取權限。需要環境變數 SFMC_SUBDOMAIN、SFMC_CLIENT_ID 與 SFMC_CLIENT_SECRET;SFMC_ACCOUNT_ID 為選用,用於指定業務單位,SFMC_MODE 預設為 read。需要連線至 SFMC REST API 的網路存取。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Sfmc Mcp Server,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
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
validate_sql em ação
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
Ou instalando localmente:
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)
Reinicie o Claude Desktop. Pronto.
Múltiplas Business Units
Uma entrada por BU, cada uma com seu SFMC_ACCOUNT_ID (o MID):
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 comSFMC_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
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_sqlcobre 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
來源:README.md,提交 9b13d5b
工具
0版本歷史
1- v0.2.1最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分