Connectors · MSP & PSA
3CX MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to 3CX and the rest of your systems. It gives your agent 576 3CX actions (294 reads, 192 writes and 90 that wait for a confirmation) and holds the 3CX credential itself, so the agent never does. It paces 3CX'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: "three_cx.users.list", intent: "check which 3CX account is connected"}# List Users · read · 1 upstream call- 576actionsin one signed file
- 294readlook, never change
- 192writecreate and update
- 90wait for a yesdestructive, confirmed first
Set up
Connect 3CX 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 3CX.
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idClient ID of the 3CX API service principal (Admin Console > Integrations > API; the DN you gave it)client_secretAPI key shown once when the service principal was createdhostWhere your 3CX lives: your host
account { op: "connections.requirements", service: "three_cx" } # 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: "three_cx.users.list" }# list users · read · 1 upstream callcheck { action: "three_cx.users.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
3CX at a glance
- Sign-in
- OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
- You provide
client_idclient_secret- Setup fields
host- Limits we pace to
- 60 calls a minute, per connection
- API covered
- 3CX XAPI v1 (OData, PBX 20.0.10.1479) and Call Control API (v20), at your 3CX instance's API base URL, which you enter when connecting
- Built from
- 3CX's documentation, read 23 October 2026OpenAPI spec (GitHub)3cx.com3cx.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 276 of 294 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 4, so ask can line 3CX up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in 3CX.
576 actions in 131 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 294readlook, never change
- 192writecreate and update
- 90destructivewait for a confirmation
Users
3314 read · 14 write · 5 destructive
List Users · Create a Users record · Get a Users record · Update a Users record
Backups
1810 read · 5 write · 3 destructive
Backup (Backups) · Get Failover Scripts (Backups) · Get Sftp Host Key (Backups) · List Backups
System status
1813 read · 4 write · 1 destructive
Get System Status · My Phone Request Id Telemetry (System Status) · Network Telemetry (System Status) · Request Help (System Status)
Trunks
178 read · 8 write · 1 destructive
Create a Trunks record · Get Provider Phones (Trunks) · List Trunks · Run Analysis (Trunks)
AI settings
157 read · 4 write · 4 destructive
Add Vector Store Files (AI Settings) · Create Vector Store (AI Settings) · Get AI Settings · Get AI Resources (AI Settings)
Callcontrol
156 read · 8 write · 1 destructive
Make a call from a DN · List a DN's devices · Make a call from a specific device · List monitored DN call states
Contacts
134 read · 4 write · 5 destructive
List Contacts · Create a Contacts record · Get a Contacts record · Update a Contacts record
Groups
135 read · 4 write · 4 destructive
List Groups · Create a Groups record · Get a Groups record · Update a Groups record
123 more areas · 434 actions
- PBX 12
- Conference settings 11
- Defs 11
- Microsoft365 integration 11
- Prompt sets 11
- Queues 10
- My group 9
- Recordings 9
- Voicemail settings 9
- Fax 8
- Outbound rules 8
- Receptionists 8
- Ring groups 8
- Services 8
- Call flow apps 7
- CRM integration 7
- License status 7
- My user 7
- Parkings 7
- Website links 7
- Black list numbers 6
- Blocklist 6
- Firmwares 6
- FXS 6
- Inbound rules 6
- Parameters 6
- Playlists 6
- Remote archiving settings 6
- SBCS 6
- Service principals 6
- Sip devices 6
- DN properties 5
- FXS templates 5
- Holidays 5
- Phone templates 5
- Scheduled reports 5
- Tenant properties 5
- Trunk templates 5
- Data connector settings 4
- Device infos 4
- Email template 4
- Fax server settings 4
- Firewall 4
- Microsoft365 teams integration 4
- O auth clients 4
- Peers 4
- Report call log data 4
- Activity log 3
- CRM templates 3
- Custom prompts 3
- Google settings 3
- Mail settings 3
- MCP servers 3
- Network settings 3
- Syslog settings 3
- Active calls 2
- Amazon integration settings 2
- Anti hacking settings 2
- Call cost settings 2
- Call parking settings 2
- Call types settings 2
- CDR settings 2
- Chat log settings 2
- Codecs settings 2
- Console restrictions 2
- Country codes 2
- Dial code settings 2
- E164 settings 2
- Emergency geo locations 2
- Emergency notifications settings 2
- Event logs 2
- General settings for apps 2
- General settings for PBX 2
- Hotel rooms 2
- Hotel services 2
- Logging settings 2
- Music on hold settings 2
- My tokens 2
- Notification settings 2
- Office hours 2
- Phone book settings 2
- Phone logos 2
- Phones settings 2
- Secure sip settings 2
- Security tokens 2
- Call flow scripts 1
- Call history view 1
- Chat history view 1
- Chat messages history view 1
- Countries 1
- Did numbers 1
- Last CDR and chat message timestamp 1
- Network interfaces 1
- Report abandoned chats statistics 1
- Report abandoned queue calls 1
- Report agent login history 1
- Report agents in queue statistics 1
- Report audit log 1
- Report average queue waiting time 1
- Report breaches sla 1
- Report call cost by extension group 1
- Report call distribution 1
- Report chat log 1
- Report detailed queue statistics 1
- Report extension statistics 1
- Report extension statistics by group 1
- Report extensions statistics by ring groups 1
- Report inbound calls 1
- Report inbound rules 1
- Report outbound calls 1
- Report queue agents chat statistics 1
- Report queue agents chat statistics totals 1
- Report queue an un calls 1
- Report queue answered calls by wait time 1
- Report queue callbacks 1
- Report queue chat performance 1
- Report queue failed callbacks 1
- Report queue performance overview 1
- Report queue performance totals 1
- Report ring group statistics 1
- Report statistic sla 1
- Report team queue general statistics 1
- Report user activity 1
Top actions
The 3CX API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 17 of 3CX's 17 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
three_cx.users.listList Users | Get entities from Users. | read | identity.user.list474 connectors |
three_cx.groups.listList Groups | Get entities from Groups. | read | identity.group.list262 connectors |
three_cx.contacts.listList Contacts | Get entities from Contacts. | read | crm.contact.list177 connectors |
three_cx.users.createCreate a Users record | Add new entity to Users. | write | identity.user.create262 connectors |
three_cx.groups.createCreate a Groups record | Add new entity to Groups. | write | identity.group.create205 connectors |
three_cx.call_history_view.listList Call History View | Get entities from CallHistoryView. | read | comm.call.list44 connectors |
three_cx.users.deleteDelete a Users record | Delete entity from Users. | destructive | identity.user.delete253 connectors |
three_cx.contacts.createCreate a Contacts record | Add new entity to Contacts. | write | crm.contact.create161 connectors |
three_cx.callcontrol.makecallMake a call from a DN | Start a call from a DN to a destination; with a single registered device the call starts from it, otherwise the legacy MakeCall service is used. | write | comm.call.create38 connectors |
three_cx.queues.listList Queues | Get entities from Queues. | read | this connector |
three_cx.active_calls.listList Active Calls | Get entities from ActiveCalls. | read | this connector |
three_cx.defs.getGet Defs | Get Defs. | read | this connector |
Try it
Prompts to paste into Claude.
Each one names the 3CX actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Find the 3CX contacts with no email address, so we can clean them up.
calls
three_cx.contacts.list - Writewrite
Create a Users record in 3CX. Show me exactly what you will send before you save it.
calls
three_cx.users.create - Across systemsread
Which contacts are in both 3CX and NetSuite, and how many are in only one of them?
calls
three_cx.contacts.listnetsuite.views.contacts
Across your systems
3CX, joined to the rest of your business.
One ask fetches from 3CX and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which contacts are in both 3CX and NetSuite, and how many are in only one of them?
three_cx.contacts.list+netsuite.views.contacts, oncrm.contact· NetSuiteWhich contacts are in both 3CX and HubSpot CRM, and how many are in only one of them?
three_cx.contacts.list+hubspot_crm.contacts.list, oncrm.contact· HubSpot CRM
identity.user 517identity.group 239crm.contact 192comm.call 33ask { intent: "which contacts are in both 3CX and NetSuite, and how many are in only one of them", steps: [ { action: "three_cx.contacts.list", as: "people", input: {}, limit: 100, max_pages: 5 }, { action: "netsuite.views.contacts", as: "people2", input: {}, limit: 100, max_pages: 5 }, { join: { left: "people", right: "people2", on: "crm.contact", group_by: "people.email", select: ["people.email", "count(people2.id) as in_netsuite"] } } ]}Governance for 3CX
Destructive actions wait for a yes.
90 3CX actions are destructive. The first 10:
- Delete a Users record
three_cx.users.delete - Delete a Groups record
three_cx.groups.delete - Delete a Contacts record
three_cx.contacts.delete - Delete a Fax record
three_cx.fax.delete - Delete a Fxs record
three_cx.fxs.delete - Delete a Sbcs record
three_cx.sbcs.delete - Delete a Queues record
three_cx.queues.delete - Delete a Trunks record
three_cx.trunks.delete - Delete a Backups record
three_cx.backups.delete - Delete a Holidays record
three_cx.holidays.delete
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.
Delete a Users record?
intent: the user asked me to delete a Users record
account { op: "keys.create", name: "three-cx-agent", allowed_actions: ["three_cx.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "three_cx.users.delete", approver: "[email protected]" }, { match: "three_cx.groups.delete", approver: "[email protected]" }, { match: "three_cx.contacts.delete", approver: "[email protected]" } ]}Cost
What 3CX costs on actionlake.
Every 3CX action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call 3CX 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 576 3CX actions
- 576actions pageeach page of a long list is one call
- 276reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every 3CX action.
576 actions by area: the id your agent calls, what it does, and its effect.
Users33
three_cx.users.createCreate a Users recordwritethree_cx.users.getGet a Users recordreadthree_cx.users.listList Usersreadthree_cx.users.updateUpdate a Users recordwritethree_cx.users.batch_deleteBatch Delete (Users)destructivethree_cx.users.bulk_updateBulk Update (Users)write- and 27 more in this area
Backups18
three_cx.backups.backupBackup (Backups)writethree_cx.backups.get_failover_scriptsGet Failover Scripts (Backups)readthree_cx.backups.get_sftp_host_keyGet Sftp Host Key (Backups)readthree_cx.backups.listList Backupsreadthree_cx.backups.deleteDelete a Backups recorddestructivethree_cx.backups.get_backup_extrasGet Backup Extras (Backups)read- and 12 more in this area
System status18
three_cx.system_status.getGet System Statusreadthree_cx.system_status.my_phone_request_id_telemetryMy Phone Request Id Telemetry (System Status)readthree_cx.system_status.network_telemetryNetwork Telemetry (System Status)readthree_cx.system_status.request_helpRequest Help (System Status)writethree_cx.system_status.api_tokenAPI Token (System Status)readthree_cx.system_status.get_remote_access_statusGet Remote Access Status (System Status)read- and 12 more in this area
Trunks17
three_cx.trunks.createCreate a Trunks recordwritethree_cx.trunks.get_provider_phonesGet Provider Phones (Trunks)readthree_cx.trunks.listList Trunksreadthree_cx.trunks.run_analysisRun Analysis (Trunks)writethree_cx.trunks.deleteDelete a Trunks recorddestructivethree_cx.trunks.finalize_trunk_provisioningFinalize Trunk Provisioning (Trunks)write- and 11 more in this area
AI settings15
three_cx.ai_settings.add_vector_store_filesAdd Vector Store Files (AI Settings)writethree_cx.ai_settings.create_vector_storeCreate Vector Store (AI Settings)writethree_cx.ai_settings.getGet AI Settingsreadthree_cx.ai_settings.get_ai_resourcesGet AI Resources (AI Settings)readthree_cx.ai_settings.batch_delete_filesBatch Delete Files (AI Settings)destructivethree_cx.ai_settings.delete_open_ai_fileDelete Open Ai File (AI Settings)destructive- and 9 more in this area
Callcontrol15
three_cx.callcontrol.devices_listList a DN's devicesreadthree_cx.callcontrol.devices_makecallMake a call from a specific devicewritethree_cx.callcontrol.listList monitored DN call statesreadthree_cx.callcontrol.makecallMake a call from a DNwritethree_cx.callcontrol.devices_getGet a DN devicereadthree_cx.callcontrol.getGet a DN's call stateread- and 9 more in this area
Contacts13
three_cx.contacts.createCreate a Contacts recordwritethree_cx.contacts.getGet a Contacts recordreadthree_cx.contacts.listList Contactsreadthree_cx.contacts.updateUpdate a Contacts recordwritethree_cx.contacts.create_contact_by_numberCreate Contact By Number (Contacts)writethree_cx.contacts.deleteDelete a Contacts recorddestructive- and 7 more in this area
Groups13
three_cx.groups.createCreate a Groups recordwritethree_cx.groups.getGet a Groups recordreadthree_cx.groups.listList Groupsreadthree_cx.groups.updateUpdate a Groups recordwritethree_cx.groups.deleteDelete a Groups recorddestructivethree_cx.groups.delete_company_by_idDelete Company By Id (Groups)destructive- and 7 more in this area
PBX12
three_cx.pbx.get_directory_infoGet Directory Inforeadthree_cx.pbx.get_prompt_set_updatesGet Prompt Set Updatesreadthree_cx.pbx.get_server_crm_updatesGet Server Crm Updatesreadthree_cx.pbx.get_update_detailsGet Update Detailsreadthree_cx.pbx.get_update_settingsGet Update Settingsreadthree_cx.pbx.get_updatesGet Updatesread- and 6 more in this area
Conference settings11
three_cx.conference_settings.get_mcu_rowsGet MCU Rows (Conference Settings)readthree_cx.conference_settings.get_onboard_mcu_dataGet Onboard Mcu Data (Conference Settings)readthree_cx.conference_settings.get_onboard_meetingsGet Onboard Meetings (Conference Settings)readthree_cx.conference_settings.get_web_meeting_zonesGet Web Meeting Zones (Conference Settings)readthree_cx.conference_settings.delete_api_keyDelete Api Key (Conference Settings)destructivethree_cx.conference_settings.generate_api_keyGenerate Api Key (Conference Settings)read- and 5 more in this area
Defs11
three_cx.defs.codecs_listList Defs Codecsreadthree_cx.defs.gateway_parameter_values_listList Defs Gateway Parameter Valuesreadthree_cx.defs.gateway_parameters_listList Defs Gateway Parametersreadthree_cx.defs.getGet Defsreadthree_cx.defs.get_license_parametersGet License Parameters (Defs)readthree_cx.defs.get_routesGet Routes (Defs)read- and 5 more in this area
Microsoft365 integration11
three_cx.microsoft365_integration.get_m365_groupsGet M365 Groups (Microsoft365 Integration)readthree_cx.microsoft365_integration.get_m365_usersGet M365 Users (Microsoft365 Integration)readthree_cx.microsoft365_integration.get_users_by_principal_namesGet Users By Principal Names (Microsoft365 Integration)readthree_cx.microsoft365_integration.test_presenceTest Presence (Microsoft365 Integration)writethree_cx.microsoft365_integration.authorize_presenceAuthorize Presence (Microsoft365 Integration)writethree_cx.microsoft365_integration.deauthorize_presenceDeauthorize Presence (Microsoft365 Integration)destructive- and 5 more in this area
Prompt sets11
three_cx.prompt_sets.copyCopy (Prompt Sets)writethree_cx.prompt_sets.listList Prompt Setsreadthree_cx.prompt_sets.play_promptPlay Prompt (Prompt Sets)writethree_cx.prompt_sets.prompts_listList Prompts of a Prompt Setsreadthree_cx.prompt_sets.deleteDelete a Prompt Sets recorddestructivethree_cx.prompt_sets.getGet a Prompt Sets recordread- and 5 more in this area
Queues10
three_cx.queues.agents_listList Agents of a Queuesreadthree_cx.queues.createCreate a Queues recordwritethree_cx.queues.listList Queuesreadthree_cx.queues.managers_listList Managers of a Queuesreadthree_cx.queues.deleteDelete a Queues recorddestructivethree_cx.queues.getGet a Queues recordread- and 4 more in this area
My group9
three_cx.my_group.getGet My Groupreadthree_cx.my_group.get_my_group_partner_infoGet My Group Partner Info (My Group)readthree_cx.my_group.members_listList My Group Membersreadthree_cx.my_group.rights_listList My Group Rightsreadthree_cx.my_group.get_restrictionsGet Restrictions (My Group)readthree_cx.my_group.link_my_group_partnerLink My Group Partner (My Group)write- and 3 more in this area
Recordings9
three_cx.recordings.archiveArchive (Recordings)writethree_cx.recordings.bulk_recordings_archiveBulk Recordings Archive (Recordings)writethree_cx.recordings.listList Recordingsreadthree_cx.recordings.transcribe_recordingsTranscribe Recordings (Recordings)writethree_cx.recordings.bulk_recordings_deleteBulk Recordings Delete (Recordings)destructivethree_cx.recordings.get_recording_repository_settingsGet Recording Repository Settings (Recordings)read- and 3 more in this area
Voicemail settings9
three_cx.voicemail_settings.create_converter_configurationCreate Converter Configuration (Voicemail Settings)writethree_cx.voicemail_settings.getGet Voicemail Settingsreadthree_cx.voicemail_settings.get_configured_convertersGet Configured Converters (Voicemail Settings)readthree_cx.voicemail_settings.get_transcribe_languagesGet Transcribe Languages (Voicemail Settings)readthree_cx.voicemail_settings.delete_all_user_voicemailsDelete All User Voicemails (Voicemail Settings)destructivethree_cx.voicemail_settings.delete_converter_configurationDelete Converter Configuration (Voicemail Settings)destructive- and 3 more in this area
Fax8
three_cx.fax.createCreate a Fax recordwritethree_cx.fax.getGet a Fax recordreadthree_cx.fax.get_by_numberGet a Fax record by numberreadthree_cx.fax.listList Faxreadthree_cx.fax.bulk_fax_deleteBulk Fax Delete (Fax)destructivethree_cx.fax.deleteDelete a Fax recorddestructive- and 2 more in this area
Outbound rules8
three_cx.outbound_rules.createCreate an Outbound Rules recordwritethree_cx.outbound_rules.getGet an Outbound Rules recordreadthree_cx.outbound_rules.get_emergency_outbound_rulesGet Emergency Outbound Rules (Outbound Rules)readthree_cx.outbound_rules.listList Outbound Rulesreadthree_cx.outbound_rules.deleteDelete an Outbound Rules recorddestructivethree_cx.outbound_rules.move_up_downMove Up Down (Outbound Rules)write- and 2 more in this area
Receptionists8
three_cx.receptionists.createCreate a Receptionists recordwritethree_cx.receptionists.forwards_listList Forwards of a Receptionistsreadthree_cx.receptionists.getGet a Receptionists recordreadthree_cx.receptionists.listList Receptionistsreadthree_cx.receptionists.deleteDelete a Receptionists recorddestructivethree_cx.receptionists.get_by_numberGet a Receptionists record by numberread- and 2 more in this area
Ring groups8
three_cx.ring_groups.createCreate a Ring Groups recordwritethree_cx.ring_groups.getGet a Ring Groups recordreadthree_cx.ring_groups.listList Ring Groupsreadthree_cx.ring_groups.members_listList Members of a Ring Groupsreadthree_cx.ring_groups.deleteDelete a Ring Groups recorddestructivethree_cx.ring_groups.get_by_numberGet a Ring Groups record by numberread- and 2 more in this area
Services8
three_cx.services.enableEnable (Services)writethree_cx.services.garbage_collectGarbage Collect (Services)writethree_cx.services.listList Servicesreadthree_cx.services.startStart (Services)writethree_cx.services.disableDisable (Services)destructivethree_cx.services.restartRestart (Services)destructive- and 2 more in this area
Call flow apps7
three_cx.call_flow_apps.createCreate a Call Flow Apps recordwritethree_cx.call_flow_apps.getGet a Call Flow Apps recordreadthree_cx.call_flow_apps.get_filesGet Files (Call Flow Apps)readthree_cx.call_flow_apps.listList Call Flow Appsreadthree_cx.call_flow_apps.deleteDelete a Call Flow Apps recorddestructivethree_cx.call_flow_apps.delete_fileDelete File (Call Flow Apps)destructive- and 1 more in this area
CRM integration7
three_cx.crm_integration.getGet Crm Integrationreadthree_cx.crm_integration.get_crm_template_sourceGet Crm Template Source (Crm Integration)readthree_cx.crm_integration.get_o_authGet O Auth (Crm Integration)readthree_cx.crm_integration.testTest (Crm Integration)writethree_cx.crm_integration.delete_crm_contactsDelete Crm Contacts (Crm Integration)destructivethree_cx.crm_integration.set_o_auth_stateSet O Auth State (Crm Integration)write- and 1 more in this area
License status7
three_cx.license_status.edit_license_infoEdit License Info (License Status)writethree_cx.license_status.getGet License Statusreadthree_cx.license_status.link_partnerLink Partner (License Status)writethree_cx.license_status.partner_infoPartner Info (License Status)readthree_cx.license_status.refresh_license_statusRefresh License Status (License Status)writethree_cx.license_status.replace_license_keyReplace License Key (License Status)write- and 1 more in this area
My user7
three_cx.my_user.forwarding_profiles_listList My User Forwarding Profilesreadthree_cx.my_user.greetings_listList My User Greetingsreadthree_cx.my_user.groups_listList My User Groupsreadthree_cx.my_user.issue_download_ticketIssue Download Ticket (My User)writethree_cx.my_user.generate_prov_linkGenerate Prov Link (My User)readthree_cx.my_user.getGet My Userread- and 1 more in this area
Parkings7
three_cx.parkings.createCreate a Parkings recordwritethree_cx.parkings.getGet a Parkings recordreadthree_cx.parkings.groups_listList Groups of a Parkingsreadthree_cx.parkings.listList Parkingsreadthree_cx.parkings.deleteDelete a Parkings recorddestructivethree_cx.parkings.get_by_numberGet a Parkings record by numberread- and 1 more in this area
Website links7
three_cx.website_links.createCreate a Website Links recordwritethree_cx.website_links.getGet a Website Links recordreadthree_cx.website_links.listList Website Linksreadthree_cx.website_links.validate_linkValidate Link (Website Links)readthree_cx.website_links.bulk_links_deleteBulk Links Delete (Website Links)destructivethree_cx.website_links.deleteDelete a Website Links recorddestructive- and 1 more in this area
Black list numbers6
three_cx.black_list_numbers.createCreate a Black List Numbers recordwritethree_cx.black_list_numbers.getGet a Black List Numbers recordreadthree_cx.black_list_numbers.listList Black List Numbersreadthree_cx.black_list_numbers.updateUpdate a Black List Numbers recordwritethree_cx.black_list_numbers.bulk_numbers_deleteBulk Numbers Delete (Black List Numbers)destructivethree_cx.black_list_numbers.deleteDelete a Black List Numbers recorddestructive
Blocklist6
three_cx.blocklist.createCreate a Blocklist recordwritethree_cx.blocklist.getGet a Blocklist recordreadthree_cx.blocklist.listList Blocklistreadthree_cx.blocklist.updateUpdate a Blocklist recordwritethree_cx.blocklist.bulk_ips_deleteBulk Ips Delete (Blocklist)destructivethree_cx.blocklist.deleteDelete a Blocklist recorddestructive
Firmwares 6FXS 6Inbound rules 6Parameters 6Playlists 6Remote archiving settings 6SBCS 6Service principals 6Sip devices 6DN properties 5FXS templates 5Holidays 5Phone templates 5Scheduled reports 5Tenant properties 5Trunk templates 5Data connector settings 4Device infos 4Email template 4Fax server settings 4Firewall 4Microsoft365 teams integration 4O auth clients 4Peers 4Report call log data 4Activity log 3CRM templates 3Custom prompts 3Google settings 3Mail settings 3MCP servers 3Network settings 3Syslog settings 3Active calls 2Amazon integration settings 2Anti hacking settings 2Call cost settings 2Call parking settings 2Call types settings 2CDR settings 2Chat log settings 2Codecs settings 2Console restrictions 2Country codes 2Dial code settings 2E164 settings 2Emergency geo locations 2Emergency notifications settings 2Event logs 2General settings for apps 2General settings for PBX 2Hotel rooms 2Hotel services 2Logging settings 2Music on hold settings 2My tokens 2Notification settings 2Office hours 2Phone book settings 2Phone logos 2Phones settings 2Secure sip settings 2Security tokens 2Call flow scripts 1Call history view 1Chat history view 1Chat messages history view 1Countries 1Did numbers 1Last CDR and chat message timestamp 1Network interfaces 1Report abandoned chats statistics 1Report abandoned queue calls 1Report agent login history 1Report agents in queue statistics 1Report audit log 1Report average queue waiting time 1Report breaches sla 1Report call cost by extension group 1Report call distribution 1Report chat log 1Report detailed queue statistics 1Report extension statistics 1Report extension statistics by group 1Report extensions statistics by ring groups 1Report inbound calls 1Report inbound rules 1Report outbound calls 1Report queue agents chat statistics 1Report queue agents chat statistics totals 1Report queue an un calls 1Report queue answered calls by wait time 1Report queue callbacks 1Report queue chat performance 1Report queue failed callbacks 1Report queue performance overview 1Report queue performance totals 1Report ring group statistics 1Report statistic sla 1Report team queue general statistics 1Report user activity 1
This index shows a sample of each area. All 576 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.
Questions
The 3CX MCP server, answered.
Is there a 3CX MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 576 3CX actions across users, backups, system status and trunks, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by 3CX.
What do I need to connect 3CX?
Client ID of the 3CX API service principal (Admin Console > Integrations > API; the DN you gave it) and API key shown once when the service principal was created. Plus your host. The free call account { op: "connections.requirements", service: "three_cx" } lists exactly what to paste.
Can an AI agent delete or change things in 3CX?
Only if its key allows it, and only with an explicit confirmation. 90 3CX actions are destructive, including delete a Users record, delete a Groups record and delete a Contacts record. 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 3CX API limit?
actionlake paces every call to the limits in the 3CX service file: 60 calls a minute per connection. Repeated reads are answered from cache (276 3CX actions can be), which never reaches 3CX.
What does a 3CX action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (576 3CX actions page). Cache hits, searches, dry runs and calls 3CX 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 3CX API does it cover?
The 3CX XAPI v1 (OData, PBX 20.0.10.1479) and Call Control API (v20) at your 3CX instance's API base URL, which you enter when connecting. It is built from 3CX's documentation as read on 23 October 2026. 576 actions in 131 areas, each one in the signed service file (version 1.0.0).
Can I combine 3CX with my other systems?
Yes. ask joins 3CX to NetSuite or HubSpot CRM on the same customer and returns the answer rather than every row. 3CX maps crm.contact, which 192 other connectors also map.
Does actionlake keep my 3CX 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 3CX 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 3CX today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.