Pardot MCP Server
for AI Agents
Connect your AI agent to StackOne's Pardot MCP server and give it 88 MCP tools out of the box. Auth, tool execution, and security all managed.
Coverage
88 Agent Actions
Create, read, update, and delete across Pardot — and extend your agent's capabilities with custom actions.
Authentication
Agent Tool Authentication
Per-user OAuth in one call. Your Pardot MCP server gets session-scoped tokens with zero credentials stored on your infra.
Agent Auth →Security
Agent Protection
Every Pardot tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.
Prompt Injection Defense →Performance
Max Agent Context. Min Cost.
Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every Pardot call.
Tools Discovery →What is the Pardot MCP Server?
A Pardot MCP server lets AI agents read and write Pardot data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's Pardot MCP server ships with 88 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, observability, and agent execution runtime. Connect it from MCP clients like Claude Desktop, Claude Code, Cursor, Goose, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.
All Pardot MCP Tools
Every action from Pardot's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.
Campaigns
- List Campaigns
Query campaigns with filtering, ordering, and pagination
- Get Campaign
Retrieve a single campaign by ID
Custom Fields
- Create Custom Field
Create a new prospect custom field
- List Custom Fields
Query prospect custom fields defined on the account
- Get Custom Field
Retrieve a single custom field definition by ID
- Update Custom Field
Update an existing prospect custom field
- Delete Custom Field
Soft-delete a custom field by ID
Custom Redirects
- Create Custom Redirect
Create a new trackable custom redirect link
- List Custom Redirects
Query trackable custom redirect links
- Get Custom Redirect
Retrieve a single custom redirect by ID
- Update Custom Redirect
Update an existing custom redirect
- Delete Custom Redirect
Soft-delete a custom redirect by ID
Dynamic Contents
- Create Dynamic Content
Create a new dynamic content record
- List Dynamic Content
Query personalized content variations
- Get Dynamic Content
Retrieve a single dynamic content record by ID
One-to-One Emails
- Send One-to-One Email
Send a one-to-one email to a single prospect
- List One-to-One Emails
Query one-to-one emails sent to individual prospects
- Get One-to-One Email
Retrieve a single one-to-one email by ID
Emails
- Send List Email
Send a bulk email to one or more recipient lists
- List List Emails
Query bulk-email batches sent to recipient lists (one row per send batch). For single one-to-one emails sent to individual prospects use `list_emails`; for the list definitions themselves use `list_lists`
- Get List Email
Retrieve a single list email by ID
Email Templates
- List Email Templates
Query reusable email templates
- Get Email Template
Retrieve a single email template by ID
Engagement Programs
- List Engagement Programs
Query Engagement Studio automation programs
- Get Engagement Program
Retrieve a single engagement studio program by ID
Files
- Upload File
Upload a hosted file to Pardot
- List Files
Query Pardot hosted files
- Get File
Retrieve a single file by ID
- Update File
Update metadata on an existing Pardot file
- Delete File
Delete a file by ID
Folders
- List Folders
Query Pardot folders with filtering, ordering, and pagination
- Get Folder
Retrieve a single Pardot folder by ID
Forms
- Create Form
Create a new lead-capture form. Requires `name`, `campaignId`, and `layoutTemplateId` (the ID of a Pardot layout template)
- List Forms
Query forms used for lead capture
- Get Form
Retrieve a single form by ID
- Delete Form
Soft-delete a form by ID
Landing Pages
- Create Landing Page
Create a new landing page. Requires `name` and `campaignId`. Supply either inline HTML in `content`, or a `layoutTemplateId` plus `openingGeneralContent` / `regionContent` for a template-driven page
- List Landing Pages
Query Pardot landing pages
- Get Landing Page
Retrieve a single landing page by ID
Memberships
- List List Memberships
Query the join records linking individual prospects to lists (i.e. which prospects are on which lists). Use to find members of a list or all lists a prospect is on. For list definitions themselves use `list_lists`
- Get List Membership
Retrieve a single list membership by ID
- Update List Membership
Update a list membership's opt-out status
Prospects
- Create Prospect
Create a new prospect with the specified email and optional attributes
- List Prospects
Query prospect (lead/contact) records with filtering, ordering, and pagination.
- Get Prospect
Retrieve a single prospect by ID with all custom fields
- Update Prospect
Update an existing prospect's editable fields
- Delete Prospect
Soft-delete a prospect by ID (moves to recycle bin)
Tags
- Create Tag
Create a new tag
- List Tags
Query the tag definitions themselves (name + how many objects each tag is applied to). For finding which objects carry a specific tag use `list_tagged_objects`
- Get Tag
Retrieve a single tag by ID
- Update Tag
Update an existing tag
- Delete Tag
Delete a tag by ID
Tagged Objects
- List Tagged Objects
Find which objects (prospects, files, campaigns, etc.) a given tag is applied to. Filter by `tagId` and `objectType`. For the tag definitions themselves use `list_tags`
- Get Tagged Object
Retrieve a single tagged-object record by ID
Users
- List Users
Query Pardot users with filtering, ordering, and pagination
- Get User
Retrieve a single Pardot user by ID
Other (32)
- Add Tag To Campaign
Apply a tag to a campaign. The tag is identified by its numeric `tagId` — tag names are not accepted
- Add Tag To Dynamic Content
Add a tag to a dynamic content record. The tag is identified by its numeric `tagId` — tag names are not accepted
- Add Tag To File
Add a tag to a Pardot file. The tag is identified by its numeric `tagId` — tag names are not accepted
- Add Tag To Landing Page
Add a tag to a landing page. The tag is identified by its numeric `tagId` — tag names are not accepted
- Add Prospect To List
Add a prospect to a list
- Create List
Create a new prospect list
- Add Tag To Prospect
Apply a tag to a prospect. The tag is identified by its numeric `tagId` — tag names are not accepted
- Add Tag To User
Add a tag to a Pardot user. The tag is identified by its numeric `tagId` — tag names are not accepted
- Get Account
Retrieve the authenticated Pardot business unit's account-level settings and API usage (single record). This is the Pardot tenant configuration — NOT a list of prospects.
- Get List Email Stats
Retrieve send statistics for a list email
- Download Engagement Program Structure
Download the encrypted base64-encoded program-structure file for an engagement program (used to clone or replicate the program). Requires the program `id`
- List Folder Contents
Query folder-content mappings (which objects live in which folder)
- Get Folder Contents Record
Retrieve a single folder-to-object junction record by its mapping ID (NOT a folder ID). Returns one row from the folder-contents table that says "object X is in folder Y." For folder details by folder ID use `get_folder`
- List Lists
Query the prospect mailing lists themselves (the list definitions used to group subscribers). For prospect-to-list join records use `list_list_memberships`; for sent bulk email batches use `list_list_emails`
- Get List
Retrieve a single prospect list by ID
- List Opportunities
Query opportunities synced from Salesforce
- Get Opportunity
Retrieve a single opportunity by ID
- List Visitor Activities
Query tracked visitor activities and engagement events
- Get Visitor Activity
Retrieve a single visitor activity by ID
- Update List
Update an existing prospect list
- Remove Tag From Campaign
Remove a tag from a campaign. The tag is identified by its numeric `tagId` — tag names are not accepted
- Remove Tag From Dynamic Content
Remove a tag from a dynamic content record. The tag is identified by its numeric `tagId` — tag names are not accepted
- Remove Tag From File
Remove a tag from a Pardot file. The tag is identified by its numeric `tagId` — tag names are not accepted
- Remove Tag From Landing Page
Remove a tag from a landing page. The tag is identified by its numeric `tagId` — tag names are not accepted
- Remove Prospect From List
Delete a list membership (remove a prospect from a list)
- Delete List
Soft-delete a prospect list by ID
- Remove Tag From Prospect
Remove a tag from a prospect. The tag is identified by its numeric `tagId` — tag names are not accepted
- Remove Tag From User
Remove a tag from a Pardot user. The tag is identified by its numeric `tagId` — tag names are not accepted
- Connect Salesforce Campaign
Link a Pardot campaign to a Salesforce campaign
- Upsert Prospect By Email
Create or update a prospect using email as the unique key. Supply `matchEmail` and a nested `prospect` object with the fields to set
- Undelete Prospect
Restore a deleted prospect from the recycle bin (prospect `id` is supplied in the request body, not the URL path)
- Merge Tags
Consolidate multiple tags into one. Path `id` is the target tag (kept); `tagIds` is the array of source tag IDs whose objects are re-tagged with the target — source tags are then deleted
Pardot AI Agent Use Cases
Connect your AI agent to Pardot and help your team scale the marketing operations they run by hand today.
Use StackOne to connect your AI agent to your marketing automation, CRM, and email tools to automate lead nurture email sequences.
ViewUse StackOne to connect your AI agent to your marketing automation, email, and analytics platforms to automate campaign performance reporting.
ViewUse StackOne to connect your AI agent to your CRM, email, and calendar tools to automate post-demo follow-up.
ViewSet Up Your Pardot MCP Server in Minutes
One endpoint. Any framework. Your agent is talking to Pardot in under 10 lines of code.
Agent Frameworks
{
"mcpServers": {
"stackone": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://api.stackone.com/mcp?x-account-id=<account_id>",
"--header",
"Authorization: Basic <YOUR_BASE64_TOKEN>"
]
}
}
}Platform Resources
MCP Code Mode: Keeping Tool Responses Out of Agent Context
Anthropic's code_execution processes data already in context. Custom MCP code mode keeps raw tool responses in a sandbox. 14K tokens vs 500.
11 min
Comparing BM25, TF-IDF, and Hybrid Search for MCP Tool Discovery
Benchmarking BM25, TF-IDF, and hybrid search for MCP tool discovery across 916 tools. The 80/20 TF-IDF/BM25 hybrid hits 21% Top-1 accuracy in under 1ms.
10 min
Indirect Prompt Injection Defense for MCP Tools: A Technical Guide
MCP tools that read emails, CRM records, and tickets are indirect prompt injection vectors. Here's how we built a two-tier defense that scans tool results in ~11ms.
12 min
MCP vs A2A: Architecture, Security, and When to Use Each
MCP vs A2A: what each protocol standardizes, how they differ, their shared security risks including indirect prompt injection, and when to use one, both, or a hybrid architecture.
12 min
MCP vs API: What 200+ Connector Builds Taught Us
MCP wraps APIs, it doesn't replace them. After building 200+ connectors that serve both, here's when each approach wins.
14 min read
Pardot MCP Server FAQ
Does StackOne have a Pardot MCP server?
Pardot MCP server vs direct API integration — what's the difference?
How does Pardot authentication work for AI agents?
origin_owner_id.Are Pardot MCP tools vulnerable to prompt injection?
What is the context bloat of a Pardot agent and how do I avoid it?
Can I limit which actions my Pardot agent can access?
Can I create custom agent actions for my Pardot MCP server?
When should I NOT use a Pardot MCP server?
What AI frameworks and AI clients does the StackOne Pardot MCP server support?
Put your AI agents to work
All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.