Connectors · Email & messaging
CallTrackingMetrics MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to CallTrackingMetrics and the rest of your systems. It gives your agent 253 CallTrackingMetrics actions (98 reads, 107 writes and 48 that wait for a confirmation) and holds the CallTrackingMetrics credential itself, so the agent never does. It paces CallTrackingMetrics'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: "calltrackingmetrics.accounts.list", intent: "check which CallTrackingMetrics account is connected"}# List of accounts · read · 1 upstream call- 253actionsin one signed file
- 98readlook, never change
- 107writecreate and update
- 48wait for a yesdestructive, confirmed first
Set up
Connect CallTrackingMetrics 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 CallTrackingMetrics.
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.
access_keyCTM API Access Key (Account Settings > API Integration, or Agency Settings for multi-account access)secret_keyCTM API Secret Key shown beside the Access Key
account { op: "connections.requirements", service: "calltrackingmetrics" } # 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: "calltrackingmetrics.accounts.list" }# list of accounts · read · 1 upstream callcheck { action: "calltrackingmetrics.contact_lists.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
CallTrackingMetrics 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
access_keysecret_key- Limits we pace to
- 10 calls a second, per connection
- API covered
- CTM REST API v1 (https://api.calltrackingmetrics.com/api/v1)
api.calltrackingmetrics.com/api/v1 - Built from
- CallTrackingMetrics's documentation, read 23 October 2026postman.calltrackingmetrics.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 96 of 98 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 3, so ask can line CallTrackingMetrics up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in CallTrackingMetrics.
253 actions in 41 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 98readlook, never change
- 107writecreate and update
- 48destructivewait for a confirmation
Calls
245 read · 13 write · 6 destructive
List of activities (calls/texts/chats/forms) · Activity details · Search activities · Add comment
Numbers
206 read · 10 write · 4 destructive
Buy number for an account · Buy number for an account by area code · List of tracking numbers · Search for US/CA numbers
Accounts
155 read · 8 write · 2 destructive
Create an account (agency/shared billing) · Create an account (customer billing) · List of accounts · List of active account IDs and names
Dialers
134 read · 6 write · 3 destructive
Create dialer · List of dialers · List of numbers in dialer · Add numbers
Contact lists
104 read · 3 write · 3 destructive
List of contact lists · Create contact list · Contact list information · Update a contact list
Custom fields
105 read · 4 write · 1 destructive
Create custom field · List of custom fields · List custom fields by type · List of custom panels
Tracking sources
92 read · 5 write · 2 destructive
Create a tracking source · List of tracking sources · Add a tracking number to a tracking source · Tracking source details
Agents
85 read · 2 write · 1 destructive
Agent Events · List agents · By agent status · Assign agent
33 more areas · 144 actions
- Call settings 8
- Users 8
- Geo routers 7
- Lead reactors 7
- Price schedules 7
- Payment methods 6
- Access groups 5
- Form reactors 5
- Price settings 5
- Receiving numbers 5
- Smart routers 5
- Triggers 5
- User groups 5
- Voice menu items 5
- Voice menus 5
- Webhooks 5
- Divisions 4
- Opt out texts 4
- Queues 4
- Schedules 4
- Target numbers 4
- Trust centers 4
- Blocked numbers 3
- Call sales 3
- Change notifications 3
- Do not calls 3
- Google analytics 3
- Number addresses 3
- SMS 3
- Reports 2
- Tracking script settings 2
- Agency 1
- Lookup 1
Top actions
The CallTrackingMetrics API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 16 of CallTrackingMetrics's 16 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
calltrackingmetrics.contact_lists.listList of contact lists | gets list of contact lists, including name and description parameters required comments account_id yes the account id | read | crm.contact_list.list34 connectors |
calltrackingmetrics.users.listList of users | Get a list of users for the specified account parameters required comments account_id yes the account id email no find user with email address filter no find… | read | identity.user.list474 connectors |
calltrackingmetrics.calls.listList of activities (calls/texts/chats/forms) | List of activities (calls/texts/chats/forms) (GET /accounts/{account_id}/calls). | read | comm.call.list44 connectors |
calltrackingmetrics.contact_lists.createCreate contact list | Create contact list (POST /accounts/{account_id}/lists). | write | crm.contact_list.create29 connectors |
calltrackingmetrics.users.createCreate user | Create a user and set their role in your account. | write | identity.user.create262 connectors |
calltrackingmetrics.contact_lists.deleteDelete a contact list | Delete a contact list (DELETE /accounts/{account_id}/lists/{contact_list_id}). | destructive | crm.contact_list.delete24 connectors |
calltrackingmetrics.calls.getActivity details | Activity details (GET /accounts/{account_id}/calls/{call_id}). | read | comm.call.get40 connectors |
calltrackingmetrics.sms.sendSend SMS message | Send SMS message (POST /accounts/{account_id}/sms). | write | comm.sms.send26 connectors |
calltrackingmetrics.contact_lists.contactsList all contacts in a contact list | List all contacts in a contact list (GET /accounts/{account_id}/lists/{contact_list_id}/contacts). | read | crm.contact_list_member.list6 connectors |
calltrackingmetrics.sms.listList of SMS messages | List of SMS messages (GET /accounts/{account_id}/sms). | read | comm.sms.list19 connectors |
calltrackingmetrics.contact_lists.add_contactAdd contact to a contact list | Add contact to a contact list (POST /accounts/{account_id}/lists/{contact_list_id}/add_contact). | write | crm.contact_list_member.add9 connectors |
calltrackingmetrics.calls.startStart Phone Call | Initiate a call via API to connect two people together parameters required comments account_id yes the account id call_number yes the number you want to dial… | write | this connector |
Try it
Prompts to paste into Claude.
Each one names the CallTrackingMetrics actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Who has access in CallTrackingMetrics? List every user and their role.
calls
calltrackingmetrics.users.list - Writewrite
Create contact list in CallTrackingMetrics. Show me exactly what you will send before you save it.
calls
calltrackingmetrics.contact_lists.create
Governance for CallTrackingMetrics
Destructive actions wait for a yes.
48 CallTrackingMetrics actions are destructive. The first 10:
- Delete a contact list
calltrackingmetrics.contact_lists.delete - Remove user from account
calltrackingmetrics.users.remove - Add or modify user role
calltrackingmetrics.users.set_role - Release (delete) a tracking number
calltrackingmetrics.numbers.release - Delete trigger
calltrackingmetrics.triggers.delete - Delete webhook
calltrackingmetrics.webhooks.delete - Remove Tag
calltrackingmetrics.calls.remove_tag - Delete a schedule
calltrackingmetrics.schedules.delete - Delete sale record
calltrackingmetrics.call_sales.delete - Remove agent
calltrackingmetrics.agents.remove_call
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 contact list?
intent: the user asked me to delete a contact list
account { op: "keys.create", name: "calltrackingmetrics-agent", allowed_actions: ["calltrackingmetrics.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "calltrackingmetrics.contact_lists.delete", approver: "[email protected]" }, { match: "calltrackingmetrics.users.remove", approver: "[email protected]" }, { match: "calltrackingmetrics.users.set_role", approver: "[email protected]" } ]}Cost
What CallTrackingMetrics costs on actionlake.
Every CallTrackingMetrics action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call CallTrackingMetrics 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 253 CallTrackingMetrics actions
- 253actions pageeach page of a long list is one call
- 96reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every CallTrackingMetrics action.
253 actions by area: the id your agent calls, what it does, and its effect.
Calls24
calltrackingmetrics.calls.add_commentAdd commentwritecalltrackingmetrics.calls.add_tagAdd Tagwritecalltrackingmetrics.calls.block_callerBlock callwritecalltrackingmetrics.calls.delete_commentDelete commentdestructivecalltrackingmetrics.calls.delete_recordingDelete call recordingdestructivecalltrackingmetrics.calls.delete_transcriptionDelete call transcriptiondestructivecalltrackingmetrics.calls.endEnd callwritecalltrackingmetrics.calls.field_mappingMappingreadcalltrackingmetrics.calls.getActivity detailsreadcalltrackingmetrics.calls.listList of activities (calls/texts/chats/forms)readcalltrackingmetrics.calls.mark_spamMark call as spamwritecalltrackingmetrics.calls.modifyModify activity detailswritecalltrackingmetrics.calls.redactRedact activity detailswritecalltrackingmetrics.calls.remove_tagRemove Tagdestructivecalltrackingmetrics.calls.searchSearch activitiesreadcalltrackingmetrics.calls.startStart Phone Callwritecalltrackingmetrics.calls.start_recordingStart call recordingwritecalltrackingmetrics.calls.stop_recordingStop call recordingwritecalltrackingmetrics.calls.transcriptionCall transcriptionsreadcalltrackingmetrics.calls.transfer_to_agentTransfer call to agentdestructivecalltrackingmetrics.calls.transfer_to_numberTransfer call to numberdestructivecalltrackingmetrics.calls.unblock_callerUnblock callwritecalltrackingmetrics.calls.unmark_spamMark call as not spamwritecalltrackingmetrics.calls.update_commentUpdate commentwrite
Numbers20
calltrackingmetrics.numbers.add_receiving_numberAdd receiving number to tracking numberwritecalltrackingmetrics.numbers.add_target_numberAdd tracking number to target numberwritecalltrackingmetrics.numbers.buyBuy number for an accountwritecalltrackingmetrics.numbers.buy_by_area_codeBuy number for an account by area codewritecalltrackingmetrics.numbers.dial_routesDial route details for tracking numberreadcalltrackingmetrics.numbers.disable_smsDisable SMSdestructivecalltrackingmetrics.numbers.enable_smsEnable SMSwritecalltrackingmetrics.numbers.getTracking number detailsreadcalltrackingmetrics.numbers.get_addressAddress for tracking numberreadcalltrackingmetrics.numbers.listList of tracking numbersreadcalltrackingmetrics.numbers.releaseRelease (delete) a tracking numberdestructivecalltrackingmetrics.numbers.remove_receiving_numberRemove receiving number from tracking numberdestructivecalltrackingmetrics.numbers.remove_target_numberRemove tracking number from target numberdestructivecalltrackingmetrics.numbers.search_availableSearch for US/CA numbersreadcalltrackingmetrics.numbers.search_available_internationalSearch for international numbersreadcalltrackingmetrics.numbers.updateUpdate tracking number detailswritecalltrackingmetrics.numbers.update_addressUpdate tracking number addresswritecalltrackingmetrics.numbers.update_dial_routesUpdate tracking numbers routeswritecalltrackingmetrics.numbers.update_routingUpdate number routingwritecalltrackingmetrics.numbers.update_statusUpdate tracking number statuswrite
Accounts15
calltrackingmetrics.accounts.cancelCancel an accountdestructivecalltrackingmetrics.accounts.createCreate an account (agency/shared billing)writecalltrackingmetrics.accounts.create_customer_billingCreate an account (customer billing)writecalltrackingmetrics.accounts.disable_automatic_redactionDisable automatic redactiondestructivecalltrackingmetrics.accounts.enable_automatic_redactionEnable automatic redactionwritecalltrackingmetrics.accounts.getAccount informationreadcalltrackingmetrics.accounts.listList of accountsreadcalltrackingmetrics.accounts.list_namesList of active account IDs and namesreadcalltrackingmetrics.accounts.pausePause an accountwritecalltrackingmetrics.accounts.resumeResume an accountwritecalltrackingmetrics.accounts.scriptsAccount tracking scriptsreadcalltrackingmetrics.accounts.startStart an accountwritecalltrackingmetrics.accounts.statusAccount statusreadcalltrackingmetrics.accounts.stopStop an accountwritecalltrackingmetrics.accounts.updateUpdate an accountwrite
Dialers13
calltrackingmetrics.dialers.add_numbersAdd numberswritecalltrackingmetrics.dialers.createCreate dialerwritecalltrackingmetrics.dialers.getDialer detailsreadcalltrackingmetrics.dialers.import_contact_listImport Contact Listwritecalltrackingmetrics.dialers.listList of dialersreadcalltrackingmetrics.dialers.numbersList of numbers in dialerreadcalltrackingmetrics.dialers.remove_all_numbersRemove all numbersdestructivecalltrackingmetrics.dialers.remove_number_from_allRemove from alldestructivecalltrackingmetrics.dialers.remove_numbersRemove numbersdestructivecalltrackingmetrics.dialers.startStartwritecalltrackingmetrics.dialers.statusDialer statusreadcalltrackingmetrics.dialers.stopStopwritecalltrackingmetrics.dialers.updateUpdate dialerwrite
Contact lists10
calltrackingmetrics.contact_lists.add_contactAdd contact to a contact listwritecalltrackingmetrics.contact_lists.contactsList all contacts in a contact listreadcalltrackingmetrics.contact_lists.containsCheck if a contact exists within the listreadcalltrackingmetrics.contact_lists.createCreate contact listwritecalltrackingmetrics.contact_lists.deleteDelete a contact listdestructivecalltrackingmetrics.contact_lists.getContact list informationreadcalltrackingmetrics.contact_lists.listList of contact listsreadcalltrackingmetrics.contact_lists.remove_all_contactsDelete all contacts from a contact listdestructivecalltrackingmetrics.contact_lists.remove_contactsDelete contact from a contact listdestructivecalltrackingmetrics.contact_lists.updateUpdate a contact listwrite
Custom fields10
calltrackingmetrics.custom_fields.createCreate custom fieldwritecalltrackingmetrics.custom_fields.deleteDelete custom fielddestructivecalltrackingmetrics.custom_fields.getCustom fieldreadcalltrackingmetrics.custom_fields.get_panelCustom panelreadcalltrackingmetrics.custom_fields.listList of custom fieldsreadcalltrackingmetrics.custom_fields.list_by_typeList custom fields by typereadcalltrackingmetrics.custom_fields.list_panelsList of custom panelsreadcalltrackingmetrics.custom_fields.save_panelsSave panelswritecalltrackingmetrics.custom_fields.updateUpdate custom fieldwritecalltrackingmetrics.custom_fields.update_picker_optionsUpdate picker optionswrite
Tracking sources9
calltrackingmetrics.tracking_sources.add_numberAdd a tracking number to a tracking sourcewritecalltrackingmetrics.tracking_sources.createCreate a tracking sourcewritecalltrackingmetrics.tracking_sources.deleteDelete a tracking sourcedestructivecalltrackingmetrics.tracking_sources.getTracking source detailsreadcalltrackingmetrics.tracking_sources.listList of tracking sourcesreadcalltrackingmetrics.tracking_sources.pausePause a tracking sourcewritecalltrackingmetrics.tracking_sources.remove_numberRemove a tracking number from a tracking sourcedestructivecalltrackingmetrics.tracking_sources.unpauseUnpause a tracking sourcewritecalltrackingmetrics.tracking_sources.updateUpdate a tracking sourcewrite
Agents8
calltrackingmetrics.agents.assign_callAssign agentwritecalltrackingmetrics.agents.eventsAgent Eventsreadcalltrackingmetrics.agents.listList agentsreadcalltrackingmetrics.agents.list_by_statusBy agent statusreadcalltrackingmetrics.agents.phone_statusGet agent statusreadcalltrackingmetrics.agents.remove_callRemove agentdestructivecalltrackingmetrics.agents.update_statusAdmin update agent statuswritecalltrackingmetrics.agents.utilizationAgent Utilizationread
Call settings8
calltrackingmetrics.call_settings.createCreate new call settingwritecalltrackingmetrics.call_settings.deleteDelete call settingdestructivecalltrackingmetrics.call_settings.getList details of a call settingreadcalltrackingmetrics.call_settings.get_defaultDefault call settingreadcalltrackingmetrics.call_settings.listList of call settingsreadcalltrackingmetrics.call_settings.number_listList of numbers assigned and available to assign to a call settingreadcalltrackingmetrics.call_settings.set_defaultSet default call settingwritecalltrackingmetrics.call_settings.updateUpdate call settingwrite
Users8
calltrackingmetrics.users.createCreate userwritecalltrackingmetrics.users.getUser detailsreadcalltrackingmetrics.users.listList of usersreadcalltrackingmetrics.users.removeRemove user from accountdestructivecalltrackingmetrics.users.set_roleAdd or modify user roledestructivecalltrackingmetrics.users.updateUpdate userwritecalltrackingmetrics.users.update_outbound_numberUpdate outbound numberwritecalltrackingmetrics.users.update_receiving_numberUpdate receiving numberwrite
Geo routers7
calltrackingmetrics.geo_routers.batchBatch GEO Processingwritecalltrackingmetrics.geo_routers.createCreate Geo Routerwritecalltrackingmetrics.geo_routers.getGeo router detailreadcalltrackingmetrics.geo_routers.listList of geo routersreadcalltrackingmetrics.geo_routers.pause_numberPause numberwritecalltrackingmetrics.geo_routers.resume_numberResume numberwritecalltrackingmetrics.geo_routers.updateUpdate Geo Routerwrite
Lead reactors7
calltrackingmetrics.lead_reactors.add_taskAdd_taskwritecalltrackingmetrics.lead_reactors.bulk_importBulk Importwritecalltrackingmetrics.lead_reactors.createCreatewritecalltrackingmetrics.lead_reactors.deleteDeletedestructivecalltrackingmetrics.lead_reactors.delete_taskDelete_taskdestructivecalltrackingmetrics.lead_reactors.updateUpdatewritecalltrackingmetrics.lead_reactors.update_taskUpdate_taskwrite
Price schedules7
calltrackingmetrics.price_schedules.add_accountAdd account to price schedulewritecalltrackingmetrics.price_schedules.createCreate price schedulewritecalltrackingmetrics.price_schedules.deleteRemove price settingdestructivecalltrackingmetrics.price_schedules.getPrice schedule informationreadcalltrackingmetrics.price_schedules.listList price schedulesreadcalltrackingmetrics.price_schedules.remove_accountRemove account from price scheduledestructivecalltrackingmetrics.price_schedules.updateUpdate price schedulewrite
Payment methods6
calltrackingmetrics.payment_methods.createAdd payment methodwritecalltrackingmetrics.payment_methods.deleteDelete payment methoddestructivecalltrackingmetrics.payment_methods.getPayment method detailsreadcalltrackingmetrics.payment_methods.listList of payment methodsreadcalltrackingmetrics.payment_methods.set_primarySet payment method as primarywritecalltrackingmetrics.payment_methods.toggle_backupSet payment method as backupwrite
Access groups5
calltrackingmetrics.access_groups.createCreate access groupwritecalltrackingmetrics.access_groups.deleteDelete access groupdestructivecalltrackingmetrics.access_groups.getAccess group detailreadcalltrackingmetrics.access_groups.listList of access control groupsreadcalltrackingmetrics.access_groups.updateUpdate access groupwrite
Form reactors5
calltrackingmetrics.form_reactors.getFormReactors detailsreadcalltrackingmetrics.form_reactors.grant_consentGrant consentwritecalltrackingmetrics.form_reactors.listList of FormReactorsreadcalltrackingmetrics.form_reactors.lookupResolve FormReactor response to activity IDreadcalltrackingmetrics.form_reactors.submitFormreactor server side requestwrite
Price settings5
calltrackingmetrics.price_settings.createCreate price settingwritecalltrackingmetrics.price_settings.deleteRemove price settingdestructivecalltrackingmetrics.price_settings.getPrice setting informationreadcalltrackingmetrics.price_settings.listList price settingsreadcalltrackingmetrics.price_settings.updateUpdate price settingwrite
Receiving numbers5
calltrackingmetrics.receiving_numbers.createCreate a receiving numberwritecalltrackingmetrics.receiving_numbers.deleteDelete a receiving numberdestructivecalltrackingmetrics.receiving_numbers.getReceiving number detailsreadcalltrackingmetrics.receiving_numbers.listList receiving numbersreadcalltrackingmetrics.receiving_numbers.updateUpdate a receiving numberwrite
Smart routers5
calltrackingmetrics.smart_routers.createCreate smart routerwritecalltrackingmetrics.smart_routers.deleteDelete smart routerdestructivecalltrackingmetrics.smart_routers.getSmart router detailsreadcalltrackingmetrics.smart_routers.listList of all smart routersreadcalltrackingmetrics.smart_routers.updateUpdate smart routerwrite
Triggers5
calltrackingmetrics.triggers.createCreate triggerwritecalltrackingmetrics.triggers.deleteDelete triggerdestructivecalltrackingmetrics.triggers.getTrigger detailreadcalltrackingmetrics.triggers.listList of triggersreadcalltrackingmetrics.triggers.updateUpdate triggerwrite
User groups5
calltrackingmetrics.user_groups.createCreate user groupwritecalltrackingmetrics.user_groups.deleteRemove user groupdestructivecalltrackingmetrics.user_groups.getUser group detailsreadcalltrackingmetrics.user_groups.listList of user groupsreadcalltrackingmetrics.user_groups.updateUpdate user groupwrite
Voice menu items5
calltrackingmetrics.voice_menu_items.createCreate voice menu itemwritecalltrackingmetrics.voice_menu_items.deleteDelete voice menu itemdestructivecalltrackingmetrics.voice_menu_items.getVoice menu item detailsreadcalltrackingmetrics.voice_menu_items.listList of voice menu itemsreadcalltrackingmetrics.voice_menu_items.updateUpdate voice menu itemwrite
Voice menus5
calltrackingmetrics.voice_menus.createCreate voice menuwritecalltrackingmetrics.voice_menus.deleteDelete voice menudestructivecalltrackingmetrics.voice_menus.getVoice menu detailsreadcalltrackingmetrics.voice_menus.listList of voice menusreadcalltrackingmetrics.voice_menus.updateUpdate voice menuwrite
Webhooks5
calltrackingmetrics.webhooks.createCreate webhookwritecalltrackingmetrics.webhooks.deleteDelete webhookdestructivecalltrackingmetrics.webhooks.getWebhook detailsreadcalltrackingmetrics.webhooks.listList of webhooksreadcalltrackingmetrics.webhooks.updateUpdate webhookwrite
Divisions4
calltrackingmetrics.divisions.accountsList of divisions account listreadcalltrackingmetrics.divisions.adminsList of divisions admin listreadcalltrackingmetrics.divisions.listList of divisionsreadcalltrackingmetrics.divisions.usersList of divisions user listread
Opt out texts4
calltrackingmetrics.opt_out_texts.createAdd opt out text/smswritecalltrackingmetrics.opt_out_texts.deleteRemove opt out text/smsdestructivecalltrackingmetrics.opt_out_texts.getOpt out text/sms detailsreadcalltrackingmetrics.opt_out_texts.listList opt out text/smsread
Queues4
calltrackingmetrics.queues.add_agentAdd agent to a queuewritecalltrackingmetrics.queues.createCreate a queuewritecalltrackingmetrics.queues.listList of queuesreadcalltrackingmetrics.queues.remove_agentRemove agent from a queuedestructive
Schedules4
calltrackingmetrics.schedules.createCreate a schedulewritecalltrackingmetrics.schedules.deleteDelete a scheduledestructivecalltrackingmetrics.schedules.getRetrieve schedule detailreadcalltrackingmetrics.schedules.listList of schedulesread
Target numbers4
calltrackingmetrics.target_numbers.createCreate a target numberwritecalltrackingmetrics.target_numbers.deleteDelete a target numberdestructivecalltrackingmetrics.target_numbers.getTarget number detailsreadcalltrackingmetrics.target_numbers.listList of target numbersread
Trust centers4
calltrackingmetrics.trust_centers.a2p_campaignsList a2p campaigns of a specific trust centerreadcalltrackingmetrics.trust_centers.listList trust centersreadcalltrackingmetrics.trust_centers.list_a2p_campaignsList a2p campaignsreadcalltrackingmetrics.trust_centers.list_toll_free_registrationsList toll free registrationsread
Blocked numbers3
calltrackingmetrics.blocked_numbers.blockBlock numberwritecalltrackingmetrics.blocked_numbers.listList blocked numbersreadcalltrackingmetrics.blocked_numbers.unblockUnblock numberdestructive
Call sales3
calltrackingmetrics.call_sales.deleteDelete sale recorddestructivecalltrackingmetrics.call_sales.getGet sale recordreadcalltrackingmetrics.call_sales.upsertCreate/edit sale recordwrite
Change notifications3
calltrackingmetrics.change_notifications.createCreate change notificationwritecalltrackingmetrics.change_notifications.deleteDelete change notificationdestructivecalltrackingmetrics.change_notifications.listList of change notificationsread
Do not calls3
calltrackingmetrics.do_not_calls.createCreate a do not call numberwritecalltrackingmetrics.do_not_calls.deleteDelete a do not call numberdestructivecalltrackingmetrics.do_not_calls.listList do not call numbersread
Google analytics3
calltrackingmetrics.google_analytics.linkGoogle analytics link informationreadcalltrackingmetrics.google_analytics.linksGoogle analytics linksreadcalltrackingmetrics.google_analytics.trigger_eventGoogle analytics trigger eventwrite
Number addresses3
calltrackingmetrics.number_addresses.createCreate a new addresswritecalltrackingmetrics.number_addresses.deleteDelete an addressdestructivecalltrackingmetrics.number_addresses.listList of addressesread
SMS3
calltrackingmetrics.sms.getSMS message detailsreadcalltrackingmetrics.sms.listList of SMS messagesreadcalltrackingmetrics.sms.sendSend SMS messagewrite
Reports2
calltrackingmetrics.reports.seriesReporting Seriesreadcalltrackingmetrics.reports.usage_logsUsage Logsread
Tracking script settings2
calltrackingmetrics.tracking_script_settings.getTracking script settingsreadcalltrackingmetrics.tracking_script_settings.updateUpdate tracking script settingswrite
Agency1
calltrackingmetrics.agency.getAgency informationread
Lookup1
calltrackingmetrics.lookup.searchLookup apiread
Questions
The CallTrackingMetrics MCP server, answered.
Is there a CallTrackingMetrics MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 253 CallTrackingMetrics actions across calls, numbers, accounts and dialers, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by CallTrackingMetrics.
What do I need to connect CallTrackingMetrics?
CTM API Access Key (Account Settings > API Integration, or Agency Settings for multi-account access) and CTM API Secret Key shown beside the Access Key. The free call account { op: "connections.requirements", service: "calltrackingmetrics" } lists exactly what to paste.
Can an AI agent delete or change things in CallTrackingMetrics?
Only if its key allows it, and only with an explicit confirmation. 48 CallTrackingMetrics actions are destructive, including delete a contact list, remove user from account and add or modify user role. 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 CallTrackingMetrics API limit?
actionlake paces every call to the limits in the CallTrackingMetrics service file: 10 calls a second per connection. Repeated reads are answered from cache (96 CallTrackingMetrics actions can be), which never reaches CallTrackingMetrics.
What does a CallTrackingMetrics action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (253 CallTrackingMetrics actions page). Cache hits, searches, dry runs and calls CallTrackingMetrics 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 CallTrackingMetrics API does it cover?
The CTM REST API v1 (https://api.calltrackingmetrics.com/api/v1) at api.calltrackingmetrics.com/api/v1. It is built from CallTrackingMetrics's documentation as read on 23 October 2026. 253 actions in 41 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my CallTrackingMetrics 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 CallTrackingMetrics 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 CallTrackingMetrics today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.