Marketo 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.

Category
Visit Server

Tools

marketo_get_forms

marketo_approve_form

marketo_clone_form

marketo_get_form_by_id

README

Marketo MCP Server

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

Prerequisites

  • Node.js (v14 or higher)
  • Marketo API credentials (Client ID and Client Secret)
  • A Marketo instance with API access enabled
  • Claude Desktop installed

Getting Started

1. Obtain Marketo API Credentials

  1. Log into your Marketo admin panel
  2. Navigate to Admin > Integration > LaunchPoint
  3. Click New > New Service
  4. Fill in the service details:
    • Service: Custom
    • Display Name: (e.g., "MCP Server")
  5. Save the provided Client ID and Client Secret

2. Configure Environment Variables

  1. Create a .env file in the root directory:
# Your Marketo instance URL (required)
# Example: https://123-ABC-456.mktorest.com/rest
MARKETO_BASE_URL=your-marketo-instance-url

# Your API credentials (required)
MARKETO_CLIENT_ID=your-client-id
MARKETO_CLIENT_SECRET=your-client-secret

3. Installation and Setup

# Install dependencies
npm install

# Build the project
npm run build

# The build process will output configuration settings in your console
# Copy these settings into your Claude Desktop developer configuration

4. Claude Desktop Configuration

  1. Open Claude Desktop
  2. Go to Developer Settings
  3. Paste the configuration settings that were output during the build process
  4. Save the configuration
  5. Restart Claude Desktop

Available Tools

Get Forms List

marketo_get_forms({
  maxReturn: 200,  // optional, default: 200
  offset: 0,       // optional, default: 0
  status: 'draft'  // optional, 'draft' or 'approved'
})

Get Form by ID

marketo_get_form_by_id({
  formId: 1234
})

Clone Form

marketo_clone_form({
  formId: 1234,           // ID of form to clone
  name: "New Form Name",  // Name for the cloned form
  description: "Form description",  // optional
  folderId: 5678         // optional, destination folder ID
})

Approve Form

marketo_approve_form({
  formId: 1234,
  comment: "Approved by MCP server"  // optional
})

Error Handling

Common error scenarios and solutions:

  1. Authentication Errors

    • Verify your Client ID and Client Secret are correct
    • Check that your API access is enabled in Marketo
    • Ensure your instance URL is correct
  2. Permission Errors

    • Verify your API user has sufficient permissions
    • Check folder access permissions for form operations
  3. Rate Limiting

    • The server automatically handles token refresh
    • Consider implementing retry logic for rate-limited requests

Best Practices

  1. Environment Management

    • Never commit .env files to version control
    • Use different credentials for development and production
    • Regularly rotate your API credentials
  2. Security

    • Store credentials securely
    • Use environment variables for sensitive data
    • Monitor API access logs
  3. Performance

    • Cache form data when appropriate
    • Use pagination for large form lists
    • Handle rate limits appropriately

Development

Project Structure

├── src/
│   ├── index.ts        # Server entry point
│   ├── auth.ts         # Token management
│   └── constants.ts    # Configuration
├── .env                # Environment variables (not in git)
├── .env.example        # Example environment file
└── .gitignore         # Git ignore rules

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Support

For issues and questions:

  1. Check the Marketo REST API documentation
  2. Review common error scenarios above
  3. Submit an issue in the repository

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured