Skip to main content

Klaviyo MCP Server community fork adding template listing, campaign cloning, template cloning, and campaign-message template traversal tools

Project description

klaviyo-mcp-server-extended

A community fork of Klaviyo's official klaviyo-mcp-server (v0.4.1) adding missing campaign/template traversal tools plus universal content support that the official server does not expose.

This is an unofficial, unsupported patch. It layers the missing tools onto the official code without changing any existing behavior — everything that works in the official server continues to work identically here.

Why this exists

As of April 2026, the official Klaviyo MCP server (v0.4.1) does not expose tools to:

  1. List email templates (only fetch by known ID)
  2. Traverse from a campaign or campaign message to its associated template
  3. Clone a campaign or a template

These gaps make it impossible to clone an email campaign end-to-end through the MCP server or safely manage Klaviyo's newer reusable universal content blocks, even though the underlying REST API fully supports all of these operations and the bundled klaviyo-api Python SDK already has the methods wired up. This fork simply exposes them.

Tools added

These tools are thin wrappers around methods that already exist in the official klaviyo-api SDK. They follow the same style conventions as the surrounding code (@mcp_tool, get_klaviyo_client(), clean_result()).

Tool Writes? REST endpoint
klaviyo_get_email_templates no GET /api/templates
klaviyo_clone_email_template yes POST /api/template-clone
klaviyo_get_messages_for_campaign no GET /api/campaigns/{id}/campaign-messages
klaviyo_get_template_for_campaign_message no GET /api/campaign-messages/{id}/template
klaviyo_get_template_id_for_campaign_message no GET /api/campaign-messages/{id}/relationships/template
klaviyo_clone_campaign yes POST /api/campaign-clone
klaviyo_get_universal_content_blocks no GET /api/template-universal-content
klaviyo_get_universal_content_block no GET /api/template-universal-content/{id}
klaviyo_create_universal_content_block yes POST /api/template-universal-content
klaviyo_update_universal_content_block yes PATCH /api/template-universal-content/{id}
klaviyo_delete_universal_content_block yes DELETE /api/template-universal-content/{id}
klaviyo_get_universal_content_block_html no GET /api/template-universal-content/{id}
klaviyo_get_universal_content_blocks_for_template no derived from template HTML + definition scan
klaviyo_get_universal_content_blocks_for_campaign no derived from campaign messages -> template traversal
klaviyo_get_templates_using_universal_content_block no derived reverse relationship scan
klaviyo_get_campaigns_using_universal_content_block no derived reverse relationship scan

All other tools from the official server are preserved unchanged.

Universal content workflow

For Klaviyo's newer reusable template blocks:

  1. discover blocks with klaviyo_get_universal_content_blocks
  2. inspect a block with klaviyo_get_universal_content_block
  3. create or update reusable blocks with the universal content write tools
  4. embed the returned block ID into template HTML with:
<div data-klaviyo-universal-block="block_id">&nbsp;<div>

Warning: updating or deleting a universal content block affects every template that uses it.

Relationship helpers are also available:

  • template -> universal content blocks
  • campaign -> universal content blocks
  • universal content block -> templates using it
  • universal content block -> campaigns using it

Authentication

Identical to the official local server: private API key via the PRIVATE_API_KEY environment variable. This fork does not provide OAuth or any remote hosting — OAuth is Klaviyo's own gateway at https://mcp.klaviyo.com/mcp and is not part of the open-source package.

The private API key needs the same scopes as the official server. For the new tools specifically:

  • templates:read — for get_email_templates, get_template_for_campaign_message, get_universal_content_blocks, get_universal_content_block, get_universal_content_block_html
  • templates:write — for clone_email_template, create_universal_content_block, update_universal_content_block, delete_universal_content_block
  • campaigns:read — for get_messages_for_campaign, get_template_id_for_campaign_message
  • campaigns:write — for clone_campaign

The full recommended scope set from Klaviyo's docs already covers all of these.

Installation

From PyPI

After this package is published, install and run the fork with:

uvx --from klaviyo-mcp-server-extended klaviyo-mcp-server

Pin the release version for reproducible MCP client configs:

uvx --from klaviyo-mcp-server-extended==0.4.2 klaviyo-mcp-server

From a local wheel

Build the wheel first:

uv build

Then run the generated wheel from dist/:

uvx --from ./dist/klaviyo_mcp_server_extended-0.4.2-py3-none-any.whl klaviyo-mcp-server

MCP client config (Claude Desktop, Cursor, VS Code)

Replace the official uvx klaviyo-mcp-server@latest invocation with uvx --from klaviyo-mcp-server-extended==0.4.2 klaviyo-mcp-server. For example, in Claude Desktop:

{
  "mcpServers": {
    "klaviyo": {
      "command": "uvx",
      "args": [
        "--from",
        "klaviyo-mcp-server-extended==0.4.2",
        "klaviyo-mcp-server"
      ],
      "env": {
        "PRIVATE_API_KEY": "YOUR_API_KEY",
        "READ_ONLY": "false",
        "ALLOW_USER_GENERATED_CONTENT": "false"
      }
    }
  }
}

The entry point command (klaviyo-mcp-server) is unchanged, so no downstream agent code needs to change — only the --from package is new.

Verifying the fork loaded

After restarting your MCP client, your tool list should include the six new tools alongside the existing ones. In Claude Desktop, click Search and tools → klaviyo to confirm.

Upstream relationship

  • Based on klaviyo-mcp-server==0.4.1 from PyPI (published 2026-03-05)
  • Version 0.4.2, based on the upstream 0.4.1 base plus the six added tools
  • No changes to existing tools, models, utilities, prompts, or scripts
  • The added tools are the only diff

If Klaviyo eventually ships equivalent tools upstream, uninstall this fork and revert to the official klaviyo-mcp-server@latest.

License

MIT, matching the upstream package. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

klaviyo_mcp_server_extended-0.4.5.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

klaviyo_mcp_server_extended-0.4.5-py3-none-any.whl (53.2 kB view details)

Uploaded Python 3

File details

Details for the file klaviyo_mcp_server_extended-0.4.5.tar.gz.

File metadata

File hashes

Hashes for klaviyo_mcp_server_extended-0.4.5.tar.gz
Algorithm Hash digest
SHA256 6736aeae78f944c5b727b82fdf6ac2dd947369d974b4312ea5789ef4e57b1895
MD5 6e19f76a9899387bf51f266da54cb7d8
BLAKE2b-256 199cb5d4ed883feec33dc40191f3182920a0e0ae59a995f7729f57a51e03da36

See more details on using hashes here.

Provenance

The following attestation bundles were made for klaviyo_mcp_server_extended-0.4.5.tar.gz:

Publisher: publish.yaml on MissionSquad/mcp-klaviyo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file klaviyo_mcp_server_extended-0.4.5-py3-none-any.whl.

File metadata

File hashes

Hashes for klaviyo_mcp_server_extended-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5e999cf3307e3934a120ee71dccc57d96f2c40450c7c788f04ff5f9ecb0a6a13
MD5 baf5dc952d6a5cf09b9b0aef79c7b28f
BLAKE2b-256 0c5e2bd1d6b79e5eb5c184e3f87c856c9edeccb02299a3a4135e719fa7896224

See more details on using hashes here.

Provenance

The following attestation bundles were made for klaviyo_mcp_server_extended-0.4.5-py3-none-any.whl:

Publisher: publish.yaml on MissionSquad/mcp-klaviyo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page