Customer Io

liveReference

Customer.io lifecycle marketing: list campaigns and pull per-campaign delivery/engagement metrics, list audience segments, and list message deliveries with recipient, channel, and engagement (opened/clicked/converted/bounced) detail.

4tools
0msauth
free tier50 calls/day

Tools

cio_list_campaigns

Return Customer.io lifecycle campaigns with IDs, names, state, trigger configuration, actions, tags, and timestamps. Answers which automations exist and whether they are running, drafted, or stopped.

No parameters required.

▶Try it
cio_campaign_metrics

Return time-bucketed Customer.io delivery, bounce, open, click, unsubscribe, and conversion metrics for one campaign. Answers how a lifecycle campaign performed and when engagement changed.

No parameters required.

▶Try it
cio_list_segments

Return Customer.io audience segments with IDs, names, descriptions, dynamic or manual type, build progress, tags, and timestamps. Answers which audiences are available for targeting or analysis.

No parameters required.

▶Try it
cio_list_messages

Return a bounded page of Customer.io message deliveries with recipients, channel, campaign or newsletter parent, and delivery engagement timestamps. Answers which messages reached, bounced, opened, cl

No parameters required.

▶Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/customer-io/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/customer-io/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"cio_list_campaigns","arguments":{}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("cio_list_campaigns", {});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("customer");