JUHE API Marketplace
alexleventer avatar
MCP Server

Marketo MCP Server

A Model Context Protocol server for interacting with the Marketo API that provides tools for managing Marketo forms, including listing, cloning, and approving forms.

2
GitHub Stars
6/24/2026
Last Updated
MCP Server Configuration
1{
2 "name": "marketo",
3 "command": "npx",
4 "args": [
5 "-y",
6 "marketo-mcp"
7 ],
8 "env": {
9 "MARKETO_BASE_URL": "https://123-ABC-456.mktorest.com/rest",
10 "MARKETO_CLIENT_ID": "your-client-id",
11 "MARKETO_CLIENT_SECRET": "your-client-secret"
12 }
13}
JSON13 lines
  1. Home
  2. MCP Servers
  3. marketo-mcp

README Documentation

Marketo MCP Server

A Model Context Protocol server for Adobe Marketo Engage. Give Claude Desktop, Cursor, and other MCP-compatible clients direct, authenticated access to the Marketo REST API — read and write forms, smart lists, channels, leads, activities, and lists with natural language.

smithery badge

Why

Marketing ops, growth, and RevOps teams spend hours clicking through the Marketo UI to clone a form, approve assets, look up a lead, or audit a smart list. The Marketo MCP Server wires those same REST API operations into an LLM agent, so you can say:

  • "Clone form 1234 into the Q2 Webinars folder and approve it."
  • "Show me recent activities for lead alex@example.com."
  • "Create a new email channel called 'Lifecycle Nurture'."

…and the model executes the actual Marketo API calls on your behalf.

Table of Contents

  • Features
  • Quick start
  • Prerequisites
  • Configuration
  • Available tools
  • Usage with Claude Desktop
  • Usage with Cursor / other MCP clients
  • Troubleshooting
  • Development
  • Contributing

Features

  • Form management — list, inspect, clone, and approve forms via the Marketo Asset API
  • Smart list operations — list and inspect smart lists
  • Channel CRUD — create, read, update, and delete channels
  • Lead database — get leads by ID or email, create or update leads in bulk, delete leads
  • Activity & change logs — fetch activities and field changes for any lead
  • List membership — add or remove leads from static lists
  • Program management — list, inspect, clone programs and retrieve program members
  • Email operations — list, inspect, and send sample emails for QA
  • Automatic auth — OAuth 2.0 client-credentials flow with token caching & refresh
  • Stdio transport — works out of the box with Claude Desktop, Cursor, and any MCP client that speaks stdio

Quick start

Option A — Smithery (recommended)

npx -y @smithery/cli install @alexleventer/marketo-mcp --client claude

Follow the prompts to paste in your Marketo base URL, client ID, and client secret.

Option B — npx (no install)

Add the following to your MCP client's config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "marketo": {
      "command": "npx",
      "args": ["-y", "marketo-mcp"],
      "env": {
        "MARKETO_BASE_URL": "https://123-ABC-456.mktorest.com/rest",
        "MARKETO_CLIENT_ID": "your-client-id",
        "MARKETO_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Option C — from source

git clone https://github.com/alexleventer/marketo-mcp.git
cd marketo-mcp
npm install
npm run build

Copy the config block printed by the build into your MCP client.

Prerequisites

  • Node.js 18 or higher
  • Marketo API credentials (client ID & client secret from a LaunchPoint service)
  • A Marketo instance with REST API access enabled
  • An MCP-compatible client — Claude Desktop, Cursor, Cline, or any other

Obtaining Marketo API credentials

  1. Log into Marketo admin
  2. Admin → Integration → LaunchPoint
  3. New → New Service, set service type to Custom and pick a display name (e.g. MCP Server)
  4. Assign an API-only user with the permissions you need (Read-Only Assets, Read-Write Lead, etc.)
  5. Save the Client ID and Client Secret
  6. Your base URL is under Admin → Integration → Web Services → REST API Endpoint (strip /rest/v1/* — keep just https://<munchkin>.mktorest.com/rest)

Configuration

All configuration is via environment variables:

VariableRequiredDescription
MARKETO_BASE_URLyesYour REST endpoint, e.g. https://123-ABC-456.mktorest.com/rest
MARKETO_CLIENT_IDyesLaunchPoint service client ID
MARKETO_CLIENT_SECRETyesLaunchPoint service client secret

Copy .env.example to .env for local development.

Available tools

ToolDescription
marketo_get_formsList forms (filter by `status: draft
marketo_get_form_by_idGet a single form by ID
marketo_clone_formClone a form into a destination folder
marketo_approve_formApprove a draft form
marketo_get_smart_listsList smart lists
marketo_get_smart_list_by_idGet a smart list by ID
marketo_get_channelsList channels
marketo_get_channel_by_idGet a channel by ID
marketo_create_channelCreate a new channel
marketo_update_channelUpdate an existing channel
marketo_delete_channelDelete a channel
marketo_get_lead_by_idGet a lead by numeric ID
marketo_get_lead_by_emailLook up a lead by email address (filter API)
marketo_create_or_update_leadBulk create or update leads (max 300 per call)
marketo_delete_leadDelete a lead
marketo_get_lead_activitiesFetch activities for a lead (paginated)
marketo_get_lead_changesFetch field-change history for a lead
marketo_get_lead_listsGet lists that a lead belongs to
marketo_add_lead_to_listAdd leads to a static list
marketo_remove_lead_from_listRemove leads from a static list
marketo_get_programsList programs (filter by type, folder, tag, or date range)
marketo_get_program_by_idGet a program by ID
marketo_clone_programClone a program and all its local assets into a folder
marketo_get_program_membersGet leads that are members of a program
marketo_get_emailsList emails (filter by status)
marketo_get_email_by_idGet an email by ID
marketo_send_sample_emailSend a sample/preview email for QA

Each tool accepts typed arguments validated with zod and returns the raw Marketo JSON response. See the Adobe Marketo REST API reference for field-level details.

Usage with Claude Desktop

  1. Install Claude Desktop
  2. Open the config at ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
  3. Paste the mcpServers block from Quick start
  4. Restart Claude Desktop

Usage with Cursor / other MCP clients

Any MCP client that supports stdio servers will work. Point it at the built binary:

{
  "mcpServers": {
    "marketo": {
      "command": "npx",
      "args": ["-y", "marketo-mcp"],
      "env": { "MARKETO_BASE_URL": "...", "MARKETO_CLIENT_ID": "...", "MARKETO_CLIENT_SECRET": "..." }
    }
  }
}

Rate limits

Marketo enforces several API rate limits. Keep these in mind when running batch operations:

LimitValue
Short-term100 calls per 20 seconds per instance
Daily50,000 calls per day
Concurrent10 simultaneous connections
Bulk import10 MB per file, 10 concurrent jobs
Bulk export500 MB per day, 2 concurrent jobs

If you hit 606 Max rate limit reached, wait 20 seconds before retrying. The Marketo REST API returns a Retry-After header in some cases.

Troubleshooting

SymptomLikely cause
Failed to authenticate with MarketoWrong client ID/secret, or REST API not enabled for the LaunchPoint user
403 Access DeniedThe API-only user lacks the role for that endpoint (e.g. Asset API vs Lead Database API)
606 Max rate limit reachedMarketo caps at 100 calls / 20s / instance — batch calls and add delays
610 Requested resource not foundThe folder/form/lead ID doesn't exist or is in a different workspace
Auth works, but requests hangDouble-check MARKETO_BASE_URL has no trailing slash and ends with /rest

You can inspect tool calls locally with the MCP inspector:

npm run inspector

Development

src/
├── index.ts       # MCP server + all tool registrations
├── auth.ts        # OAuth token manager (caches until expiry)
└── constants.ts   # Env var bindings
npm run dev          # Run with ts-node + .env
npm run typecheck    # Type-check without emit
npm run lint         # ESLint
npm run format       # Prettier
npm run build        # Compile to build/

Contributing

Issues and pull requests welcome at github.com/alexleventer/marketo-mcp.

  1. Fork the repo
  2. Create a feature branch
  3. npm run lint && npm run typecheck
  4. Open a PR

License

ISC — see LICENSE.


Keywords: marketo mcp server, marketo model context protocol, marketo claude, marketo ai, adobe marketo mcp, marketo api claude desktop, marketo automation llm, marketo engage mcp

Quick Install

Quick Actions

View on GitHubView All Servers

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source

Boost your projects with Wisdom Gate LLM API

Supporting GPT-5, Claude-4, DeepSeek v3, Gemini and more.

Enjoy a free trial and save 20%+ compared to official pricing.

Learn More
JUHE API Marketplace

Accelerate development, innovate faster, and transform your business with our comprehensive API ecosystem.

JUHE API VS

  • vs. RapidAPI
  • vs. API Layer
  • API Platforms 2025
  • API Marketplaces 2025
  • Best Alternatives to RapidAPI

For Developers

  • Console
  • Collections
  • Documentation
  • MCP Servers
  • Free APIs
  • Temp Mail Demo

Product

  • Browse APIs
  • Suggest an API
  • Wisdom Gate LLM
  • Global SMS Messaging
  • Temp Mail API

Company

  • What's New
  • Welcome
  • About Us
  • Contact Support
  • Terms of Service
  • Privacy Policy
Featured on Startup FameFeatured on Twelve ToolsFazier badgeJuheAPI Marketplace - Connect smarter, beyond APIs | Product Huntai tools code.marketDang.aiFeatured on ShowMeBestAI
Copyright © 2026 JUHEDATA HK LIMITED - All rights reserved