marketo-mcp

alexleventer/marketo-mcp

3.3

If you are the rightful owner of marketo-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol server for interacting with the Marketo API, providing tools for managing Marketo forms.

Tools
  1. marketo_get_forms

    Retrieve a list of forms with optional parameters for max return, offset, and status.

  2. marketo_get_form_by_id

    Fetch a specific form by its ID.

  3. marketo_clone_form

    Clone an existing form with options for name, description, and destination folder.

  4. marketo_approve_form

    Approve a form with an optional comment.

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.

smithery badge

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

You can run MCP inspector against this server with the following command: npx @modelcontextprotocol/inspector node build/index.js

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