Skip to content

Connectors · Email & messaging

JustCall MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to JustCall and the rest of your systems. It gives your agent 100 JustCall actions (56 reads, 33 writes and 11 that wait for a confirmation) and holds the JustCall credential itself, so the agent never does. It paces JustCall'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: "justcall.users.list",  intent: "check which JustCall account is connected"}# List all users · read · 1 upstream call
  • 100actionsin one signed file
  • 56readlook, never change
  • 33writecreate and update
  • 11wait for a yesdestructive, confirmed first

Set up

Connect JustCall 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 JustCall.

    API key. 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.

    • api_keyJustCall API key (Profile > APIs and Webhooks)
    • api_secretJustCall API secret (Profile > APIs and Webhooks)
    account { op: "connections.requirements", service: "justcall" }
    # 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: "justcall.users.list" }# list all users · read · 1 upstream callcheck { action: "justcall.texts.send", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

JustCall at a glance

Sign-in
API key. 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
api_keyapi_secret
Limits we pace to
30 calls a minute, per connection
API covered
JustCall (cloud phone: calls, SMS/MMS, WhatsApp, RCS, contacts, Sales Dialer, JustCall AI) API v2.1api.justcall.io
Built from
JustCall's documentation, read 23 October 2026developer.justcall.iodeveloper.justcall.io
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
56 of 56 reads, for up to 5 minutes; a write clears what it affects
Shared entities
4, so ask can line JustCall up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in JustCall.

100 actions in 25 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 56readlook, never change
  • 33writecreate and update
  • 11destructivewait for a confirmation
  1. Sales dialer contacts

    9

    4 read · 4 write · 1 destructive

    Bulk Add Contacts to DNCA · Bulk import contacts · Create contact · List all contacts

  2. Text groups

    9

    4 read · 3 write · 2 destructive

    Create a group · List all groups · List group messages · Send message in a group

  3. Contacts

    8

    3 read · 4 write · 1 destructive

    List all contacts · Create contact · Get a contact · Update contact

  4. Sales dialer campaigns

    7

    3 read · 3 write · 1 destructive

    Add contact to a campaign · Create campaign · List all campaigns · List campaign contacts

  5. User groups

    7

    2 read · 3 write · 2 destructive

    List all user groups · Create a user group · Get a user group · Update a user group

  6. Calls

    5

    4 read · 1 write · 0 destructive

    List all calls · Get a call · Update a call · Get call journey

  7. RCS templates

    5

    1 read · 4 write · 0 destructive

    Create a card template · Create a carousel template · Create a media template · Create a text template

  8. Special dates

    5

    2 read · 2 write · 1 destructive

    Create a special date · List all special dates · Get a special date · Update a special date

17 more areas · 45 actions
  • Text tags 4
  • Text threads 4
  • Texts 4
  • Whatsapp messages 4
  • Appointments 3
  • Call analytics 3
  • Phone numbers 3
  • RCS messages 3
  • Users 3
  • Webhooks 3
  • Calls AI 2
  • Meetings AI 2
  • Sales dialer calls 2
  • Voice agents 2
  • RCS phones 1
  • Sales dialer analytics 1
  • Whatsapp templates 1

Top actions

The JustCall API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 19 of JustCall's 19 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
justcall.users.listList all usersUtilize this endpoint to fetch a list of all the users added to your JustCall account and to filter a set of users via the query parameters.readidentity.user.list474 connectors
justcall.calls.listList all callsRetrieve all calls linked to an account or refine the call selection as needed by utilizing the numerous query parameter fields.readcomm.call.list44 connectors
justcall.texts.listList all textsRetrieve all text messages linked to an account or refine the message selection as needed by utilizing the various query parameter fields.readcomm.sms.list19 connectors
justcall.contacts.listList all contactsRetrieve all contacts present in your account or filter the contacts based on one or more query parameters.readcrm.contact.list177 connectors
justcall.users.getGet a userGet data for a specific user using this endpoint by sending their id (agent_id can be found via the List all users API).readidentity.user.get399 connectors
justcall.texts.sendSend SMS/MMSUtilize this endpoint to send SMS messages via the JustCall API and leverage it for setting up SMS automation's in a third-party tool as well.writecomm.sms.send26 connectors
justcall.calls.getGet a callUtilize this endpoint for retrieval of data for a Call, including details such as duration, direction, status, timestamps, notes, and dispositions.readcomm.call.get40 connectors
justcall.contacts.createCreate contactUtilize this endpoint to add a new contact to JustCall’s ‘Contacts’ section.writecrm.contact.create161 connectors
justcall.contacts.deleteDelete contactUtilize this endpoint to delete a specific contact from your JustCall account using the ‘id’ or the ‘contact_number’ of the contact.destructivecrm.contact.delete147 connectors
justcall.user_groups.listList all user groupsUtilize this endpoint to fetch a list of all the user groups added to your JustCall account and to filter a set of user groups via the query parameters.readidentity.group.list262 connectors
justcall.user_groups.createCreate a user groupCreate a user group using this endpoint by sending the group name, extension and member ids.writeidentity.group.create205 connectors
justcall.texts.check_replyCheck replyCheck the response for a specific SMS sent to a user by providing the contact's phone number and, optionally, the JustCall number.readthis connector

Try it

Prompts to paste into Claude.

Each one names the JustCall actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

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

    callsjustcall.contacts.list

  2. Writewrite

    Send SMS/MMS in JustCall. Show me exactly what you will send before you save it.

    callsjustcall.texts.send

  3. Across systemsread

    Which contacts are in both JustCall and HaloPSA, and how many are in only one of them?

    callsjustcall.contacts.listhalopsa.users.list

Across your systems

JustCall, joined to the rest of your business.

One ask fetches from JustCall 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 JustCall and HaloPSA, and how many are in only one of them?

    justcall.contacts.list + halopsa.users.list, on crm.contact · HaloPSA

  • Which contacts are in both JustCall and NetSuite, and how many are in only one of them?

    justcall.contacts.list + netsuite.views.contacts, on crm.contact · NetSuite

Also mapped by other connectorsidentity.user 517crm.contact 192comm.call 33comm.sms 8
ask
ask {  intent: "which contacts are in both JustCall and HaloPSA, and how many are in only one of them",  steps: [    { action: "justcall.contacts.list", as: "people", input: {}, limit: 100, max_pages: 5 },    { action: "halopsa.users.list", 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_halopsa"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for JustCall

Destructive actions wait for a yes.

11 JustCall actions are destructive. These are all of them:

  • Delete contactjustcall.contacts.delete
  • Delete a user groupjustcall.user_groups.delete
  • Delete a tagjustcall.text_tags.delete
  • Delete a groupjustcall.text_groups.delete
  • Remove URL from webhookjustcall.webhooks.delete_url
  • Delete a special datejustcall.special_dates.delete
  • Remove tag from threadjustcall.text_threads.remove_tag
  • Remove members from a groupjustcall.text_groups.remove_members
  • Remove members from a user groupjustcall.user_groups.remove_members
  • Delete contactjustcall.sales_dialer_contacts.delete
  • Remove contact from a campaignjustcall.sales_dialer_campaigns.remove_contact

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.

dojustcall.contacts.deleteconfirm_policy: human

Delete contact?

intent: the user asked me to delete contact

run suspended · waiting for a named person · key justcall-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "justcall-agent",  allowed_actions: ["justcall.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "justcall.contacts.delete", approver: "[email protected]" },    { match: "justcall.user_groups.delete", approver: "[email protected]" },    { match: "justcall.text_tags.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to JustCall only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What JustCall costs on actionlake.

Every JustCall action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call JustCall 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 100 JustCall actions
  • 23actions pageeach page of a long list is one call
  • 56reads 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 JustCall action.

100 actions by area: the id your agent calls, what it does, and its effect.

Sales dialer contacts9
  • justcall.sales_dialer_contacts.bulk_add_dncaBulk Add Contacts to DNCAwrite
  • justcall.sales_dialer_contacts.bulk_importBulk import contactswrite
  • justcall.sales_dialer_contacts.bulk_import_statusGet bulk import statusread
  • justcall.sales_dialer_contacts.createCreate contactwrite
  • justcall.sales_dialer_contacts.deleteDelete contactdestructive
  • justcall.sales_dialer_contacts.getGet a contactread
  • justcall.sales_dialer_contacts.listList all contactsread
  • justcall.sales_dialer_contacts.list_custom_fieldsList contact custom fieldsread
  • justcall.sales_dialer_contacts.updateUpdate contactwrite
Text groups9
  • justcall.text_groups.add_membersAdd members to a groupwrite
  • justcall.text_groups.createCreate a groupwrite
  • justcall.text_groups.deleteDelete a groupdestructive
  • justcall.text_groups.getGet a groupread
  • justcall.text_groups.get_messageGet a group messageread
  • justcall.text_groups.listList all groupsread
  • justcall.text_groups.list_messagesList group messagesread
  • justcall.text_groups.remove_membersRemove members from a groupdestructive
  • justcall.text_groups.send_messageSend message in a groupwrite
Contacts8
  • justcall.contacts.bulk_add_to_blacklistBulk add contacts to blacklistwrite
  • justcall.contacts.createCreate contactwrite
  • justcall.contacts.deleteDelete contactdestructive
  • justcall.contacts.getGet a contactread
  • justcall.contacts.listList all contactsread
  • justcall.contacts.list_blacklistList blacklist contactsread
  • justcall.contacts.updateUpdate contactwrite
  • justcall.contacts.update_statusUpdate contact statuswrite
Sales dialer campaigns7
  • justcall.sales_dialer_campaigns.add_contactAdd contact to a campaignwrite
  • justcall.sales_dialer_campaigns.createCreate campaignwrite
  • justcall.sales_dialer_campaigns.getGet a campaignread
  • justcall.sales_dialer_campaigns.listList all campaignsread
  • justcall.sales_dialer_campaigns.list_contactsList campaign contactsread
  • justcall.sales_dialer_campaigns.remove_contactRemove contact from a campaigndestructive
  • justcall.sales_dialer_campaigns.updateUpdate campaignwrite
User groups7
  • justcall.user_groups.add_membersAdd members to a user groupwrite
  • justcall.user_groups.createCreate a user groupwrite
  • justcall.user_groups.deleteDelete a user groupdestructive
  • justcall.user_groups.getGet a user groupread
  • justcall.user_groups.listList all user groupsread
  • justcall.user_groups.remove_membersRemove members from a user groupdestructive
  • justcall.user_groups.updateUpdate a user groupwrite
Calls5
  • justcall.calls.getGet a callread
  • justcall.calls.get_journeyGet call journeyread
  • justcall.calls.get_voice_agent_dataGet voice agent dataread
  • justcall.calls.listList all callsread
  • justcall.calls.updateUpdate a callwrite
RCS templates5
  • justcall.rcs_templates.create_cardCreate a card templatewrite
  • justcall.rcs_templates.create_carouselCreate a carousel templatewrite
  • justcall.rcs_templates.create_mediaCreate a media templatewrite
  • justcall.rcs_templates.create_textCreate a text templatewrite
  • justcall.rcs_templates.listList all templatesread
Special dates5
  • justcall.special_dates.createCreate a special datewrite
  • justcall.special_dates.deleteDelete a special datedestructive
  • justcall.special_dates.getGet a special dateread
  • justcall.special_dates.listList all special datesread
  • justcall.special_dates.updateUpdate a special datewrite
Text tags4
  • justcall.text_tags.createCreate a tagwrite
  • justcall.text_tags.deleteDelete a tagdestructive
  • justcall.text_tags.getGet a tagread
  • justcall.text_tags.listList all tagsread
Text threads4
  • justcall.text_threads.add_tagAdd tag to threadwrite
  • justcall.text_threads.getGet a threadread
  • justcall.text_threads.listList all threadsread
  • justcall.text_threads.remove_tagRemove tag from threaddestructive
Texts4
  • justcall.texts.check_replyCheck replyread
  • justcall.texts.getGet a textread
  • justcall.texts.listList all textsread
  • justcall.texts.sendSend SMS/MMSwrite
Whatsapp messages4
  • justcall.whatsapp_messages.check_replyCheck message replyread
  • justcall.whatsapp_messages.getGet a messageread
  • justcall.whatsapp_messages.listList all messagesread
  • justcall.whatsapp_messages.sendSend messagewrite
Appointments3
  • justcall.appointments.available_slotsList available slotsread
  • justcall.appointments.createCreate an appointmentwrite
  • justcall.appointments.getGet an appointmentread
Call analytics3
  • justcall.call_analytics.accountAccount analyticsread
  • justcall.call_analytics.agentAgent analyticsread
  • justcall.call_analytics.numberNumber analyticsread
Phone numbers3
  • justcall.phone_numbers.detectDetect incoming numberread
  • justcall.phone_numbers.getGet a phone numberread
  • justcall.phone_numbers.listList all phone numbersread
RCS messages3
  • justcall.rcs_messages.getGet a messageread
  • justcall.rcs_messages.listList all messagesread
  • justcall.rcs_messages.sendSend messagewrite
Users3
  • justcall.users.getGet a userread
  • justcall.users.listList all usersread
  • justcall.users.update_availabilityUpdate user availabilitywrite
Webhooks3
  • justcall.webhooks.createAdd URL to webhookwrite
  • justcall.webhooks.delete_urlRemove URL from webhookdestructive
  • justcall.webhooks.listList subscribed webhooksread
Calls AI2
  • justcall.calls_ai.getGet AI dataread
  • justcall.calls_ai.listList calls AI dataread
Meetings AI2
  • justcall.meetings_ai.getGet AI dataread
  • justcall.meetings_ai.listList meetings AI dataread
Sales dialer calls2
  • justcall.sales_dialer_calls.getGet a callread
  • justcall.sales_dialer_calls.listList all callsread
Voice agents2
  • justcall.voice_agents.initiate_callInitiate a callwrite
  • justcall.voice_agents.listList all voice agentsread
RCS phones1
  • justcall.rcs_phones.listList RCS sendersread
Sales dialer analytics1
  • justcall.sales_dialer_analytics.agentAgent analyticsread
Whatsapp templates1
  • justcall.whatsapp_templates.listList all templatesread

Questions

The JustCall MCP server, answered.

Is there a JustCall MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 100 JustCall actions across sales dialer contacts, text groups, contacts and sales dialer campaigns, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by JustCall.

What do I need to connect JustCall?

JustCall API key (Profile > APIs and Webhooks) and JustCall API secret (Profile > APIs and Webhooks). The free call account { op: "connections.requirements", service: "justcall" } lists exactly what to paste.

Can an AI agent delete or change things in JustCall?

Only if its key allows it, and only with an explicit confirmation. 11 JustCall actions are destructive, including delete contact, delete a user group and delete a tag. 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 JustCall API limit?

actionlake paces every call to the limits in the JustCall service file: 30 calls a minute per connection. Repeated reads are answered from cache (56 JustCall actions can be), which never reaches JustCall.

What does a JustCall action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (23 JustCall actions page). Cache hits, searches, dry runs and calls JustCall 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 JustCall API does it cover?

The JustCall (cloud phone: calls, SMS/MMS, WhatsApp, RCS, contacts, Sales Dialer, JustCall AI) API v2.1 at api.justcall.io. It is built from JustCall's documentation as read on 23 October 2026. 100 actions in 25 areas, each one in the signed service file (version 1.0.0).

Can I combine JustCall with my other systems?

Yes. ask joins JustCall to HaloPSA or NetSuite on the same customer and returns the answer rather than every row. JustCall maps crm.contact, which 192 other connectors also map.

Does actionlake keep my JustCall 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 JustCall 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 JustCall today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.