- Leadfox Connect Mcp
Leadfox Connect Mcp
// Mobile menu toggle let menuOpen = false; mobileBtn?.addEventListener('click', () => { menuOpen = !menuOpen; mobileMenu.classList.toggle('hidden', !menuOpen); iconOpen.classList.toggle('hidden', menuOpen); iconClose.classList.toggle('hidden', !menuOpen); mobileBtn.setAttribute('aria-expanded', String(menuOpen)); // Force scrolled style when menu is open if (menuOpen) setScrolled(true); else setScrolled(window.scrollY > 20); });
// Close mobile menu on link click document.querySelectorAll('#mobile-menu a').forEach((link) => { link.addEventListener('click', () => { menuOpen = false; mobileMenu.classList.add('hidden'); iconOpen.classList.remove('hidden'); iconClose.classList.add('hidden'); mobileBtn.setAttribute('aria-expanded', 'false'); setScrolled(window.scrollY > 20); }); });
const setScrolled = (scrolled) => { if (scrolled) { header.classList.remove('bg-transparent'); header.classList.add('bg-white/95', 'backdrop-blur-sm', 'shadow-md'); logoLight.classList.add('hidden'); logoLight.classList.remove('inline-flex'); logoDark.classList.remove('hidden'); logoDark.classList.add('inline-flex'); navLinks.forEach((l) => { l.classList.remove('text-white/90'); l.classList.add('text-dark-gray'); }); // Mobile hamburger icon color iconOpen.classList.remove('text-white'); iconOpen.classList.add('text-charcoal'); iconClose.classList.remove('text-white'); iconClose.classList.add('text-charcoal'); } else { header.classList.add('bg-transparent'); header.classList.remove('bg-white/95', 'backdrop-blur-sm', 'shadow-md'); logoLight.classList.remove('hidden'); logoLight.classList.add('inline-flex'); logoDark.classList.add('hidden'); logoDark.classList.remove('inline-flex'); navLinks.forEach((l) => { l.classList.add('text-white/90'); l.classList.remove('text-dark-gray'); }); iconOpen.classList.add('text-white'); iconOpen.classList.remove('text-charcoal'); iconClose.classList.add('text-white'); iconClose.classList.remove('text-charcoal'); } };
const onScroll = () => { if (!menuOpen) setScrolled(window.scrollY > 20); }; window.addEventListener('scroll', onScroll, { passive: true }); onScroll();
Marketo MCP Server
for Claude, Cursor & AI Tools
Talk to Marketo. Get things done.
The Marketo UI wasn't built for speed. You were. Connect Claude, Cursor, or any AI tool to your instance and operate Marketo in plain English.
A conversation with your Marketo.
Every answer below is a real thing LeadFoxConnect can do today.
- > Create a nurture program follow-up for the April webinar, based on the copy attached
- > What is the customer journey of dwight.schrute@dundermifflin.com?
- > What's our email performance this quarter? Which sends are underperforming?
- > How many MQLs did we generate this month vs last month? Break it down by source.
✓ Created nurture program April Webinar Follow-Up with 3 emails.
"Hi {{lead.FirstName}}, you joined our webinar last week but we didn't get to connect after. I've got 15 minutes Thursday if you want to pick up where the demo left off."
"{{lead.FirstName}}, here are the top questions from the webinar Q&A — plus the answers we didn't have time to cover live."
"{{lead.FirstName}}, the offer we mentioned at the end of the webinar expires Friday. Book a quick call before then and we'll extend it."
All 3 emails are in draft. Want me to send samples to michael.scott@dundermifflin.com?
Dwight Schrute — Dunder Mifflin · Regional Manager
Customer journey:
Current status: MQL ·
Score: 72 ·
Program: Demo Nurture
Last activity: 5 days ago
Q1 2026 Email Performance — 6 sends, 12,840 total sent
2 underperformers flagged. The re-engagement blast went to 4,200 cold leads — might be worth segmenting that list before the next send.
MQLs: March vs April 2026
| Source | Detail | Mar | Apr | Change |
|---|---|---|---|---|
| Organic Search | Google · "marketo consulting" | 18 | 14 | -22% |
| Paid Ads | Google Ads · "marketo automation" | 12 | 22 | +83% |
| Events | April Webinar · MOPs Summit | 8 | 11 | +38% |
| Referral | Partner · Dunder Mifflin | 6 | 5 | -17% |
| Total | 44 | 52 | +18% |
Paid is driving the growth — the new Google Ads campaign targeting "marketo automation" is pulling its weight. Organic drop worth investigating.
fallback.classList.add('hidden');
windowEl.classList.remove('hidden');
const reduced =
window.matchMedia &&
window.matchMedia('(prefers-reduced-motion: reduce)').matches;
const TYPE_MS = reduced ? 0 : 26;
const PAUSE_BEFORE_THINK = reduced ? 0 : 500;
const THINK_MS = reduced ? 0 : 900;
const HOLD_MS = reduced ? 6500 : 4800;
const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
const hideAllResponses = () =>
responseIds.forEach((id) =>
document.getElementById(id)?.classList.add('hidden'),
);
const showResponse = (id) =>
document.getElementById(id)?.classList.remove('hidden');
const typeText = async (text) => {
if (reduced) { typed.textContent = text; return; }
for (let i = 1; i <= text.length; i++) {
typed.textContent = text.slice(0, i);
await sleep(TYPE_MS);
}
};
(async function loop() {
let idx = 0;
hideAllResponses();
thinking.classList.add('hidden');
typed.textContent = '';
while (true) {
hideAllResponses();
thinking.classList.add('hidden');
typed.textContent = '';
if (usernameEl) usernameEl.textContent = userNames[idx];
await typeText(commands[idx]);
await sleep(PAUSE_BEFORE_THINK);
thinking.classList.remove('hidden');
await sleep(THINK_MS);
thinking.classList.add('hidden');
showResponse(responseIds[idx]);
await sleep(HOLD_MS);
idx = (idx + 1) % commands.length;
}
})();
})(); })();
Built for practitioners.
LeadFoxConnect is an MCP server for Adobe Marketo Engage — it connects AI tools like Claude, Cursor, and Windsurf to your Marketo instance so you can run audits, manage campaigns, and pull reports in plain English.
Skip the Marketo UI
15-click workflows and a UI from 2012. Describe what you need in plain English — audits, reports, emails, list management — and it just happens.
Works with Your AI Tools
Built on the open MCP standard. Plug into Claude, Cursor, Windsurf, or any MCP-compatible AI tool. 5-minute setup, nothing else to install.
130 Marketo Operations
Leads, campaigns, emails, landing pages, programs, analytics, bulk exports — the workflows you actually use every day, not a toy demo of 3 API calls.
Works with your tools.
Built on the open MCP standard. Plug into any compatible AI tool — 5-minute setup, nothing else to install.
How it works.
Three steps, about five minutes. No middleware, no backend to host, no data copied out of your Marketo instance.
- 1
Connect your Marketo instance
Paste your Marketo REST API credentials (Client ID, Client Secret, Identity URL) into LeadFoxConnect. Credentials are encrypted in AWS Secrets Manager — never stored in our database or logs. No Marketo data is stored on our side; it flows directly between your AI tool and your instance.
- 2
Add the MCP server to your AI tool
LeadFoxConnect is a Model Context Protocol (MCP) server. Add it once to Claude Desktop, Cursor, Windsurf, ChatGPT, Gemini, or any MCP-compatible client. Setup is a single config entry — no middleware, no plugin, no browser extension.
- 3
Talk to Marketo in plain English
Ask your AI to audit lead scoring, pull email performance, find stale smart campaigns, create programs, export leads — 130 operations across leads, campaigns, emails, landing pages, forms, and analytics. Every action is audit-logged. You control access through Marketo’s standard API user roles.
Built with trust.
Your credentials are locked down
Stored in AWS Secrets Manager. Encrypted at rest, never in our database, never in logs. We treat your Marketo keys like our own.
We never store your Marketo data
Your data flows directly between your AI tool and your Marketo instance. Nothing is saved on our side — ever.
See everything the AI did
Every action is logged with a full audit trail. Tool name, timestamp, result. You always know exactly what happened in your instance.
Start safe. Move fast.
No credentials required to start.
Try with our sandbox data
Use our Marketo sandbox instance. See how it works, run real commands, zero risk.
Try nowTest with your sandbox
Connect your Marketo sandbox. Your data, safe environment, real workflows.
When you’re readyGo live with confidence
Every action is audit-logged. You control access through Marketo's API roles. Full visibility, zero surprises.
When you’re readyBuilt by LeadFox — 15 years of Marketo consulting and operations.
Evaluating Adobe's Marketo MCP?
We published a factual side-by-side comparison on governance, roles, audit, mock modes, and support.
Join the Closed Beta
We’re onboarding a small group of Marketo practitioners. Founder-led, hands-on support, direct feedback loop.
I’ll personally show you the product’s capabilities. No prep needed.
You’re on the list.
Thanks. We’ll reach out soon with next steps.
// Safe storage — private-browsing modes throw on get/setItem function safeGet(store, key) { try { return store.getItem(key); } catch(e) { return null; } } // Sanitize on READ too — a pre-hardening session could have unsafe values // already in storage. Cheaper to re-clean than to migrate. function clean(v) { if (!v) return ''; return String(v).slice(0, 120).replace(/[<>\r\n]/g, ''); }
// GA4: track demo call click. // Separate event name from form submissions (they're different intents — // form = waitlist lead, demo = hot "book a call" lead ~5-10x more valuable). document.getElementById('book-demo-btn')?.addEventListener('click', () => { if (typeof gtag === 'function') { gtag('event', 'book_demo_call', { cta_location: 'beta_section' }); } });
// Helper: get stored UTM + attribution data function getAttribution() { var utmRaw = {}; try { utmRaw = JSON.parse(safeGet(sessionStorage, 'lfx_utm') || safeGet(localStorage, 'lfx_utm_first') || '{}'); } catch(e) {} var utm = {}; ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'].forEach(function(k) { if (utmRaw[k]) utm[k] = clean(utmRaw[k]); }); return Object.assign({}, utm, { referrer: clean(safeGet(sessionStorage, 'lfx_referrer') || safeGet(localStorage, 'lfx_referrer_first') || ''), gclid: clean(safeGet(sessionStorage, 'lfx_gclid') || ''), fbclid: clean(safeGet(sessionStorage, 'lfx_fbclid') || ''), li_fat_id: clean(safeGet(sessionStorage, 'lfx_li_fat_id') || ''), msclkid: clean(safeGet(sessionStorage, 'lfx_msclkid') || ''), landing_page: clean(safeGet(sessionStorage, 'lfx_landing') || window.location.pathname) }); }
// GA4: track form_start when user focuses email field var emailField = document.getElementById('email'); var formStarted = false; emailField?.addEventListener('focus', function() { if (!formStarted) { formStarted = true; if (typeof gtag === 'function') { gtag('event', 'form_start', { form_id: 'waitlist_form' }); } } });
form?.addEventListener('submit', async (e) => { e.preventDefault(); errorEl.classList.add('hidden'); submit.disabled = true; submit.textContent = 'Sending…';
const email = document.getElementById('email').value;
const attr = getAttribution();
// Build a human-readable attribution line for the email notification
var sourceParts = [];
if (attr.utm_source) sourceParts.push('source=' + attr.utm_source);
if (attr.utm_medium) sourceParts.push('medium=' + attr.utm_medium);
if (attr.utm_campaign) sourceParts.push('campaign=' + attr.utm_campaign);
if (attr.utm_term) sourceParts.push('term=' + attr.utm_term);
if (attr.utm_content) sourceParts.push('content=' + attr.utm_content);
if (attr.referrer) sourceParts.push('ref=' + attr.referrer);
if (attr.gclid) sourceParts.push('gclid=yes');
if (attr.fbclid) sourceParts.push('fbclid=yes');
var sourceStr = sourceParts.length > 0 ? sourceParts.join(' | ') : 'direct';
try {
const res = await fetch('https://api.web3forms.com/submit', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
access_key: WEB3FORMS_ACCESS_KEY,
subject: `LeadFoxConnect beta signup — ${email}`,
from_name: 'LeadFoxConnect Website',
email,
// Attribution — Web3Forms renders every field in the email
traffic_source: sourceStr,
utm_source: attr.utm_source || '',
utm_medium: attr.utm_medium || '',
utm_campaign: attr.utm_campaign || '',
utm_term: attr.utm_term || '',
utm_content: attr.utm_content || '',
landing_page: attr.landing_page || '',
}),
});
if (!res.ok) throw new Error('HTTP ' + res.status);
const json = await res.json();
if (json.success) {
form.classList.add('hidden');
successEl.classList.remove('hidden');
// GA4: track waitlist signup. Attribution lives on user_properties
// (set in BaseLayout) — no need to duplicate onto the event payload.
if (typeof gtag === 'function') {
gtag('event', 'generate_lead', {
form_id: 'waitlist_form',
value: 1
});
}
} else {
throw new Error('Web3Forms rejected submission');
}
} catch (err) {
// Fire GA first so a DOM mutation exception below can't swallow the event
if (typeof gtag === 'function') {
gtag('event', 'form_error', {
form_id: 'waitlist_form',
error_message: (err && err.message ? String(err.message) : 'unknown').slice(0, 100)
});
}
try {
errorEl?.classList.remove('hidden');
if (submit) {
submit.disabled = false;
submit.textContent = 'Request Access';
}
} catch (e) {}
}
}); })();
Frequently asked.
});
Server Config
{
"mcpServers": {
"leadfoxconnect": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://app.leadfoxconnect.com/mcp",
"--transport",
"http-only",
"--header",
"x-api-key:YOUR_TENANT_API_KEY"
]
}
}
}