
Company News
AWS Security Hub Adds Socket for Supply Chain Security
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.
sfmc-mcp-server
Advanced tools
MCP Server para Salesforce Marketing Cloud — valide queries do Automation Studio antes de rodar, explore Data Extensions e consulte registros direto do Claude.
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.
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.
| Tool | O que resolve |
|---|---|
validate_sql | Valida uma Query Activity antes de executar: regras do dialeto restrito do SFMC + checagem de que as DEs e colunas realmente existem |
list_data_extensions | Lista DEs com metadados, filtro por nome, paginação e schema completo |
query_data_extension | Consulta registros com filtro, ordenação e paginação |
validate_sql em açãoVocê: 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.
2. A coluna "EmailAdress" não existe na DE "Customers_Master".
→ Você quis dizer "EmailAddress"?
3. 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).
npx sfmc-mcp-server
Ou instalando localmente:
npm install -g sfmc-mcp-server
Setup → Apps → Installed Packages → New → Add Component → API Integration (Server-to-Server)
Permissões mínimas (somente leitura):
Anote o Client ID, o Client Secret e o subdomínio (a parte antes de .auth.marketingcloudapis.com).
~/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.
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", "...": "..." }
}
}
}
Active_Buyers" → aponta erros antes de você perder 30 minCustomers_Master?" → consulta direta com filtroSFMC_MODE=read é o default. Tools de escrita (roadmap) só serão registradas com SFMC_MODE=write.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:
get_automation_status — status e histórico de execuçãolist_journeys — journeys ativas, versões, métricasget_send_stats — opens, clicks, bouncesupsert_rows — gravação com padrão checkpoint/resume (modo write)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.ENT.) não são validadas contra schema — vivem no Parent BU, fora do alcance da REST da BU atual.alias.) não são validadas em queries com múltiplos JOINs — resolver isso exigiria um parser SQL completo./data/v1/customobjects é relativamente recente. Instâncias em releases antigas podem precisar do fallback SOAP.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.
MIT
FAQs
MCP Server para Salesforce Marketing Cloud — valide queries do Automation Studio antes de rodar, explore Data Extensions e consulte registros direto do Claude.
The npm package sfmc-mcp-server receives a total of 40 weekly downloads. As such, sfmc-mcp-server popularity was classified as not popular.
We found that sfmc-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.

Research
/Security News
Popular npm packages keyv and cacheable compromised.

Security News
A misconfiguration gave three Anthropic models internet access, and one, believing it was in a simulation, shipped a credential-stealing package to PyPI.