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.