Skip to main content
Glama
alexleventer

Marketo MCP Server

by alexleventer

Marketo MCP Server

Сервер Model Context Protocol для Adobe Marketo Engage. Предоставьте Claude Desktop, Cursor и другим MCP-совместимым клиентам прямой аутентифицированный доступ к REST API Marketo — читайте и изменяйте формы, смарт-списки, каналы, лиды, активности и списки с помощью естественного языка.

npm version License: ISC

Зачем это нужно

Команды маркетинговых операций, роста и RevOps тратят часы на клики по интерфейсу Marketo, чтобы клонировать форму, утвердить активы, найти лид или проверить смарт-список. Marketo MCP Server подключает те же операции REST API к LLM-агенту, чтобы вы могли сказать:

  • "Клонируй форму 1234 в папку Q2 Webinars и утверди её."

  • "Покажи мне недавние активности для лида alex@example.com."

  • "Создай новый email-канал под названием 'Lifecycle Nurture'."

…и модель выполнит реальные вызовы API Marketo от вашего имени.

Related MCP server: Dynamic Form MCP

Содержание

Возможности

  • Управление формами — перечисление, просмотр, клонирование и утверждение форм через Asset API Marketo

  • Операции со смарт-списками — перечисление и просмотр смарт-списков

  • CRUD каналов — создание, чтение, обновление и удаление каналов

  • База данных лидов — получение лидов по ID или email, массовое создание или обновление лидов, удаление лидов

  • Журналы активностей и изменений — получение активностей и истории изменений полей для любого лида

  • Членство в списках — добавление или удаление лидов из статических списков

  • Управление программами — перечисление, просмотр, клонирование программ и получение участников программ

  • Email-операции — перечисление, просмотр и отправка тестовых писем для контроля качества

  • Автоматическая аутентификация — поток OAuth 2.0 client-credentials с кэшированием и обновлением токенов

  • Транспорт Stdio — работает «из коробки» с Claude Desktop, Cursor и любым MCP-клиентом, поддерживающим stdio

Быстрый старт

Вариант А — Smithery (рекомендуется)

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

Следуйте инструкциям, чтобы вставить базовый URL Marketo, ID клиента и секрет клиента.

Вариант Б — npx (без установки)

Добавьте следующее в конфигурацию вашего MCP-клиента (например, 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"
      }
    }
  }
}

Вариант В — из исходного кода

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

Скопируйте блок конфигурации, выведенный при сборке, в ваш MCP-клиент.

Предварительные требования

  • Node.js 18 или выше

  • Учетные данные API Marketo (ID клиента и секрет клиента из службы LaunchPoint)

  • Экземпляр Marketo с включенным доступом к REST API

  • MCP-совместимый клиентClaude Desktop, Cursor, Cline или любой другой

Получение учетных данных API Marketo

  1. Войдите в панель администратора Marketo

  2. Admin → Integration → LaunchPoint

  3. New → New Service, установите тип службы на Custom и выберите отображаемое имя (например, MCP Server)

  4. Назначьте пользователя только для API с необходимыми разрешениями (Read-Only Assets, Read-Write Lead и т.д.)

  5. Сохраните Client ID и Client Secret

  6. Ваш базовый URL находится в разделе Admin → Integration → Web Services → REST API Endpoint (удалите /rest/v1/* — оставьте только https://<munchkin>.mktorest.com/rest)

Конфигурация

Вся конфигурация осуществляется через переменные окружения:

Переменная

Обязательно

Описание

MARKETO_BASE_URL

да

Ваш REST endpoint, например https://123-ABC-456.mktorest.com/rest

MARKETO_CLIENT_ID

да

ID клиента службы LaunchPoint

MARKETO_CLIENT_SECRET

да

Секрет клиента службы LaunchPoint

Скопируйте .env.example в .env для локальной разработки.

Доступные инструменты

Инструмент

Описание

marketo_get_forms

Перечисление форм (фильтрация по `status: draft

approved, пагинация через maxReturn/offset`)

marketo_get_form_by_id

Получение одной формы по ID

marketo_clone_form

Клонирование формы в целевую папку

marketo_approve_form

Утверждение черновика формы

marketo_get_smart_lists

Перечисление смарт-списков

marketo_get_smart_list_by_id

Получение смарт-списка по ID

marketo_get_channels

Перечисление каналов

marketo_get_channel_by_id

Получение канала по ID

marketo_create_channel

Создание нового канала

marketo_update_channel

Обновление существующего канала

marketo_delete_channel

Удаление канала

marketo_get_lead_by_id

Получение лида по числовому ID

marketo_get_lead_by_email

Поиск лида по email-адресу (фильтр API)

marketo_create_or_update_lead

Массовое создание или обновление лидов (макс. 300 за вызов)

marketo_delete_lead

Удаление лида

marketo_get_lead_activities

Получение активностей для лида (с пагинацией)

marketo_get_lead_changes

Получение истории изменений полей для лида

marketo_get_lead_lists

Получение списков, к которым принадлежит лид

marketo_add_lead_to_list

Добавление лидов в статический список

marketo_remove_lead_from_list

Удаление лидов из статического списка

marketo_get_programs

Перечисление программ (фильтрация по типу, папке, тегу или диапазону дат)

marketo_get_program_by_id

Получение программы по ID

marketo_clone_program

Клонирование программы и всех её локальных активов в папку

marketo_get_program_members

Получение лидов, являющихся участниками программы

marketo_get_emails

Перечисление писем (фильтрация по статусу)

marketo_get_email_by_id

Получение письма по ID

marketo_send_sample_email

Отправка тестового/предварительного письма для контроля качества

Каждый инструмент принимает типизированные аргументы, проверяемые с помощью zod, и возвращает необработанный JSON-ответ Marketo. См. справочник Adobe Marketo REST API для получения подробной информации на уровне полей.

Использование с Claude Desktop

  1. Установите Claude Desktop

  2. Откройте конфигурацию по пути ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows)

  3. Вставьте блок mcpServers из раздела Быстрый старт

  4. Перезапустите Claude Desktop

Использование с Cursor / другими MCP-клиентами

Любой MCP-клиент, поддерживающий stdio-серверы, будет работать. Укажите путь к собранному бинарному файлу:

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

Ограничения скорости

Marketo устанавливает несколько ограничений скорости API. Учитывайте их при выполнении пакетных операций:

Ограничение

Значение

Краткосрочное

100 вызовов за 20 секунд на экземпляр

Ежедневное

50 000 вызовов в день

Параллельное

10 одновременных соединений

Массовый импорт

10 МБ на файл, 10 одновременных заданий

Массовый экспорт

500 МБ в день, 2 одновременных задания

Если вы получили ошибку 606 Max rate limit reached, подождите 20 секунд перед повторной попыткой. REST API Marketo в некоторых случаях возвращает заголовок Retry-After.

Устранение неполадок

Симптом

Вероятная причина

Failed to authenticate with Marketo

Неверный ID/секрет клиента или REST API не включен для пользователя LaunchPoint

403 Access Denied

У пользователя только для API нет роли для этого endpoint (например, Asset API против Lead Database API)

606 Max rate limit reached

Marketo ограничивает до 100 вызовов / 20с / экземпляр — используйте пакетные вызовы и добавляйте задержки

610 Requested resource not found

Папка/форма/ID лида не существуют или находятся в другом рабочем пространстве

Аутентификация работает, но запросы зависают

Проверьте, что MARKETO_BASE_URL не имеет косой черты в конце и заканчивается на /rest

Вы можете проверить вызовы инструментов локально с помощью инспектора MCP:

npm run inspector

Разработка

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/

Вклад в проект

Сообщения об ошибках и пулл-реквесты приветствуются на github.com/alexleventer/marketo-mcp.

  1. Сделайте форк репозитория

  2. Создайте ветку для функции

  3. npm run lint && npm run typecheck

  4. Откройте PR

Лицензия

ISC — см. LICENSE.


Ключевые слова: marketo mcp server, marketo model context protocol, marketo claude, marketo ai, adobe marketo mcp, marketo api claude desktop, marketo automation llm, marketo engage mcp

F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables interaction with the Tradovate API for managing trading contracts, positions, orders, and accounts.
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A server that implements the Model Context Protocol for managing dynamic forms, allowing users to create, retrieve, and handle responses for web forms via the @dynamicfrm/js library.
    4

View all related MCP servers

Related MCP Connectors

  • A Model Context Protocol server for Wix AI tools

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP Spec Compliance MCP — audits any MCP server.json against the official Model Context Protocol

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexleventer/marketo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server