Help

Connect external services and AI agents to the CRM over MCP.

MCP integration
The API exposes the whole CRM as a Model Context Protocol server (Streamable HTTP, stateless), so agents and services can search records, manage contacts, companies, deals and lists, enroll objects in workflows, and send emails — with the same business rules the admin UI enforces.

Endpoint

POST https://api-zenia.pioneerfinance.co.nz/api/mcp

Authentication

Every request needs an Authorization: Bearer header carrying either a service API key (configured via the MCP_API_KEYS environment variable on the API service — comma-separated to allow several) or a staff login JWT. Requests without a valid credential are rejected with 401.

Client setup
Works with any MCP client that supports the Streamable HTTP transport.

Claude Code

claude mcp add --transport http crm https://api-zenia.pioneerfinance.co.nz/api/mcp \
  --header "Authorization: Bearer <your-api-key>"

Generic JSON config (Claude Desktop, Cursor, …)

{
  "mcpServers": {
    "crm": {
      "type": "http",
      "url": "https://api-zenia.pioneerfinance.co.nz/api/mcp",
      "headers": { "Authorization": "Bearer <your-api-key>" }
    }
  }
}

Everything in the CRM is scoped to a brand: clients should call list_brands first and pass the returned brandId to the other tools. Deals are additionally scoped to a product (list_products).

Available tools
Fetched live from the MCP endpoint, so this list is always current. Tool calls run through the same services as this UI — deduplication, lifecycle rules, suppressions and send-approval gates all apply. Destructive operations are soft-deletes.