marketo-mcp-server

marketo-mcp-server

MCP server for Marketo marketing automation — 32 tools for leads, programs, emails, forms, smart lists, static lists, channels, landing pages, and bulk export. Auth via Client ID + Secret.

Category
Visit Server

README

marketo-mcp-server

npm version npm downloads glama score Node.js MCP License: MIT

MCP server for Marketo — query leads, programs, emails, forms, lists, and bulk exports from Claude in plain English.

32 tools covering leads (lookup, batch upsert, activity log), programs (list, clone, members), emails (clone, send sample), forms (clone, approve), smart + static lists, channels, landing pages, and bulk export jobs. Built for Marketo admins and marketing ops who'd rather ask a question than click through the UI.


Why this exists

The Marketo Admin UI is slow, the REST API is fiddly (LaunchPoint, identity tokens, OAuth client-credentials, bulk export polling), and most teams don't have an internal tool layer over it. This server abstracts the auth, retries, and pagination so you can ask Claude things like "which forms are approved on the Contact Us LP?" or "clone the Q1 webinar program into the Q2 folder" and it just works.

No other open-source Marketo MCP server ships this depth (32 tools across 9 categories). Earned a Glama AAA quality rating.


Example prompts

Once installed, ask Claude things like:

  • "Show all leads created this week from the Webinar source."
  • "What programs are currently active and what channel is each one under?"
  • "Find all forms on the Contact Us landing page and show me their fields."
  • "Clone the Q1 Webinar program into the Q2 folder and name it Q2 Webinar."
  • "Export all leads updated in the last 30 days to CSV — email, firstName, lastName, company."
  • "Send a sample of email ID 1234 to test@example.com rendered with lead 5678's data."

Demo

🎥 Walkthrough video coming soon — exporting filtered leads from Marketo via Claude in under 60 seconds.


Features

Category What you can do
Leads Get by ID or email, create/update in batch, delete, retrieve activity log
Programs List, get by ID, clone, get members
Emails List, get by ID, clone, send sample/test
Forms List, get by ID, clone, approve
Smart Lists List, get by ID with full filter definitions
Static Lists Get members, add leads, remove leads
Channels List, get by ID, create with progression statuses
Landing Pages List, get by ID, clone
Bulk Export Create job, enqueue, poll status, download file

Prerequisites

  • Node.js 20+
  • A Marketo instance with REST API access
  • A Marketo API-only user and LaunchPoint service with Client ID and Client Secret

Setup

1. Get your Marketo REST credentials

In Marketo Admin: Integration → LaunchPoint → create or select a service → copy Client ID and Secret. Your base URL is under Integration → Web Services (e.g. https://xxx-xxx-xxx.mktorest.com).

2. Set environment variables

MARKETO_CLIENT_ID=your_client_id
MARKETO_CLIENT_SECRET=your_client_secret
MARKETO_BASE_URL=https://xxx-xxx-xxx.mktorest.com

Usage

Claude Desktop

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

{
  "mcpServers": {
    "marketo": {
      "command": "npx",
      "args": ["marketo-mcp-server"],
      "env": {
        "MARKETO_CLIENT_ID": "your_client_id",
        "MARKETO_CLIENT_SECRET": "your_client_secret",
        "MARKETO_BASE_URL": "https://xxx-xxx-xxx.mktorest.com"
      }
    }
  }
}

Claude Code

claude mcp add marketo-mcp-server npx marketo-mcp-server \
  -e MARKETO_CLIENT_ID=your_client_id \
  -e MARKETO_CLIENT_SECRET=your_client_secret \
  -e MARKETO_BASE_URL=https://xxx-xxx-xxx.mktorest.com

Cursor

Add to .cursor/mcp.json in your project root (or ~/.cursor/mcp.json globally):

{
  "mcpServers": {
    "marketo": {
      "command": "npx",
      "args": ["marketo-mcp-server"],
      "env": {
        "MARKETO_CLIENT_ID": "your_client_id",
        "MARKETO_CLIENT_SECRET": "your_client_secret",
        "MARKETO_BASE_URL": "https://xxx-xxx-xxx.mktorest.com"
      }
    }
  }
}

Docker

docker build -t marketo-mcp-server .
docker run -e MARKETO_CLIENT_ID=... -e MARKETO_CLIENT_SECRET=... -e MARKETO_BASE_URL=... marketo-mcp-server

Tools reference

Leads (5 tools)

Tool Description
marketo_get_lead_by_id Get a single lead by Marketo lead ID
marketo_get_lead_by_email Look up a lead by email address
marketo_create_or_update_leads Batch upsert up to 300 leads
marketo_delete_lead Permanently delete a lead by ID
marketo_get_lead_activities Get activity log for a lead (filterable by activity type)

Programs (4 tools)

Tool Description
marketo_get_programs List programs with pagination and type/date filtering
marketo_get_program_by_id Get full program metadata by ID
marketo_clone_program Clone a program with all local assets into a target folder
marketo_get_program_members Get leads enrolled in a program

Emails (4 tools)

Tool Description
marketo_get_emails List email assets with status filtering
marketo_get_email_by_id Get full email metadata including HTML and module structure
marketo_clone_email Clone an email asset to a target folder
marketo_send_sample Send a test/sample email, optionally rendered with a lead's tokens

Forms (4 tools)

Tool Description
marketo_get_forms List forms with pagination and status filtering
marketo_get_form_by_id Get form metadata including fields and visibility rules
marketo_clone_form Clone a form to a target folder
marketo_approve_form Approve a form draft to make it live

Smart Lists (2 tools)

Tool Description
marketo_get_smart_lists List smart lists with pagination
marketo_get_smart_list_by_id Get a smart list with its full filter definitions

Static Lists (3 tools)

Tool Description
marketo_get_lead_lists Get leads that are members of a static list
marketo_add_leads_to_list Add up to 300 leads to a static list
marketo_remove_leads_from_list Remove up to 300 leads from a static list

Channels (3 tools)

Tool Description
marketo_get_channels List all channels and their progression statuses
marketo_get_channel_by_id Get a single channel by ID
marketo_create_channel Create a channel with custom progression statuses

Landing Pages (3 tools)

Tool Description
marketo_get_landing_pages List landing pages with status filtering
marketo_get_landing_page_by_id Get full LP metadata including template and form embeds
marketo_clone_landing_page Clone a landing page to a target folder

Bulk Export (4 tools)

Tool Description
marketo_create_bulk_export_leads Create a bulk lead export job with field list and date filter
marketo_enqueue_bulk_export Enqueue a created export job for processing
marketo_get_bulk_export_status Poll the status of a running export job
marketo_get_bulk_export_file Download the file from a completed export job

Authentication

Marketo uses OAuth 2.0 client credentials. The server obtains and caches a token automatically, refreshing it 60 seconds before expiry. No manual token management required.


License

MIT — see LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured