Skip to main content
Josh-17
Adobe Champion
Adobe Champion
May 15, 2026

Marketo’s MCP vs REST API

  • May 15, 2026
  • 3 replies
  • 99 views

Under the Hood: Comparing the Official MCP Toolset to the REST API

I’ve lived and breathed the Marketo REST API for years. In fact, I was so deep in the weeds that I actually built my own custom Marketo MCP before the official one existed. Back then, I was limited strictly to standard REST endpoints, since that was the only systematic way to work within in Marketo. So, when I finally got my hands on the official beta, I was dying to know: how does this new AI toolset actually stack up against the "old reliable" REST API?

Whether you’re looking to supercharge an AI assistant for your team or just trying to figure out which integration path won’t break your workflow, understanding these gaps is huge. Let's dive into where they overlap, where the REST API still reigns supreme, and those cool spots where the MCP pulls off tricks the REST API can’t do at all.

Just a heads-up: all of this is "as of now." Since the MCP is currently in beta, things can, and most likely will, change. Knowing the amazing Adobe Engineering team, I expect this toolset to keep improving and expanding rapidly.

 

The Core Difference

The REST API is comprehensive but developer-facing it returns raw JSON, requires careful request construction, and leaves all interpretation to you. The MCP is a curated, AI-optimized layer on top of that same Marketo instance. It trades breadth for usability: named, self-describing tools that an AI can reason about in natural language. As of this writing, the MCP offers 130 tools across programs, campaigns, lists, forms, leads, emails, snippets, and more.

The practical implication is that the MCP covers most of what a marketing operations user needs day-to-day, while the REST API remains the authoritative interface for data engineering, CRM integration, and full platform control.

 

Capability Comparison Table

Capability Area

Functionality

REST API

MCP

Programs

Browse / search programs

 

Get by name or ID

 

Create / clone / update / delete

 

Approve / unapprove

 

Tags management

 

Browse with full details (tags + costs inline)

 

Browse events / nurture / scheduled by type

 

Get program smart list

 

Get creation options (channels, tag types)

Folders

Browse / get by name or ID

 

Get folder contents

 

Create / update / delete

Smart Campaigns

Browse / get by name or ID

 

Create / update / activate

 

Schedule / trigger

 

Get flow steps and rules

 

Add flow steps / update choices

 

Get scheduled runs

 

Get "used by" dependencies

 

Flow step / rule metadata discovery

 

Faceted analysis with visualization

 

Auto-suggest for configuration

Smart Lists

Browse / get by name, ID, campaign, program

 

Create / clone / delete

 

Add / update / reorder / delete rules

 

Update filter logic (all / any / custom)

 

Get "used by" dependencies

 

Full rule catalog discovery

 

Auto-suggest for rule configuration

Static Lists

Browse / get by name or ID

 

Create / update / delete

 

Get members / add members / remove members

Forms

Browse / get by name or ID

 

Create / clone / update / delete

 

Approve / discard draft

 

Add / update / delete fields

 

Fieldsets, visibility rules, rich text, autofill

 

Field positions / thank you page

 

Get "used by" dependencies

 

Update submit button

 

Update thank you page content

 

Get available program member fields

Emails

Browse / get by name or ID

 

Create / approve

 

Get / update content

 

Clone / delete / unapprove / discard draft

 

Add / delete / duplicate / rename / rearrange modules

 

Get / update dynamic content

 

Get / update full content

 

Get / update variables

 

Send sample email

 

Get CC fields

 

Update email metadata

Email Templates

Full CRUD + approval workflow

Snippets

Browse / get by ID

 

Get content / dynamic content

 

Create / clone / update / delete

 

Approve / unapprove / discard draft

 

Update dynamic content

 

Faceted analysis with visualization

Landing Pages

Full CRUD + approval workflow

 

Landing page content sections

 

Landing page templates

 

Redirect rules and domains

Files

Create / get / update file assets

Channels & Tags

Browse channels / get by name

 

Browse tag types / get by name

 

Get programs by tag

Tokens

Get / create / delete My Tokens

 

Get / create calendar tokens

Leads

Get leads by email or ID

 

Describe lead fields

 

Get lead activities

 

Get paging token

 

Sync leads (create / update)

 

Delete leads

 

Merge leads

 

Get leads by program ID (with status filter)

 

Change lead program status

 

Get lead partitions / update partition

 

Associate lead

 

Push lead / submit form

 

Get lead changes

 

Get deleted leads

 

Lead field schema management

 

Get lists / programs / campaigns by lead ID

Bulk Export

Bulk export leads (create / enqueue / status)

 

Bulk export program members

 

Bulk export activities

 

Bulk export custom objects

Bulk Import

Check import status

 

Import leads

 

Import program members

 

Import custom objects

Custom Objects

Get / sync / delete records

 

Create / manage type schemas and fields

Companies

Get / sync / delete / describe

 

Field schema management

Opportunities

Get / sync / delete opportunities and roles

Named Accounts

Full CRUD for named accounts and lists

Custom Activities

Create / manage custom activity types

 

Submit custom activity records

User Management

Browse / invite / update / delete users and roles

 

What the MCP Adds Beyond the REST API

A few MCP tools don't have REST API equivalents at all they're purpose-built for AI-assisted workflows:

Faceted analysis facet_smart_campaigns and facet_snippets aggregate and visualise your Marketo data as pie charts and tables. The REST API returns raw records and leaves analysis entirely to you.

Rule and flow step discovery tools like get_smart_list_rules, get_smart_campaign_flow_steps, and get_smart_campaign_flow_step_types expose a full metadata catalog of what filters, triggers, and flow steps are available in your instance. Without this, an AI has no way to build campaigns correctly from scratch.

Auto-suggest get_smart_campaign_auto_suggest and get_smart_list_auto_suggest provide context-aware configuration hints. These are MCP-specific abstractions with no REST equivalent.

Program creation options get_program_creation_options returns all valid channels and tag types in a single call, designed specifically to help an AI plan a program creation correctly before executing.

 

The Practical Takeaway

For marketing operations users who want to query, report on, and manage campaigns, smart lists, programs, forms, and snippets through an AI assistant, the MCP covers the vast majority of day-to-day work.

The most significant gap is lead data writeback syncing, deleting, merging leads, or changing program statuses are all REST-only. For anyone expecting AI-driven data management, that's the wall you'll hit first.

Program member reporting is the other notable pain point. Answering "how many people attended this webinar?" requires either GET /rest/v1/leads/programs/{programId}.json with a status filter, or the Bulk Export Program Members endpoint neither of which exists in the MCP today.

Entire domains custom objects, companies, opportunities, named accounts, landing pages, and user management are REST-only and will likely remain so, as these tend to be developer and integration concerns rather than marketing operations workflows.

The MCP is best understood as a curated, AI-optimized interface to the parts of Marketo that benefit most from natural language interaction. For full programmatic control, the REST API remains the authoritative interface and for the foreseeable future, both will have a role to play.
 

Don't See What You Need? You Can Extend the MCP

If you've spotted a gap in the table above that matters to your team, it's worth knowing that you're not necessarily stuck. The MCP tool set described in this article is the out-of-the-box offering but most AI agent platforms that support MCP also allow you to register additional custom tools alongside it.

In practice, this means you can build your own tools that call the Marketo REST API directly for the endpoints the MCP doesn't cover, and make them available to your AI agent in exactly the same way as the native MCP tools. The AI treats them as first-class capabilities it can discover them, reason about when to use them, and chain them together with the existing MCP tools in a single workflow.

To return to the example from this article: getting a webinar attendance count requires GET /rest/v1/leads/programs/{programId}.json with a progression status filter a REST-only endpoint. You could build a single custom tool called something like get_program_members_by_status, wrap that REST call inside it, register it with your agent, and from that point forward your AI assistant can answer "how many people attended this webinar?" just as naturally as any other question. The same approach applies to syncing leads, querying custom objects, pulling program member exports, or any other REST capability that isn't currently in the MCP.

The key insight is that the MCP and the REST API aren't an either/or choice. The MCP gives you a strong, well-structured foundation for marketing operations workflows, and the REST API gives you the raw material to fill in whatever your specific use case demands. Together, they cover the full surface area of Marketo and a well-configured AI agent can work across both seamlessly.
 

---

This article reflects the beta Marketo MCP tool set as of May 2026 and the Marketo REST API as documented by Adobe Experience League. Both are subject to change.

3 replies

Level 1
May 16, 2026

Hi ​@Josh-17 

I have a question regarding Marketo MCPs.

Using MCP, can we retrieve scheduling information for batch campaigns —> specifically:

 the scheduled date/time for a particular campaign, and

 the number of people currently qualifying for that camp

aign?

Josh-17
Adobe Champion
Josh-17Adobe ChampionAuthor
Adobe Champion
May 17, 2026

You can get the scheduling information via the get_smart_campaign_scheduled_runs tool, however as far as I know you cannot get the number of people who will qualify. 

The same goes for the REST API it can only return the scheduling info but not the number of people who qualify.

"recurrence": {
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"intervalType": "Daily",
"interval": 0,
"weekdayOnly": true,
"weekdayMask": [],
"dayOfMonth": 0,
"dayOfWeek": "Monday",
"weekOfMonth": 0
}



 

Helping companies increase revenue by leveraging technology and data.
Level 2
May 19, 2026

Hi ​@Josh-17 - Nice to meet you and thanks for the details.

Could you give me some clarity on how get flow step details of a smart campaign using REST API? I noticed that your table shows a “tick” mark towards “Get flow steps and rules” row item.

Adobe Employee
May 20, 2026

It’s worth pointing out there are some API’s that have not been enabled yet and some that have purposefully been disable as they may be destructive to operations which will be difficult to rollback.