Omnisend MCP Server logo

Omnisend MCP Server

by plutzilla

An MCP server that integrates with the Omnisend API V5, written in TypeScript. It allows AI assistants and other MCP clients to interact with Omnisend data.

View on GitHub

Last updated: N/A

Omnisend MCP Server

A Model Context Protocol (MCP) server that integrates with Omnisend API V5, written in TypeScript.

Version: 2.2.0

<a href="https://glama.ai/mcp/servers/@plutzilla/omnisend-mcp"> <img width="380" src="https://glama.ai/mcp/servers/@plutzilla/omnisend-mcp/badge" alt="Omnisend Server MCP server" /> </a>

Features

  • Contact management (list, create, get, update)
  • Product management (list, create, get, replace, delete)
  • Event tracking
  • Product categories management
  • Cursor-based pagination support with next/previous URLs and limit/offset information

Changes in Version 2.2.0

  • Refactored codebase to a more modular structure
  • Implemented domain-specific modules (contacts, products, categories, events)
  • Organized code into logical directories (/types, /filters, /api-resources, /resources, /tools)
  • Made server version dynamic in the ping tool
  • Added better error handling in API requests
  • Improved code maintainability with barrel exports
  • Removed redundant and duplicate code

Changes in Version 2.1.0

  • Updated to @modelcontextprotocol/sdk v1.11.0
  • Improved error handling throughout the application
  • Enhanced API stability with better error messages
  • Added request timeout configuration to prevent hanging connections
  • Fixed SSE connection issues with MCP Inspector
  • Optimized console output to be compatible with MCP clients
  • Added cursor-based pagination context in MCP responses (next/previous URLs, limit/offset)

Changes in Version 2.0.0

  • Migrated entire codebase to TypeScript
  • Updated MCP resource structure according to latest specification
  • Added proper type declarations for all API responses and requests
  • Improved error handling with typed exceptions
  • Enhanced code organization and maintainability

Installation

npm install

Building

To compile TypeScript code:

npm run build

Running in Development Mode

For development with auto-reloading:

npm run dev

Configuration

Create a .env file in the root directory with your Omnisend API key:

OMNISEND_API_KEY=your_api_key_here
OMNISEND_API_URL=https://api.omnisend.com/v5

Usage

To start the MCP server:

npm start

Interacting with the MCP Server

The MCP server is designed to be used with clients that understand the Model Context Protocol. Here are ways to interact with it:

VS Code Integration

For use with VS Code, a configuration file is provided in .vscode/mcp.json. VS Code with the appropriate MCP extension can communicate with this server.

AI Assistants

AI assistants like Claude that support MCP can communicate with this server to access Omnisend data and perform operations.

Using with Claude Desktop

To use this MCP server with Claude Desktop:

  1. Download and install Claude Desktop from the official website.

  2. Make sure you have Node.js installed on your system. You can verify by running:

    node --version
    

    If Node.js is not installed, download it from nodejs.org.

  3. Open the Claude menu on your computer and select "Settings..."

  4. Click on "Developer" in the left-hand bar of the Settings pane, and then click on "Edit Config"

  5. This will open your Claude Desktop configuration file. Replace the file contents with or add the following configuration:

    {
      "mcpServers": {
        "omnisend": {
          "command": "node",
          "args": [
            "/path/to/dist/index.js"
          ],
          "env": {
            "OMNISEND_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    

    Make sure to replace your_api_key_here with your actual Omnisend API key.

  6. Save the configuration file and restart Claude Desktop.

  7. After restarting, you should see a hammer icon in the bottom right corner of the input box.

  8. Click on the hammer icon to see the available Omnisend tools.

  9. You can now ask Claude to perform operations such as:

    • "List my recent contacts in Omnisend"
    • "Create a new product in my Omnisend catalog"
    • "Send a customer event to Omnisend"

Custom MCP Clients

You can develop custom clients using the @modelcontextprotocol/sdk library:

import { McpClient } from '@modelcontextprotocol/sdk/client/mcp';
import { ProcessClientTransport } from '@modelcontextprotocol/sdk/client/process';

const transport = new ProcessClientTransport(serverProcess);
const client = new McpClient(transport);

// Connect to the server
await client.connect();

// Execute tools
const result = await client.executeTool("listContacts", { limit: 10 });

API Documentation

For more information about the Omnisend API, see the official documentation.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.