Aircall MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Read calls, contacts, users, teams and numbers; tag calls and create or update contacts.
25 tools: 4 can delete or cancel things and 21 only read.
Scanned Oct 21, 2026
- Deletes or cancels4Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads21Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http aircall https://aircall.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
- Infoaircall_ping
The description mentions "credentials".
What this check looks forMatched text
description: "...k — verify the API is reachable and the credentials are valid. Aircall REST: GET /ping."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
25 tools
Deletes or cancels 4Claude Code: deny
aircall_add_call_commentAdd a comment / note to a call.No findings
Why it is in this group
- The name "aircall_add_call_comment" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Add a comment / note to a call. Aircall REST: POST /calls/{id}/comments.
Annotations the server declares
- title: Add call comment
- destructiveHint: true
aircall_create_contactCreate a new contact in the shared address book.No findings
Why it is in this group
- The name "aircall_create_contact" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a new contact in the shared address book. Aircall typically requires at least one of first_name / last_name / company_name. Aircall REST: POST /contacts.
Annotations the server declares
- title: Create contact
- destructiveHint: true
aircall_tag_callApply tags to a call by tag id (get ids from aircall_list_tags).No findings
Why it is in this group
- The name "aircall_tag_call" says "call": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Apply tags to a call by tag id (get ids from aircall_list_tags). Aircall REST: POST /calls/{id}/tags.
Annotations the server declares
- title: Tag call
- destructiveHint: true
aircall_update_contactUpdate fields on an existing contact.No findings
Why it is in this group
- The name "aircall_update_contact" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update fields on an existing contact. Only provided fields are changed. Aircall REST: PUT /contacts/{id}.
Annotations the server declares
- title: Update contact
- destructiveHint: true
Only reads 21Claude Code: allow
aircall_get_callGet a single call by id.No findings
Why it is in this group
- The name "aircall_get_call" says "get": a word for reading.
Description, as the server wrote it Get a single call by id. Aircall REST: GET /calls/{id}.
Annotations the server declares
- title: Get call
- readOnlyHint: true
aircall_get_call_action_itemsGet the AI-extracted action items / follow-ups from a call (Aircall AI Voice feature).No findings
Why it is in this group
- The name "aircall_get_call_action_items" says "get": a word for reading.
Description, as the server wrote it Get the AI-extracted action items / follow-ups from a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/action_items.
Annotations the server declares
- title: Get call action items
- readOnlyHint: true
aircall_get_call_sentimentsGet the AI-generated sentiment analysis of a call (Aircall AI Voice feature).No findings
Why it is in this group
- The name "aircall_get_call_sentiments" says "get": a word for reading.
Description, as the server wrote it Get the AI-generated sentiment analysis of a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/sentiments.
Annotations the server declares
- title: Get call sentiments
- readOnlyHint: true
aircall_get_call_summaryGet the AI-generated summary of a call (Aircall AI Voice feature).No findings
Why it is in this group
- The name "aircall_get_call_summary" says "get": a word for reading.
Description, as the server wrote it Get the AI-generated summary of a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/summary.
Annotations the server declares
- title: Get call summary
- readOnlyHint: true
aircall_get_call_topicsGet the AI-detected topics of a call (Aircall AI Voice feature).No findings
Why it is in this group
- The name "aircall_get_call_topics" says "get": a word for reading.
Description, as the server wrote it Get the AI-detected topics of a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/topics.
Annotations the server declares
- title: Get call topics
- readOnlyHint: true
aircall_get_call_transcriptionGet the AI-generated transcription of a call (Aircall AI Voice feature).No findings
Why it is in this group
- The name "aircall_get_call_transcription" says "get": a word for reading.
Description, as the server wrote it Get the AI-generated transcription of a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/transcription.
Annotations the server declares
- title: Get call transcription
- readOnlyHint: true
aircall_get_companyGet details of the authenticated Aircall company (name, plan, usage).No findings
Why it is in this group
- The name "aircall_get_company" says "get": a word for reading.
Description, as the server wrote it Get details of the authenticated Aircall company (name, plan, usage). Aircall REST: GET /company.
Annotations the server declares
- title: Get company
- readOnlyHint: true
aircall_get_contactGet a single contact by id.No findings
Why it is in this group
- The name "aircall_get_contact" says "get": a word for reading.
Description, as the server wrote it Get a single contact by id. Aircall REST: GET /contacts/{id}.
Annotations the server declares
- title: Get contact
- readOnlyHint: true
aircall_get_numberGet a single phone number by id.No findings
Why it is in this group
- The name "aircall_get_number" says "get": a word for reading.
Description, as the server wrote it Get a single phone number by id. Aircall REST: GET /numbers/{id}.
Annotations the server declares
- title: Get number
- readOnlyHint: true
aircall_get_tagGet a single tag by id.No findings
Why it is in this group
- The name "aircall_get_tag" says "get": a word for reading.
Description, as the server wrote it Get a single tag by id. Aircall REST: GET /tags/{id}.
Annotations the server declares
- title: Get tag
- readOnlyHint: true
aircall_get_teamGet a single team by id.No findings
Why it is in this group
- The name "aircall_get_team" says "get": a word for reading.
Description, as the server wrote it Get a single team by id. Aircall REST: GET /teams/{id}.
Annotations the server declares
- title: Get team
- readOnlyHint: true
aircall_get_userGet a single user (agent) by id.No findings
Why it is in this group
- The name "aircall_get_user" says "get": a word for reading.
Description, as the server wrote it Get a single user (agent) by id. Aircall REST: GET /users/{id}.
Annotations the server declares
- title: Get user
- readOnlyHint: true
aircall_list_callsList calls, optionally filtered by a creation-date window and ordered.No findings
Why it is in this group
- The name "aircall_list_calls" says "list": a word for reading.
Description, as the server wrote it List calls, optionally filtered by a creation-date window and ordered. Aircall REST: GET /calls.
Annotations the server declares
- title: List calls
- readOnlyHint: true
aircall_list_contactsList contacts in the shared address book, optionally by creation-date window and order.No findings
Why it is in this group
- The name "aircall_list_contacts" says "list": a word for reading.
Description, as the server wrote it List contacts in the shared address book, optionally by creation-date window and order. Aircall REST: GET /contacts.
Annotations the server declares
- title: List contacts
- readOnlyHint: true
aircall_list_numbersList the phone numbers owned by the company (id, name, digits, country).No findings
Why it is in this group
- The name "aircall_list_numbers" says "list": a word for reading.
Description, as the server wrote it List the phone numbers owned by the company (id, name, digits, country). Aircall REST: GET /numbers.
Annotations the server declares
- title: List numbers
- readOnlyHint: true
aircall_list_tagsList the company's call tags (id, name, color).No findings
Why it is in this group
- The name "aircall_list_tags" says "list": a word for reading.
Description, as the server wrote it List the company's call tags (id, name, color). Aircall REST: GET /tags.
Annotations the server declares
- title: List tags
- readOnlyHint: true
aircall_list_teamsList the company's teams and their members.No findings
Why it is in this group
- The name "aircall_list_teams" says "list": a word for reading.
Description, as the server wrote it List the company's teams and their members. Aircall REST: GET /teams.
Annotations the server declares
- title: List teams
- readOnlyHint: true
aircall_list_usersList users (agents) in the Aircall company (id, name, email, availability).No findings
Why it is in this group
- The name "aircall_list_users" says "list": a word for reading.
Description, as the server wrote it List users (agents) in the Aircall company (id, name, email, availability). Aircall REST: GET /users.
Annotations the server declares
- title: List users
- readOnlyHint: true
aircall_pingHealth check — verify the API is reachable and the credentials are valid.1 finding
Why it is in this group
- The name "aircall_ping" says "ping": a word for reading.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...k — verify the API is reachable and the credentials are valid. Aircall REST: GET /ping."
Description, as the server wrote it Health check — verify the API is reachable and the credentials are valid. Aircall REST: GET /ping.
Annotations the server declares
- title: Ping
- readOnlyHint: true
aircall_search_callsSearch calls by a free-text term (e.g.No findings
Why it is in this group
- The name "aircall_search_calls" says "search": a word for reading.
Description, as the server wrote it Search calls by a free-text term (e.g. phone number, tag, direction). Aircall REST: GET /calls/search.
Annotations the server declares
- title: Search calls
- readOnlyHint: true
aircall_search_contactsSearch contacts by a free-text term (e.g.No findings
Why it is in this group
- The name "aircall_search_contacts" says "search": a word for reading.
Description, as the server wrote it Search contacts by a free-text term (e.g. name, phone number, email). Aircall REST: GET /contacts/search.
Annotations the server declares
- title: Search contacts
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http aircall https://aircall.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__aircall__aircall_ping",
"mcp__aircall__aircall_get_company",
"mcp__aircall__aircall_list_users",
"mcp__aircall__aircall_get_user",
"mcp__aircall__aircall_list_calls",
"mcp__aircall__aircall_get_call",
"mcp__aircall__aircall_search_calls",
"mcp__aircall__aircall_list_numbers",
"mcp__aircall__aircall_get_number",
"mcp__aircall__aircall_list_contacts",
"mcp__aircall__aircall_get_contact",
"mcp__aircall__aircall_search_contacts",
"mcp__aircall__aircall_list_tags",
"mcp__aircall__aircall_get_tag",
"mcp__aircall__aircall_list_teams",
"mcp__aircall__aircall_get_team",
"mcp__aircall__aircall_get_call_transcription",
"mcp__aircall__aircall_get_call_sentiments",
"mcp__aircall__aircall_get_call_topics",
"mcp__aircall__aircall_get_call_summary",
"mcp__aircall__aircall_get_call_action_items"
],
"ask": [],
"deny": [
"mcp__aircall__aircall_create_contact",
"mcp__aircall__aircall_update_contact",
"mcp__aircall__aircall_add_call_comment",
"mcp__aircall__aircall_tag_call"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as aircall. Review it before you use it.