Connectors · CRM & sales
Crisp MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Crisp and the rest of your systems. It gives your agent 156 Crisp actions (85 reads, 57 writes and 14 that wait for a confirmation) and holds the Crisp credential itself, so the agent never does. It paces Crisp's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "crisp_chat.connect_websites.list", intent: "check which Crisp account is connected"}# List All Connect Websites · read · 1 upstream call- 156actionsin one signed file
- 85readlook, never change
- 57writecreate and update
- 14wait for a yesdestructive, confirmed first
Set up
Connect Crisp in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Crisp.
Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
identifierCrisp token identifier (Marketplace > your plugin > Tokens for a plugin token)keyCrisp token key, paired with the identifiertierYour Crisp tier
account { op: "connections.requirements", service: "crisp_chat" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "crisp_chat.connect_websites.list" }# list all connect websites · read · 1 upstream callcheck { action: "crisp_chat.conversations.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Crisp at a glance
- Sign-in
- Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
identifierkey- Setup fields
tier- Limits we pace to
- 10 calls a second, per connection
- API covered
- Crisp REST API v1
api.crisp.chat/v1 - Built from
- Crisp's documentation, read 22 October 2026docs.crisp.chat
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 69 of 85 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 5, so ask can line Crisp up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Crisp.
156 actions in 52 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 85readlook, never change
- 57writecreate and update
- 14destructivewait for a confirmation
Conversations
153 read · 10 write · 2 destructive
List Conversations · Create A New Conversation · Get A Conversation · Remove A Conversation
Messages
93 read · 5 write · 1 destructive
Get Messages In Conversation · Send A Message In Conversation · Get A Message In Conversation · Update A Message In Conversation
People
95 read · 3 write · 1 destructive
List People Profiles · Add New People Profile · Get People Profile · Update People Profile
Campaign templates
73 read · 3 write · 1 destructive
Create A New Campaign Template · List Campaign Templates · Check If Campaign Template Exists · Get A Campaign Template
Helpdesk tree
63 read · 2 write · 1 destructive
Create Helpdesk Tree Path · List Helpdesk Tree · Resolve Helpdesk Tree Path · Resolve Helpdesk Tree Page
Helpdesk locales
53 read · 1 write · 1 destructive
Add Helpdesk Locale · List Helpdesk Locales · Check If Helpdesk Locale Exists · Resolve Helpdesk Locale
Helpdesk redirections
53 read · 1 write · 1 destructive
Add Helpdesk Redirection · List Helpdesk Redirections · Check If Helpdesk Redirection Exists · Resolve Helpdesk Redirection
Browsing sessions
41 read · 3 write · 0 destructive
Initiate Browsing Session For Conversation · List Browsing Sessions For Conversation · Assist An Existing Browsing Session · Send Action To An Existing Browsing Session
44 more areas · 96 actions
- Call sessions 4
- Conversation verify 4
- Operators 4
- Plugin subscriptions 4
- Visitors 4
- Connect 3
- Inboxes 3
- People data 3
- Plugin subscription settings 3
- Teams 3
- Websites 3
- Availability 2
- Connect websites 2
- Conversation block 2
- Conversation data keys 2
- Conversation metas 2
- Conversation participants 2
- Conversation routing 2
- Conversation segments 2
- Conversation state 2
- Helpdesk 2
- Helpdesk feedback 2
- Helpdesk pages 2
- Helpdesk settings 2
- Helpdesk tree alternates 2
- Helpdesk tree content 2
- Helpdesk tree metadata 2
- People data keys 2
- People event names 2
- People events 2
- People segments 2
- People subscription 2
- Plugin usage bills 2
- Verify key 2
- Verify settings 2
- Website settings 2
- Analytics 1
- Audit log 1
- Bucket 1
- Conversation events 1
- Conversation files 1
- Conversation pages 1
- Conversation relations 1
- Plan subscriptions 1
Top actions
The Crisp API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 21 of Crisp's 21 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
crisp_chat.operators.listList Website Operators | Lists all operator members of website. | read | identity.user.list474 connectors |
crisp_chat.conversations.listList Conversations | Lists conversations for website. | read | service.conversation.list19 connectors |
crisp_chat.people.listList People Profiles | Lists people profiles for website. | read | crm.contact.list177 connectors |
crisp_chat.inboxes.listList Website Inboxes | Lists all inboxes for website. | read | service.queue.list21 connectors |
crisp_chat.teams.listList Teams | Lists teams for website. | read | identity.group.list262 connectors |
crisp_chat.conversations.createCreate A New Conversation | Creates a new conversation. | write | service.conversation.create13 connectors |
crisp_chat.people.createAdd New People Profile | Adds a new people profile. | write | crm.contact.create161 connectors |
crisp_chat.operators.getGet A Website Operator | Resolves a given website operator. | read | identity.user.get399 connectors |
crisp_chat.people.deleteRemove People Profile | Removes people profile in website. | destructive | crm.contact.delete147 connectors |
crisp_chat.inboxes.getGet Website Inbox | Resolves inbox for website. | read | service.queue.get17 connectors |
crisp_chat.messages.listGet Messages In Conversation | Resolves messages in an existing conversation. | read | comm.message.list42 connectors |
crisp_chat.messages.sendSend A Message In Conversation | Sends a message in an existing conversation. | write | comm.message.create25 connectors |
Try it
Prompts to paste into Claude.
Each one names the Crisp actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Find the Crisp contacts with no email address, so we can clean them up.
calls
crisp_chat.people.list - Writewrite
Create A New Conversation in Crisp. Show me exactly what you will send before you save it.
calls
crisp_chat.conversations.create
Governance for Crisp
Destructive actions wait for a yes.
14 Crisp actions are destructive. These are all of them:
- Remove People Profile
crisp_chat.people.delete - Remove A Conversation
crisp_chat.conversations.delete - Remove A Message In Conversation
crisp_chat.messages.delete - Request Chatbox Binding Purge For Conversation
crisp_chat.conversations.request_purge - Delete Helpdesk Tree Path
crisp_chat.helpdesk_tree.delete - Delete Helpdesk Locale
crisp_chat.helpdesk_locales.delete - Remove A Campaign Template
crisp_chat.campaign_templates.delete - Delete Helpdesk Redirection
crisp_chat.helpdesk_redirections.delete - Delete Suggested People Segment
crisp_chat.people_segments.delete_suggested - Delete Suggested People Data Key
crisp_chat.people_data_keys.delete_suggested - Delete Suggested People Event
crisp_chat.people_event_names.delete_suggested - Delete Suggested Conversation Segment
crisp_chat.conversation_segments.delete_suggested - Delete Suggested Conversation Data Key
crisp_chat.conversation_data_keys.delete_suggested - Abort Ongoing Call Session For Conversation
crisp_chat.call_sessions.abort
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Remove People Profile?
intent: the user asked me to remove People Profile
account { op: "keys.create", name: "crisp-chat-agent", allowed_actions: ["crisp_chat.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "crisp_chat.people.delete", approver: "[email protected]" }, { match: "crisp_chat.conversations.delete", approver: "[email protected]" }, { match: "crisp_chat.messages.delete", approver: "[email protected]" } ]}Cost
What Crisp costs on actionlake.
Every Crisp action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Crisp refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 156 Crisp actions
- 156actions pageeach page of a long list is one call
- 69reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Crisp action.
156 actions by area: the id your agent calls, what it does, and its effect.
Conversations15
crisp_chat.conversations.createCreate A New Conversationwritecrisp_chat.conversations.deleteRemove A Conversationdestructivecrisp_chat.conversations.existsCheck If Conversation Existsreadcrisp_chat.conversations.getGet A Conversationreadcrisp_chat.conversations.initiateInitiate A Conversation With Existing Sessionwritecrisp_chat.conversations.listList Conversationsreadcrisp_chat.conversations.mark_unreadMark Conversation As Unreadwritecrisp_chat.conversations.reportReport Conversationwritecrisp_chat.conversations.request_feedbackRequest User Feedback For Conversationwritecrisp_chat.conversations.request_purgeRequest Chatbox Binding Purge For Conversationdestructivecrisp_chat.conversations.request_tool_callRequest Tool Call For Conversationwritecrisp_chat.conversations.request_transcriptRequest Email Transcript For Conversationwritecrisp_chat.conversations.schedule_reminderSchedule A Reminder For Conversationwritecrisp_chat.conversations.update_inboxUpdate Conversation Inboxwritecrisp_chat.conversations.update_open_stateUpdate Conversation Open Statewrite
Messages9
crisp_chat.messages.composeCompose A Message In Conversationwritecrisp_chat.messages.deleteRemove A Message In Conversationdestructivecrisp_chat.messages.getGet A Message In Conversationreadcrisp_chat.messages.get_originalGet An Original Message In Conversationreadcrisp_chat.messages.listGet Messages In Conversationreadcrisp_chat.messages.mark_deliveredMark Messages As Delivered In Conversationwritecrisp_chat.messages.mark_readMark Messages As Read In Conversationwritecrisp_chat.messages.sendSend A Message In Conversationwritecrisp_chat.messages.updateUpdate A Message In Conversationwrite
People9
crisp_chat.people.createAdd New People Profilewritecrisp_chat.people.deleteRemove People Profiledestructivecrisp_chat.people.existsCheck If People Profile Existsreadcrisp_chat.people.getGet People Profilereadcrisp_chat.people.listList People Profilesreadcrisp_chat.people.list_conversationsList People Conversationsreadcrisp_chat.people.saveSave People Profilewritecrisp_chat.people.statisticsGet People Statisticsreadcrisp_chat.people.updateUpdate People Profilewrite
Campaign templates7
crisp_chat.campaign_templates.createCreate A New Campaign Templatewritecrisp_chat.campaign_templates.deleteRemove A Campaign Templatedestructivecrisp_chat.campaign_templates.existsCheck If Campaign Template Existsreadcrisp_chat.campaign_templates.getGet A Campaign Templatereadcrisp_chat.campaign_templates.listList Campaign Templatesreadcrisp_chat.campaign_templates.saveSave A Campaign Templatewritecrisp_chat.campaign_templates.updateUpdate A Campaign Templatewrite
Helpdesk tree6
crisp_chat.helpdesk_tree.createCreate Helpdesk Tree Pathwritecrisp_chat.helpdesk_tree.deleteDelete Helpdesk Tree Pathdestructivecrisp_chat.helpdesk_tree.getResolve Helpdesk Tree Pathreadcrisp_chat.helpdesk_tree.get_pageResolve Helpdesk Tree Pagereadcrisp_chat.helpdesk_tree.listList Helpdesk Treereadcrisp_chat.helpdesk_tree.updateUpdate Helpdesk Tree Pathwrite
Helpdesk locales5
crisp_chat.helpdesk_locales.createAdd Helpdesk Localewritecrisp_chat.helpdesk_locales.deleteDelete Helpdesk Localedestructivecrisp_chat.helpdesk_locales.existsCheck If Helpdesk Locale Existsreadcrisp_chat.helpdesk_locales.getResolve Helpdesk Localereadcrisp_chat.helpdesk_locales.listList Helpdesk Localesread
Helpdesk redirections5
crisp_chat.helpdesk_redirections.createAdd Helpdesk Redirectionwritecrisp_chat.helpdesk_redirections.deleteDelete Helpdesk Redirectiondestructivecrisp_chat.helpdesk_redirections.existsCheck If Helpdesk Redirection Existsreadcrisp_chat.helpdesk_redirections.getResolve Helpdesk Redirectionreadcrisp_chat.helpdesk_redirections.listList Helpdesk Redirectionsread
Browsing sessions4
crisp_chat.browsing_sessions.assistAssist An Existing Browsing Sessionwritecrisp_chat.browsing_sessions.initiateInitiate Browsing Session For Conversationwritecrisp_chat.browsing_sessions.listList Browsing Sessions For Conversationreadcrisp_chat.browsing_sessions.send_actionSend Action To An Existing Browsing Sessionwrite
Call sessions4
crisp_chat.call_sessions.abortAbort Ongoing Call Session For Conversationdestructivecrisp_chat.call_sessions.getGet Ongoing Call Session For Conversationreadcrisp_chat.call_sessions.initiateInitiate New Call Session For Conversationwritecrisp_chat.call_sessions.transmit_signalingTransmit Signaling On Ongoing Call Sessionwrite
Conversation verify4
crisp_chat.conversation_verify.getGet Verify Status For Conversationreadcrisp_chat.conversation_verify.redeem_identity_linkRedeem Identity Verification Link For Conversationwritecrisp_chat.conversation_verify.request_identityRequest Identity Verification For Conversationwritecrisp_chat.conversation_verify.updateUpdate Verify Status For Conversationwrite
Operators4
crisp_chat.operators.getGet A Website Operatorreadcrisp_chat.operators.listList Website Operatorsreadcrisp_chat.operators.list_activeList Last Active Website Operatorsreadcrisp_chat.operators.send_emailSend Email To Website Operatorswrite
Plugin subscriptions4
crisp_chat.plugin_subscriptions.attest_provenanceGet Plugin Attest Provenancereadcrisp_chat.plugin_subscriptions.dispatch_eventDispatch Plugin Eventwritecrisp_chat.plugin_subscriptions.forward_to_channelForward Plugin Payload To Channelwritecrisp_chat.plugin_subscriptions.getGet Subscription Detailsread
Visitors4
crisp_chat.visitors.countCount Visitorsreadcrisp_chat.visitors.listList Visitorsreadcrisp_chat.visitors.mapPinpoint Visitors On A Mapreadcrisp_chat.visitors.session_from_tokenGet Session Identifier From Tokenread
Connect3
crisp_chat.connect.accountGet Connect Accountreadcrisp_chat.connect.endpointsGet Connect Endpointsreadcrisp_chat.connect.session_validCheck Connect Session Validityread
Inboxes3
crisp_chat.inboxes.existsCheck If Website Inbox Existsreadcrisp_chat.inboxes.getGet Website Inboxreadcrisp_chat.inboxes.listList Website Inboxesread
People data3
crisp_chat.people_data.getGet People Datareadcrisp_chat.people_data.saveSave People Datawritecrisp_chat.people_data.updateUpdate People Datawrite
Plugin subscription settings3
crisp_chat.plugin_subscription_settings.getGet Subscription Settingsreadcrisp_chat.plugin_subscription_settings.saveSave Subscription Settingswritecrisp_chat.plugin_subscription_settings.updateUpdate Subscription Settingswrite
Teams3
crisp_chat.teams.existsCheck If Team Existsreadcrisp_chat.teams.getGet A Teamreadcrisp_chat.teams.listList Teamsread
Websites3
crisp_chat.websites.connect_endpointsGet Website Connect Endpointsreadcrisp_chat.websites.existsCheck If Website Existsreadcrisp_chat.websites.getGet A Websiteread
Availability2
crisp_chat.availability.getGet Website Availability Statusreadcrisp_chat.availability.list_operatorsList Website Operator Availabilitiesread
Connect websites2
crisp_chat.connect_websites.listList All Connect Websitesreadcrisp_chat.connect_websites.list_sinceList Connect Websites Sinceread
Conversation block2
crisp_chat.conversation_block.getGet Block Status For Conversationreadcrisp_chat.conversation_block.updateBlock Incoming Messages For Conversationwrite
Conversation data keys2
crisp_chat.conversation_data_keys.delete_suggestedDelete Suggested Conversation Data Keydestructivecrisp_chat.conversation_data_keys.list_suggestedList Suggested Conversation Data Keysread
Conversation metas2
crisp_chat.conversation_metas.getGet Conversation Metasreadcrisp_chat.conversation_metas.updateUpdate Conversation Metaswrite
Conversation participants2
crisp_chat.conversation_participants.getGet Conversation Participantsreadcrisp_chat.conversation_participants.saveSave Conversation Participantswrite
Conversation routing2
crisp_chat.conversation_routing.assignAssign Conversation Routingwritecrisp_chat.conversation_routing.getGet Conversation Routing Assignread
Conversation segments2
crisp_chat.conversation_segments.delete_suggestedDelete Suggested Conversation Segmentdestructivecrisp_chat.conversation_segments.list_suggestedList Suggested Conversation Segmentsread
Conversation state2
crisp_chat.conversation_state.getGet Conversation Statereadcrisp_chat.conversation_state.updateChange Conversation Statewrite
Helpdesk2
crisp_chat.helpdesk.existsCheck If Helpdesk Existsreadcrisp_chat.helpdesk.getResolve Helpdeskread
Helpdesk feedback2
crisp_chat.helpdesk_feedback.listList Helpdesk Locale Feedbacksreadcrisp_chat.helpdesk_feedback.ratingsMap Helpdesk Locale Feedback Ratingsread
Helpdesk pages2
crisp_chat.helpdesk_pages.get_entityResolve Helpdesk Page Entityreadcrisp_chat.helpdesk_pages.listList Helpdesk Pagesread
Helpdesk settings2
crisp_chat.helpdesk_settings.getResolve Helpdesk Settingsreadcrisp_chat.helpdesk_settings.updateSave Helpdesk Settingswrite
Helpdesk tree alternates2
crisp_chat.helpdesk_tree_alternates.listList Helpdesk Tree Alternatesreadcrisp_chat.helpdesk_tree_alternates.updateUpdate Helpdesk Tree Alternateswrite
Helpdesk tree content2
crisp_chat.helpdesk_tree_content.getResolve Helpdesk Tree Contentreadcrisp_chat.helpdesk_tree_content.saveSave Helpdesk Tree Contentwrite
Helpdesk tree metadata2
crisp_chat.helpdesk_tree_metadata.getResolve Helpdesk Tree Metadatareadcrisp_chat.helpdesk_tree_metadata.updateUpdate Helpdesk Tree Metadatawrite
People data keys2
crisp_chat.people_data_keys.delete_suggestedDelete Suggested People Data Keydestructivecrisp_chat.people_data_keys.list_suggestedList Suggested People Data Keysread
People event names2
crisp_chat.people_event_names.delete_suggestedDelete Suggested People Eventdestructivecrisp_chat.people_event_names.list_suggestedList Suggested People Eventsread
People events2
crisp_chat.people_events.createAdd A People Eventwritecrisp_chat.people_events.listList People Eventsread
People segments2
crisp_chat.people_segments.delete_suggestedDelete Suggested People Segmentdestructivecrisp_chat.people_segments.list_suggestedList Suggested People Segmentsread
People subscription2
crisp_chat.people_subscription.getGet People Subscription Statusreadcrisp_chat.people_subscription.updateUpdate People Subscription Statuswrite
Plugin usage bills2
crisp_chat.plugin_usage_bills.listGet Plugin Usage Billsreadcrisp_chat.plugin_usage_bills.reportReport Plugin Usage To Billwrite
Verify key2
crisp_chat.verify_key.getGet Verify Keyreadcrisp_chat.verify_key.rollRoll Verify Keywrite
Verify settings2
crisp_chat.verify_settings.getGet Verify Settingsreadcrisp_chat.verify_settings.updateUpdate Verify Settingswrite
Website settings2
crisp_chat.website_settings.getGet Website Settingsreadcrisp_chat.website_settings.updateUpdate Website Settingswrite
Analytics1
crisp_chat.analytics.generateGenerate Analyticsread
Audit log1
crisp_chat.audit_log.createCreate Audit Logwrite
Bucket1
crisp_chat.bucket.generate_urlGenerate Bucket URLwrite
Conversation events1
crisp_chat.conversation_events.listList Conversation Eventsread
Conversation files1
crisp_chat.conversation_files.listList Conversation Filesread
Conversation pages1
crisp_chat.conversation_pages.listList Conversation Pagesread
Conversation relations1
crisp_chat.conversation_relations.getGet Conversation Relationsread
Plan subscriptions1
crisp_chat.plan_subscriptions.getGet Plan Subscription For A Websiteread
Questions
The Crisp MCP server, answered.
Is there a Crisp MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 156 Crisp actions across conversations, messages, people and campaign templates, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Crisp.
What do I need to connect Crisp?
Crisp token identifier (Marketplace > your plugin > Tokens for a plugin token) and Crisp token key, paired with the identifier. Plus your tier. The free call account { op: "connections.requirements", service: "crisp_chat" } lists exactly what to paste.
Can an AI agent delete or change things in Crisp?
Only if its key allows it, and only with an explicit confirmation. 14 Crisp actions are destructive, including remove People Profile, remove A Conversation and remove A Message In Conversation. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Crisp API limit?
actionlake paces every call to the limits in the Crisp service file: 10 calls a second per connection. Repeated reads are answered from cache (69 Crisp actions can be), which never reaches Crisp.
What does a Crisp action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (156 Crisp actions page). Cache hits, searches, dry runs and calls Crisp refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Crisp API does it cover?
The Crisp REST API v1 at api.crisp.chat/v1. It is built from Crisp's documentation as read on 22 October 2026. 156 actions in 52 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Crisp data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Crisp credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Crisp today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.