🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

marketo-mcp-server

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

marketo-mcp-server

MCP server for Marketo — 45 tools covering leads, programs, emails, forms, smart lists, static lists, channels, landing pages, bulk export, analytics, and admin utilities

latest
npmnpm
Version
1.4.0
Version published
Maintainers
1
Created
Source

marketo-mcp-server

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

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

45 tools covering leads (lookup, batch upsert, activity log, full timeline), programs (list, clone, clone with tokens, dead program reaper, status changes), emails (clone, send sample), forms (clone, approve), smart lists (search by filter type), static lists, channels, landing pages, bulk export, campaign analytics, and admin utilities (field browser, activity type reference, folder browser). 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 (45 tools across 11 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."
  • "Show me the full activity timeline for jane.doe@acme.com over the last 90 days."
  • "Clone the Q1 Content Asset program into Q2, and set the asset-url token to https://example.com/report and the send-date token to 2026-05-15."
  • "Which campaigns drove the most email opens and form fills in the last 14 days?"
  • "Show me the health of all our nurture programs — which ones haven't been updated in over 30 days?"
  • "Map all the smart campaigns in program 1234 and show me what filters and triggers each one uses."
  • "Find every smart campaign in our instance that fires on a form fill."
  • "Which programs haven't been touched in 90 days and should be considered for archiving?"
  • "What's the API name for the lead score field? Show me all scoring-related fields."
  • "What activity type ID corresponds to clicking a link in an email?"
  • "Show me the folder tree under Marketing Activities so I can find the right destination folder."
  • "Mark lead IDs 1234 and 5678 as Attended in program 9999."

Demo

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

Features

CategoryWhat you can do
LeadsGet by ID or email, create/update in batch, delete, retrieve activity log
ProgramsList, get by ID, clone, get members
EmailsList, get by ID, clone, send sample/test
FormsList, get by ID, clone, approve
Smart ListsList, get by ID with full filter definitions
Static ListsGet members, add leads, remove leads
ChannelsList, get by ID, create with progression statuses
Landing PagesList, get by ID, clone
Bulk ExportCreate job, enqueue, poll status, download file
AnalyticsLead activity timeline, clone program with tokens, rank campaigns by engagement, nurture health check, smart campaign dependency map, dead program reaper, search campaigns by filter
AdminLead field browser, activity type reference, folder browser, change program status

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 (6 tools)

ToolDescription
marketo_get_lead_by_idGet a single lead by Marketo lead ID
marketo_get_lead_by_emailLook up a lead by email address
marketo_create_or_update_leadsBatch upsert up to 300 leads
marketo_delete_leadPermanently delete a lead by ID
marketo_get_activities_paging_tokenGet an initial paging token required by the activities endpoint
marketo_get_lead_activitiesGet activity log for a lead (requires paging token, filterable by activity type)

Programs (5 tools)

ToolDescription
marketo_get_programsList programs with pagination and type/date filtering
marketo_get_program_by_idGet full program metadata by ID
marketo_clone_programClone a program with all local assets into a target folder
marketo_clone_program_with_tokensClone a program and immediately update its my.tokens in one shot
marketo_get_program_membersGet leads enrolled in a program

Emails (4 tools)

ToolDescription
marketo_get_emailsList email assets with status filtering
marketo_get_email_by_idGet full email metadata including HTML and module structure
marketo_clone_emailClone an email asset to a target folder
marketo_send_sampleSend a test/sample email, optionally rendered with a lead's tokens

Forms (4 tools)

ToolDescription
marketo_get_formsList forms with pagination and status filtering
marketo_get_form_by_idGet form metadata including fields and visibility rules
marketo_clone_formClone a form to a target folder
marketo_approve_formApprove a form draft to make it live

Smart Lists (2 tools)

ToolDescription
marketo_get_smart_listsList smart lists with pagination
marketo_get_smart_list_by_idGet a smart list with its full filter definitions
marketo_search_campaigns_by_filterFind all smart campaigns whose smart list uses a specific filter or trigger type

Static Lists (3 tools)

ToolDescription
marketo_get_lead_listsGet leads that are members of a static list
marketo_add_leads_to_listAdd up to 300 leads to a static list
marketo_remove_leads_from_listRemove up to 300 leads from a static list

Channels (3 tools)

ToolDescription
marketo_get_channelsList all channels and their progression statuses
marketo_get_channel_by_idGet a single channel by ID
marketo_create_channelCreate a channel with custom progression statuses

Landing Pages (3 tools)

ToolDescription
marketo_get_landing_pagesList landing pages with status filtering
marketo_get_landing_page_by_idGet full LP metadata including template and form embeds
marketo_clone_landing_pageClone a landing page to a target folder

Bulk Export (4 tools)

ToolDescription
marketo_create_bulk_export_leadsCreate a bulk lead export job with field list and date filter
marketo_enqueue_bulk_exportEnqueue a created export job for processing
marketo_get_bulk_export_statusPoll the status of a running export job
marketo_get_bulk_export_fileDownload the file from a completed export job

Admin (4 tools)

ToolDescription
marketo_describe_lead_fieldsList all 850+ lead fields with API names, display names, data types — filterable by name or type
marketo_list_activity_typesList all activity types with IDs and attributes — reference for building activity queries
marketo_change_program_statusChange program membership status for up to 300 leads (e.g. mark as Attended, No Show)
marketo_browse_foldersBrowse the Marketing Activities folder tree to find destination folder IDs

Analytics (3 tools)

ToolDescription
marketo_get_lead_timelineReconstruct the full chronological story of a lead — form fills, email opens/clicks, score changes, SFDC pushes, and program status changes
marketo_clone_program_with_tokensClone a program and immediately update its my.tokens (text, date, href, richText, score) in a single operation
marketo_rank_campaign_engagementRank campaigns by email opens, clicks, form fills, and unsubscribes for a date range using the activities API
marketo_get_engagement_program_healthList all nurture programs with status, days since last update, and stale flags
marketo_get_smart_campaign_mapFor a program, return all smart campaigns with their trigger and filter rules
marketo_find_dead_programsFind active programs not updated in N days — candidates for archiving

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.

Keywords

mcp

FAQs

Package last updated on 29 Apr 2026

Did you know?

Socket

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.

Install

Related posts