[Beta]{class="badge informative" title="This feature is currently in a early beta release"}
Marketo MCP Server
The Model Context Protocol (MCP) is an open standard that enables AI tools to communicate with external services. The Marketo MCP server acts as a bridge between your AI assistant and Marketo. It exposes more than 100 operations across forms, programs, smart campaigns, leads, emails, snippets, lists, and folders.
When your AI tool calls the MCP server, the server executes the corresponding REST API call on your behalf, using the credentials you provide in each request. You do not need to install, deploy, or run any server-side software.
Prerequisites
- A Marketo instance with REST API access enabled
- Admin access to create API credentials in Marketo LaunchPoint
- One of the following AI tools: Claude Desktop, Cursor, Claude Code (CLI), or VS Code with GitHub Copilot
- Network access to the MCP server URL:
https://marketo-mcp.adobe.io/mcp
Get Marketo credentials
You need the following values from your Marketo instance:
- Client ID
- Client Secret
- Munchkin Account ID
If you already have them, skip to Configure your AI tool.
Client ID and Client Secret
- Go to Admin > LaunchPoint.
- Click your API service. If you do not have one, select New > New Service, choose Custom as the service type, and assign a dedicated API user.
- Click View Details and copy the Client ID and Client Secret values.
Munchkin Account ID
- Go to Admin > Munchkin.
- Copy the Munchkin Account ID. The format is
XXX-XXX-XXXand matches the prefix of your instance URL.
Configure your AI tool
Each AI tool reads MCP server configuration from a different location. Find your tool below and follow the steps to add the Marketo MCP server.
Claude Desktop
The configuration file is claude_desktop_config.json. Open it from one of these locations:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
If the file already contains other MCP servers, add the marketo entry under mcpServers. The following example shows the complete mcpServers block:
{
"mcpServers": {
"marketo": {
"type": "http",
"url": "https://marketo-mcp.adobe.io/mcp",
"headers": {
"X-Marketo-Client-Id": "YOUR-CLIENT-ID",
"X-Marketo-Client-Secret": "YOUR-CLIENT-SECRET",
"X-Marketo-Munchkin-Id": "YOUR-MUNCHKIN-ID"
}
}
}
}
Save the file, quit Claude Desktop, and reopen it.
Cursor
If your Cursor MCP configuration already contains other servers, add the marketo entry under mcpServers. The following example shows the complete mcpServers block in Settings > MCP or .cursor/mcp.json in your project directory:
{
"mcpServers": {
"marketo": {
"type": "http",
"url": "https://marketo-mcp.adobe.io/mcp",
"headers": {
"X-Marketo-Client-Id": "YOUR-CLIENT-ID",
"X-Marketo-Client-Secret": "YOUR-CLIENT-SECRET",
"X-Marketo-Munchkin-Id": "YOUR-MUNCHKIN-ID"
}
}
}
}
Restart Cursor.
Claude Code (CLI)
Run the following command in your terminal, substituting your credentials:
claude mcp add --transport http marketo \
https://marketo-mcp.adobe.io/mcp \
--header "X-Marketo-Client-Id: YOUR-CLIENT-ID" \
--header "X-Marketo-Client-Secret: YOUR-CLIENT-SECRET" \
--header "X-Marketo-Munchkin-Id: YOUR-MUNCHKIN-ID"
VS Code with GitHub Copilot
Open your VS Code settings.json by pressing Ctrl+Shift+P or Cmd+Shift+P on macOS, then selecting Preferences: Open User Settings (JSON). Add the following example:
{
"mcp": {
"servers": {
"marketo": {
"type": "http",
"url": "https://marketo-mcp.adobe.io/mcp",
"headers": {
"X-Marketo-Client-Id": "YOUR-CLIENT-ID",
"X-Marketo-Client-Secret": "YOUR-CLIENT-SECRET",
"X-Marketo-Munchkin-Id": "YOUR-MUNCHKIN-ID"
}
}
}
}
}
Press Ctrl+Shift+P (or Cmd+Shift+P on macOS), type Reload Window, and press Enter.
${MARKETO_CLIENT_SECRET} and set them in your environment. This prevents credentials from being stored in plain text in files that may be committed to version control.Available operations
Once connected, you can ask your AI assistant to perform operations across the following categories.
Forms
Browse, create, clone, and approve forms. Add or remove fields, configure field visibility rules, and identify where forms are embedded.
Example prompts:
- “Show me all approved forms”
- “Clone the Contact Us form into the Q2 Campaign folder”
- “Add a Company field to the Demo Request form”
Smart campaigns
Create smart campaigns, configure smart list filters, add flow steps, and activate or deactivate campaigns.
Example prompts:
- “What smart campaigns are active right now?”
- “Create a new smart campaign called Lead Scoring Update in the Operations folder”
- “Show me the flow steps in the Welcome Email campaign”
Leads and lists
Find leads by email address, create or update lead records, and manage static list membership.
Example prompts:
- “Find the lead with email jane@example.com”
- “Add lead ID 12345 to the Q2 MQL list”
- “Create a new static list called Summer Event Attendees”
Programs
Create, clone, and tag programs. Browse programs by type, channel, or date range.
Example prompts:
- “Clone the Q4 Webinar program into the 2026 Events folder”
- “Create a new email program called Summer Sale in the Campaigns folder”
- “Show me all programs tagged as Webinar”
Emails and snippets
Browse emails, create emails from templates, update content sections, and manage reusable snippets.
Example prompts:
- “Show me all draft emails”
- “Update the header section of the Welcome Email”
- “What assets use the Holiday Promo snippet?”
Instance structure
Browse folders, channels, tag types, and activity types to understand your Marketo configuration.
Example prompts:
- “List all folders in Marketo”
- “Show me all available channels”
- “What tag types are configured?”
Bulk operations
Export lead data in bulk and check import or export job status.
Example prompts:
- “Create a bulk export of leads created in the last 30 days”
- “Check the status of export job xx”
Troubleshooting
X-Marketo-Endpoint header is missing from your configuration.X-Marketo-Client-Id, X-Marketo-Client-Secret, or X-Marketo-Munchkin-Id is missing.Frequently asked questions
marketo-prod and marketo-staging as separate servers.Security considerations
- Per-request credentials. Client ID, Client Secret, Munchkin ID, and the REST API endpoint are transmitted in HTTP headers with each request. The server does not store or cache them.
- Multi-tenant isolation. Each request uses its own set of credentials. Your data does not intersect with any other user’s session.
- Munchkin ID allowlist. The server only accepts requests for approved Marketo instances. Requests using an unauthorized Munchkin ID are rejected with a 403 error.
- Keep credentials out of version control. Use environment variable interpolation (
${MARKETO_CLIENT_SECRET}) if your AI tool supports it, so credentials are not stored in plain text in files committed to a repository.