Skip to content

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.

Deletes · 4

25 tools: 4 can delete or cancel things and 21 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

1 info
  • The description mentions "credentials".

    Matched text

    description: "...k — verify the API is reachable and the credentials are valid. Aircall REST: GET /ping."

    What this check looks for

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

      Matched text

      description: "...k — verify the API is reachable and the credentials are valid. Aircall REST: GET /ping."

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

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