Skip to content

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/mcp
the first call
do {  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.

  1. 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
  2. 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 created
    • hostWhere your 3CX lives: your host
    account { op: "connections.requirements", service: "three_cx" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates 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
  1. Users

    33

    14 read · 14 write · 5 destructive

    List Users · Create a Users record · Get a Users record · Update a Users record

  2. Backups

    18

    10 read · 5 write · 3 destructive

    Backup (Backups) · Get Failover Scripts (Backups) · Get Sftp Host Key (Backups) · List Backups

  3. System status

    18

    13 read · 4 write · 1 destructive

    Get System Status · My Phone Request Id Telemetry (System Status) · Network Telemetry (System Status) · Request Help (System Status)

  4. Trunks

    17

    8 read · 8 write · 1 destructive

    Create a Trunks record · Get Provider Phones (Trunks) · List Trunks · Run Analysis (Trunks)

  5. AI settings

    15

    7 read · 4 write · 4 destructive

    Add Vector Store Files (AI Settings) · Create Vector Store (AI Settings) · Get AI Settings · Get AI Resources (AI Settings)

  6. Callcontrol

    15

    6 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

  7. Contacts

    13

    4 read · 4 write · 5 destructive

    List Contacts · Create a Contacts record · Get a Contacts record · Update a Contacts record

  8. Groups

    13

    5 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.

ActionWhat it doesEffectSame name in
three_cx.users.listList UsersGet entities from Users.readidentity.user.list474 connectors
three_cx.groups.listList GroupsGet entities from Groups.readidentity.group.list262 connectors
three_cx.contacts.listList ContactsGet entities from Contacts.readcrm.contact.list177 connectors
three_cx.users.createCreate a Users recordAdd new entity to Users.writeidentity.user.create262 connectors
three_cx.groups.createCreate a Groups recordAdd new entity to Groups.writeidentity.group.create205 connectors
three_cx.call_history_view.listList Call History ViewGet entities from CallHistoryView.readcomm.call.list44 connectors
three_cx.users.deleteDelete a Users recordDelete entity from Users.destructiveidentity.user.delete253 connectors
three_cx.contacts.createCreate a Contacts recordAdd new entity to Contacts.writecrm.contact.create161 connectors
three_cx.callcontrol.makecallMake a call from a DNStart 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.writecomm.call.create38 connectors
three_cx.queues.listList QueuesGet entities from Queues.readthis connector
three_cx.active_calls.listList Active CallsGet entities from ActiveCalls.readthis connector
three_cx.defs.getGet DefsGet Defs.readthis 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.

  1. Readread

    Find the 3CX contacts with no email address, so we can clean them up.

    callsthree_cx.contacts.list

  2. Writewrite

    Create a Users record in 3CX. Show me exactly what you will send before you save it.

    callsthree_cx.users.create

  3. Across systemsread

    Which contacts are in both 3CX and NetSuite, and how many are in only one of them?

    callsthree_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, on crm.contact · NetSuite

  • Which 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, on crm.contact · HubSpot CRM

Also mapped by other connectorsidentity.user 517identity.group 239crm.contact 192comm.call 33
ask
ask {  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"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for 3CX

Destructive actions wait for a yes.

90 3CX actions are destructive. The first 10:

  • Delete a Users recordthree_cx.users.delete
  • Delete a Groups recordthree_cx.groups.delete
  • Delete a Contacts recordthree_cx.contacts.delete
  • Delete a Fax recordthree_cx.fax.delete
  • Delete a Fxs recordthree_cx.fxs.delete
  • Delete a Sbcs recordthree_cx.sbcs.delete
  • Delete a Queues recordthree_cx.queues.delete
  • Delete a Trunks recordthree_cx.trunks.delete
  • Delete a Backups recordthree_cx.backups.delete
  • Delete a Holidays recordthree_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.

dothree_cx.users.deleteconfirm_policy: human

Delete a Users record?

intent: the user asked me to delete a Users record

run suspended · waiting for a named person · key three-cx-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to 3CX only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

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 recordwrite
  • three_cx.users.getGet a Users recordread
  • three_cx.users.listList Usersread
  • three_cx.users.updateUpdate a Users recordwrite
  • three_cx.users.batch_deleteBatch Delete (Users)destructive
  • three_cx.users.bulk_updateBulk Update (Users)write
  • and 27 more in this area
Backups18
  • three_cx.backups.backupBackup (Backups)write
  • three_cx.backups.get_failover_scriptsGet Failover Scripts (Backups)read
  • three_cx.backups.get_sftp_host_keyGet Sftp Host Key (Backups)read
  • three_cx.backups.listList Backupsread
  • three_cx.backups.deleteDelete a Backups recorddestructive
  • three_cx.backups.get_backup_extrasGet Backup Extras (Backups)read
  • and 12 more in this area
System status18
  • three_cx.system_status.getGet System Statusread
  • three_cx.system_status.my_phone_request_id_telemetryMy Phone Request Id Telemetry (System Status)read
  • three_cx.system_status.network_telemetryNetwork Telemetry (System Status)read
  • three_cx.system_status.request_helpRequest Help (System Status)write
  • three_cx.system_status.api_tokenAPI Token (System Status)read
  • three_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 recordwrite
  • three_cx.trunks.get_provider_phonesGet Provider Phones (Trunks)read
  • three_cx.trunks.listList Trunksread
  • three_cx.trunks.run_analysisRun Analysis (Trunks)write
  • three_cx.trunks.deleteDelete a Trunks recorddestructive
  • three_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)write
  • three_cx.ai_settings.create_vector_storeCreate Vector Store (AI Settings)write
  • three_cx.ai_settings.getGet AI Settingsread
  • three_cx.ai_settings.get_ai_resourcesGet AI Resources (AI Settings)read
  • three_cx.ai_settings.batch_delete_filesBatch Delete Files (AI Settings)destructive
  • three_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 devicesread
  • three_cx.callcontrol.devices_makecallMake a call from a specific devicewrite
  • three_cx.callcontrol.listList monitored DN call statesread
  • three_cx.callcontrol.makecallMake a call from a DNwrite
  • three_cx.callcontrol.devices_getGet a DN deviceread
  • three_cx.callcontrol.getGet a DN's call stateread
  • and 9 more in this area
Contacts13
  • three_cx.contacts.createCreate a Contacts recordwrite
  • three_cx.contacts.getGet a Contacts recordread
  • three_cx.contacts.listList Contactsread
  • three_cx.contacts.updateUpdate a Contacts recordwrite
  • three_cx.contacts.create_contact_by_numberCreate Contact By Number (Contacts)write
  • three_cx.contacts.deleteDelete a Contacts recorddestructive
  • and 7 more in this area
Groups13
  • three_cx.groups.createCreate a Groups recordwrite
  • three_cx.groups.getGet a Groups recordread
  • three_cx.groups.listList Groupsread
  • three_cx.groups.updateUpdate a Groups recordwrite
  • three_cx.groups.deleteDelete a Groups recorddestructive
  • three_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 Inforead
  • three_cx.pbx.get_prompt_set_updatesGet Prompt Set Updatesread
  • three_cx.pbx.get_server_crm_updatesGet Server Crm Updatesread
  • three_cx.pbx.get_update_detailsGet Update Detailsread
  • three_cx.pbx.get_update_settingsGet Update Settingsread
  • three_cx.pbx.get_updatesGet Updatesread
  • and 6 more in this area
Conference settings11
  • three_cx.conference_settings.get_mcu_rowsGet MCU Rows (Conference Settings)read
  • three_cx.conference_settings.get_onboard_mcu_dataGet Onboard Mcu Data (Conference Settings)read
  • three_cx.conference_settings.get_onboard_meetingsGet Onboard Meetings (Conference Settings)read
  • three_cx.conference_settings.get_web_meeting_zonesGet Web Meeting Zones (Conference Settings)read
  • three_cx.conference_settings.delete_api_keyDelete Api Key (Conference Settings)destructive
  • three_cx.conference_settings.generate_api_keyGenerate Api Key (Conference Settings)read
  • and 5 more in this area
Defs11
  • three_cx.defs.codecs_listList Defs Codecsread
  • three_cx.defs.gateway_parameter_values_listList Defs Gateway Parameter Valuesread
  • three_cx.defs.gateway_parameters_listList Defs Gateway Parametersread
  • three_cx.defs.getGet Defsread
  • three_cx.defs.get_license_parametersGet License Parameters (Defs)read
  • three_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)read
  • three_cx.microsoft365_integration.get_m365_usersGet M365 Users (Microsoft365 Integration)read
  • three_cx.microsoft365_integration.get_users_by_principal_namesGet Users By Principal Names (Microsoft365 Integration)read
  • three_cx.microsoft365_integration.test_presenceTest Presence (Microsoft365 Integration)write
  • three_cx.microsoft365_integration.authorize_presenceAuthorize Presence (Microsoft365 Integration)write
  • three_cx.microsoft365_integration.deauthorize_presenceDeauthorize Presence (Microsoft365 Integration)destructive
  • and 5 more in this area
Prompt sets11
  • three_cx.prompt_sets.copyCopy (Prompt Sets)write
  • three_cx.prompt_sets.listList Prompt Setsread
  • three_cx.prompt_sets.play_promptPlay Prompt (Prompt Sets)write
  • three_cx.prompt_sets.prompts_listList Prompts of a Prompt Setsread
  • three_cx.prompt_sets.deleteDelete a Prompt Sets recorddestructive
  • three_cx.prompt_sets.getGet a Prompt Sets recordread
  • and 5 more in this area
Queues10
  • three_cx.queues.agents_listList Agents of a Queuesread
  • three_cx.queues.createCreate a Queues recordwrite
  • three_cx.queues.listList Queuesread
  • three_cx.queues.managers_listList Managers of a Queuesread
  • three_cx.queues.deleteDelete a Queues recorddestructive
  • three_cx.queues.getGet a Queues recordread
  • and 4 more in this area
My group9
  • three_cx.my_group.getGet My Groupread
  • three_cx.my_group.get_my_group_partner_infoGet My Group Partner Info (My Group)read
  • three_cx.my_group.members_listList My Group Membersread
  • three_cx.my_group.rights_listList My Group Rightsread
  • three_cx.my_group.get_restrictionsGet Restrictions (My Group)read
  • three_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)write
  • three_cx.recordings.bulk_recordings_archiveBulk Recordings Archive (Recordings)write
  • three_cx.recordings.listList Recordingsread
  • three_cx.recordings.transcribe_recordingsTranscribe Recordings (Recordings)write
  • three_cx.recordings.bulk_recordings_deleteBulk Recordings Delete (Recordings)destructive
  • three_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)write
  • three_cx.voicemail_settings.getGet Voicemail Settingsread
  • three_cx.voicemail_settings.get_configured_convertersGet Configured Converters (Voicemail Settings)read
  • three_cx.voicemail_settings.get_transcribe_languagesGet Transcribe Languages (Voicemail Settings)read
  • three_cx.voicemail_settings.delete_all_user_voicemailsDelete All User Voicemails (Voicemail Settings)destructive
  • three_cx.voicemail_settings.delete_converter_configurationDelete Converter Configuration (Voicemail Settings)destructive
  • and 3 more in this area
Fax8
  • three_cx.fax.createCreate a Fax recordwrite
  • three_cx.fax.getGet a Fax recordread
  • three_cx.fax.get_by_numberGet a Fax record by numberread
  • three_cx.fax.listList Faxread
  • three_cx.fax.bulk_fax_deleteBulk Fax Delete (Fax)destructive
  • three_cx.fax.deleteDelete a Fax recorddestructive
  • and 2 more in this area
Outbound rules8
  • three_cx.outbound_rules.createCreate an Outbound Rules recordwrite
  • three_cx.outbound_rules.getGet an Outbound Rules recordread
  • three_cx.outbound_rules.get_emergency_outbound_rulesGet Emergency Outbound Rules (Outbound Rules)read
  • three_cx.outbound_rules.listList Outbound Rulesread
  • three_cx.outbound_rules.deleteDelete an Outbound Rules recorddestructive
  • three_cx.outbound_rules.move_up_downMove Up Down (Outbound Rules)write
  • and 2 more in this area
Receptionists8
  • three_cx.receptionists.createCreate a Receptionists recordwrite
  • three_cx.receptionists.forwards_listList Forwards of a Receptionistsread
  • three_cx.receptionists.getGet a Receptionists recordread
  • three_cx.receptionists.listList Receptionistsread
  • three_cx.receptionists.deleteDelete a Receptionists recorddestructive
  • three_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 recordwrite
  • three_cx.ring_groups.getGet a Ring Groups recordread
  • three_cx.ring_groups.listList Ring Groupsread
  • three_cx.ring_groups.members_listList Members of a Ring Groupsread
  • three_cx.ring_groups.deleteDelete a Ring Groups recorddestructive
  • three_cx.ring_groups.get_by_numberGet a Ring Groups record by numberread
  • and 2 more in this area
Services8
  • three_cx.services.enableEnable (Services)write
  • three_cx.services.garbage_collectGarbage Collect (Services)write
  • three_cx.services.listList Servicesread
  • three_cx.services.startStart (Services)write
  • three_cx.services.disableDisable (Services)destructive
  • three_cx.services.restartRestart (Services)destructive
  • and 2 more in this area
Call flow apps7
  • three_cx.call_flow_apps.createCreate a Call Flow Apps recordwrite
  • three_cx.call_flow_apps.getGet a Call Flow Apps recordread
  • three_cx.call_flow_apps.get_filesGet Files (Call Flow Apps)read
  • three_cx.call_flow_apps.listList Call Flow Appsread
  • three_cx.call_flow_apps.deleteDelete a Call Flow Apps recorddestructive
  • three_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 Integrationread
  • three_cx.crm_integration.get_crm_template_sourceGet Crm Template Source (Crm Integration)read
  • three_cx.crm_integration.get_o_authGet O Auth (Crm Integration)read
  • three_cx.crm_integration.testTest (Crm Integration)write
  • three_cx.crm_integration.delete_crm_contactsDelete Crm Contacts (Crm Integration)destructive
  • three_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)write
  • three_cx.license_status.getGet License Statusread
  • three_cx.license_status.link_partnerLink Partner (License Status)write
  • three_cx.license_status.partner_infoPartner Info (License Status)read
  • three_cx.license_status.refresh_license_statusRefresh License Status (License Status)write
  • three_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 Profilesread
  • three_cx.my_user.greetings_listList My User Greetingsread
  • three_cx.my_user.groups_listList My User Groupsread
  • three_cx.my_user.issue_download_ticketIssue Download Ticket (My User)write
  • three_cx.my_user.generate_prov_linkGenerate Prov Link (My User)read
  • three_cx.my_user.getGet My Userread
  • and 1 more in this area
Parkings7
  • three_cx.parkings.createCreate a Parkings recordwrite
  • three_cx.parkings.getGet a Parkings recordread
  • three_cx.parkings.groups_listList Groups of a Parkingsread
  • three_cx.parkings.listList Parkingsread
  • three_cx.parkings.deleteDelete a Parkings recorddestructive
  • three_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 recordwrite
  • three_cx.website_links.getGet a Website Links recordread
  • three_cx.website_links.listList Website Linksread
  • three_cx.website_links.validate_linkValidate Link (Website Links)read
  • three_cx.website_links.bulk_links_deleteBulk Links Delete (Website Links)destructive
  • three_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 recordwrite
  • three_cx.black_list_numbers.getGet a Black List Numbers recordread
  • three_cx.black_list_numbers.listList Black List Numbersread
  • three_cx.black_list_numbers.updateUpdate a Black List Numbers recordwrite
  • three_cx.black_list_numbers.bulk_numbers_deleteBulk Numbers Delete (Black List Numbers)destructive
  • three_cx.black_list_numbers.deleteDelete a Black List Numbers recorddestructive
Blocklist6
  • three_cx.blocklist.createCreate a Blocklist recordwrite
  • three_cx.blocklist.getGet a Blocklist recordread
  • three_cx.blocklist.listList Blocklistread
  • three_cx.blocklist.updateUpdate a Blocklist recordwrite
  • three_cx.blocklist.bulk_ips_deleteBulk Ips Delete (Blocklist)destructive
  • three_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.