Salesforce Marketing Cloud MCP server
An AI agent connected to Salesforce Marketing Cloud can orchestrate multi-channel customer journeys—sending personalized emails, creating and triggering automation workflows, managing subscriber lists and segments, and tracking campaign performance. Marketing teams, campaign managers, and automation specialists use this integration to streamline campaign execution and adapt messaging based on real-time customer behavior.
Setting up an MCP server
This article covers the standard steps for creating an MCP server in AI Gateway and connecting it to an AI client. The steps are the same for every integration — application-specific details (API credentials, OAuth endpoints, and scopes) are covered in the individual application pages.
Before you begin
You'll need:
- Access to AI Gateway with permission to create MCP servers
- API credentials for the application you're connecting (see the relevant application page for what to collect)
Create an MCP server
Find the API in the catalog
- Sign in to AI Gateway and select MCP Servers from the left navigation.
- Select New MCP Server.
- Search for the application you want to connect, then select it from the catalog.
Configure the server
- Enter a Name for your server — something descriptive that identifies both the application and its purpose (for example, "Zendesk Support — Prod").
- Enter a Description so your team knows what the server is for.
- Set the Timeout value. 30 seconds works for most APIs; increase to 60 seconds for APIs that return large payloads.
- Toggle Production mode on if this server will be used in a live workflow.
- Select Next.
Configure authentication
Enter the authentication details for the application. This varies by service — see the Authentication section of the relevant application page for the specific credentials, OAuth URLs, and scopes to use.
Configure security
- Set any Rate limits appropriate for your use case and the API's own limits.
- Enable Logging if you want AI Gateway to record requests and responses for auditing.
- Select Next.
Deploy
Review the summary, then select Deploy. AI Gateway provisions the server and provides a server URL you'll use when configuring your AI client.
Connect to an AI client
Once your server is deployed, you'll need to add it to the AI client your team uses. Select your client for setup instructions:
Tips
- You can create multiple MCP servers for the same application — for example, a read-only server for reporting agents and a read-write server for automation workflows.
- If you're unsure which OAuth scopes to request, start with the minimum read-only set and add write scopes only when needed. Most application pages include scope recommendations.
- You can edit a server's name, description, timeout, and security settings after deployment without redeploying.
Authentication
Salesforce Marketing Cloud uses OAuth 2.0 via a server-to-server API Integration in Installed Packages. The authorization endpoint is https://auth.exacttargetapis.com/v2/authorize, and the token endpoint is https://auth.exacttargetapis.com/v2/token. Your API Integration provides Client ID and Client Secret. The grant type is typically client_credentials for backend automation. Scopes or permissions are configured in the Installed Package—common permissions include email read/write/send, list and subscriber management, journey management, and data extension access. Request only the permissions your workflows require.
Available tools
The MCP server provides email campaign management, journey builder automation, subscriber list operations, data management, and analytics for complete marketing automation.
Email campaigns
| Tool | Description |
|---|---|
| createEmail | Create email from template with dynamic content blocks |
| updateEmail | Modify email subject, body, and send list |
| sendEmailCampaign | Send email to list or segment with scheduling |
| sendTestEmail | Send preview to internal stakeholders for review |
| cloneEmail | Duplicate successful email and modify for new campaign |
| getEmailPerformance | Retrieve open rates, click rates, and engagement metrics |
Journey builder
| Tool | Description |
|---|---|
| createJourney | Design multi-step customer journey with entry/exit criteria |
| updateJourney | Modify wait times, activities, and decision paths |
| activateJourney | Launch journey for real-time contact injection |
| pauseJourney | Temporarily halt journey (maintains current contact state) |
| injectContact | Add contact to active journey via API |
| getJourneyMetrics | Retrieve conversion, drop-off, and performance data |
Subscribers & lists
| Tool | Description |
|---|---|
| importSubscribers | Bulk import contacts from file or data feed |
| createList | Create new subscriber list with attributes |
| updateSubscriber | Modify contact preferences, status, and custom fields |
| suppresContact | Add contact to exclusion list for all sends |
| getSubscriberStatus | Check subscription status and engagement history |
| exportSubscribers | Export list members for external reporting |
Data & segmentation
| Tool | Description |
|---|---|
| createDataExtension | Create data table for custom contact attributes |
| insertDataExtensionRecords | Add rows to data extension |
| updateDataExtensionRecords | Modify existing data extension records |
| createSegment | Build audience segment with behavioral or demographic criteria |
| activateSegment | Publish segment for campaign targeting |
| getSegmentSize | Check segment member count before sending |
Automation & reporting
| Tool | Description |
|---|---|
| createAutomation | Set up scheduled or event-triggered workflow |
| startAutomation | Activate automation for data imports or sends |
| pauseAutomation | Temporarily halt running automation |
| getAutomationStatus | Check if automation is running and logs |
| getEmailReport | Retrieve campaign metrics including ROI by channel |
| scheduleBatchSend | Queue email send for specific date/time |
Tips
Use the email_send permission carefully — limit it to API integrations that specifically need to trigger sends. Restrict send permissions in account setup to prevent accidental bulk sends.
Create journeys with clear entry and exit criteria to avoid duplicate sends and ensure contacts flow through the experience as intended.
Batch subscriber imports using importSubscribers instead of individual updateSubscriber calls when adding large contact lists — this is more efficient and reduces API call consumption.
Monitor data extension sizes and clean up old records regularly — large data extensions slow query performance and increase API response times.
Use segments to target emails rather than querying subscriber lists every time — pre-built segments are faster and enable reuse across campaigns.
Cequence AI Gateway