AI

Connect your agent (MCP)

Connect Claude, Cursor, ChatGPT or any MCP client to a space

Kula runs an MCP server. Connect Claude, Cursor or ChatGPT to a space and ask: "draft a campaign announcing our new pricing to the pro segment", "why did open rates drop last week?". The agent reads your space and prepares drafts. Nothing reaches your contacts until a member of your team approves it in Kula.

MCP is available on every plan, including the free one: your AI tool does the work, so it doesn't count against assistant messages.

Server URL

https://api.kulamail.com/mcp

The server uses OAuth: there's no key to copy. When you add it, your AI tool opens a Kula page where you sign in, pick the space and choose what the agent may do.

Connect

You need the Admin or Owner role on the space. The same instructions are in Settings › AI assistants.

  1. In Claude, open Settings › Connectors and choose Add custom connector.
  2. Name it Kula and paste the server URL.
  3. Claude opens a Kula page: pick the space, choose the permissions and approve.

One connection gives access to one space. To work on several brands, connect once per space.

Permissions

PermissionAllowsDefault
Read the spaceCampaigns, flows, lists, segments and their reports. No contact details.On
Change the spacePrepare drafts of campaigns and emails, create lists and segments.On
Read contactsEmail addresses, names and attributes of your contacts.Off

Read contacts gives the agent personal data. Turn it on only when needed, to look up a customer for example.

There's no permission to send: no agent can send, schedule, activate or publish anything in Kula.

The agent prepares, a human approves

The agent canA member of your team then
Create and edit campaign drafts, then request approvalApproves the campaign to send or schedule it, or rejects it back to draft
Create flows, add and edit their steps, then request activationChecks the flow and activates it
Create and edit transactional templates (the draft version), then request publicationPublishes the draft to production, or discards it
Send a test emailReceives it: test emails only go to members of the account

Each request notifies the members of the account by email and shows up in the dashboard. Content created by an agent is marked as such.

Tools

The agent discovers these tools on its own.

ToolPermissionWhat it does
get_space_overviewReadThe space, its domains and their verification state. Agents start here.
list_lists, get_listReadLists and their subscriber counts
list_segments, get_segmentReadSaved segments
count_segmentReadCounts the contacts matching a segment definition, before saving it
list_campaigns, get_campaignReadCampaigns and their content
get_campaign_reportReadResults of a campaign
list_flows, get_flowReadFlows and their steps
list_templates, get_templateReadTransactional templates
get_deliverability_reportReadResults by inbox provider over the last 30 days
get_space_reputationReadReputation status over the last 7 days
create_list, update_listChangeLists
create_segment, update_segmentChangeSegments
create_campaign_draft, update_campaign_draftChangeCampaign drafts
request_campaign_approvalChangeAsks the team to approve a campaign
create_flow_draft, update_flow, add_flow_step, update_flow_stepChangeFlows that aren't active
request_flow_activationChangeAsks the team to activate a flow
create_template, update_templateChangeDraft version of transactional templates
request_template_publicationChangeAsks the team to publish a template
send_test_emailChangeSends a test to members of the account
search_contacts, get_contactRead contactsFinds contacts and shows their details and activity

Limits

Each connection may make 60 calls per minute and 5,000 per day. Test emails count in your monthly usage like any other email.

Disconnect

Settings › AI assistants › Connected apps lists every app with access to the space and its permissions. Revoke cuts its access at once. A connection that isn't used for 90 days expires on its own.

Assistant

The same abilities inside the dashboard

API reference

Send, schedule and import from your code