Read calls, contacts, users, teams and numbers; tag calls and create or update contacts.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add a comment / note to a call. Aircall REST: POST /calls/{id}/comments.
The call id to comment on.
The comment text (required).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Add a comment / note to a call. Aircall REST: POST /calls/{id}/comments.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The call id to comment on. |
| content* | string | The comment text (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"content"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The call id to comment on."
},
"content": {
"type": "string",
"description": "The comment text (required)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| emails | array | Email addresses for the contact, each { label, value }. |
| last_name | string | The contact's last name. |
| first_name | string | The contact's first name. |
| information | string | Freeform notes about the contact. |
| company_name | string | The contact's company name. |
| phone_numbers | array | Phone numbers for the contact, each { label, value }. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string",
"description": "Label for the entry, e.g. 'Work', 'Home', 'Mobile'."
},
"value": {
"type": "string",
"description": "The phone number or email address."
}
},
"description": "A labelled contact detail entry."
},
"description": "Email addresses for the contact, each { label, value }."
},
"last_name": {
"type": "string",
"description": "The contact's last name."
},
"first_name": {
"type": "string",
"description": "The contact's first name."
},
"information": {
"type": "string",
"description": "Freeform notes about the contact."
},
"company_name": {
"type": "string",
"description": "The contact's company name."
},
"phone_numbers": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string",
"description": "Label for the entry, e.g. 'Work', 'Home', 'Mobile'."
},
"value": {
"type": "string",
"description": "The phone number or email address."
}
},
"description": "A labelled contact detail entry."
},
"description": "Phone numbers for the contact, each { label, value }."
}
}
}Get a single call by id. Aircall REST: GET /calls/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The call id. |
| fetch_contact | boolean | If true, include the full contact details for the call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The call id."
},
"fetch_contact": {
"type": "boolean",
"description": "If true, include the full contact details for the call."
}
}
}Get the AI-extracted action items / follow-ups from a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/action_items.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The call id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The call id."
}
}
}Get the AI-generated sentiment analysis of a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/sentiments.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The call id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The call id."
}
}
}Get the AI-generated summary of a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/summary.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The call id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The call id."
}
}
}Get the AI-detected topics of a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/topics.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The call id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The call id."
}
}
}Get the AI-generated transcription of a call (Aircall AI Voice feature). Aircall REST: GET /calls/{id}/transcription.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The call id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The call id."
}
}
}Get details of the authenticated Aircall company (name, plan, usage). Aircall REST: GET /company.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get a single contact by id. Aircall REST: GET /contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The contact id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The contact id."
}
}
}Get a single phone number by id. Aircall REST: GET /numbers/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The number id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The number id."
}
}
}Get a single tag by id. Aircall REST: GET /tags/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The tag id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The tag id."
}
}
}Get a single team by id. Aircall REST: GET /teams/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The team id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The team id."
}
}
}Get a single user (agent) by id. Aircall REST: GET /users/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The user id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The user id."
}
}
}List calls, optionally filtered by a creation-date window and ordered. Aircall REST: GET /calls.
| Argument | Type | Description |
|---|---|---|
| to | string | Maximal creation date — a UNIX timestamp or ISO 8601 string. |
| from | string | Minimal creation date — a UNIX timestamp or ISO 8601 string. |
| page | integer | 1-based page number to fetch (default 1). |
| order | string | Sort order by creation date — 'asc' or 'desc' (default asc). |
| per_page | integer | Results per page (default 20, max 50). |
| fetch_contact | boolean | If true, include the full contact details of each call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"type": "string",
"description": "Maximal creation date — a UNIX timestamp or ISO 8601 string."
},
"from": {
"type": "string",
"description": "Minimal creation date — a UNIX timestamp or ISO 8601 string."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number to fetch (default 1)."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order by creation date — 'asc' or 'desc' (default asc)."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page (default 20, max 50)."
},
"fetch_contact": {
"type": "boolean",
"description": "If true, include the full contact details of each call."
}
}
}List contacts in the shared address book, optionally by creation-date window and order. Aircall REST: GET /contacts.
| Argument | Type | Description |
|---|---|---|
| to | string | Maximal creation date — a UNIX timestamp or ISO 8601 string. |
| from | string | Minimal creation date — a UNIX timestamp or ISO 8601 string. |
| page | integer | 1-based page number to fetch (default 1). |
| order | string | Sort order by creation date — 'asc' or 'desc' (default asc). |
| per_page | integer | Results per page (default 20, max 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"type": "string",
"description": "Maximal creation date — a UNIX timestamp or ISO 8601 string."
},
"from": {
"type": "string",
"description": "Minimal creation date — a UNIX timestamp or ISO 8601 string."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number to fetch (default 1)."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order by creation date — 'asc' or 'desc' (default asc)."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page (default 20, max 50)."
}
}
}List the phone numbers owned by the company (id, name, digits, country). Aircall REST: GET /numbers.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number to fetch (default 1). |
| per_page | integer | Results per page (default 20, max 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number to fetch (default 1)."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page (default 20, max 50)."
}
}
}List the company's call tags (id, name, color). Aircall REST: GET /tags.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number to fetch (default 1). |
| per_page | integer | Results per page (default 20, max 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number to fetch (default 1)."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page (default 20, max 50)."
}
}
}List the company's teams and their members. Aircall REST: GET /teams.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number to fetch (default 1). |
| per_page | integer | Results per page (default 20, max 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number to fetch (default 1)."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page (default 20, max 50)."
}
}
}List users (agents) in the Aircall company (id, name, email, availability). Aircall REST: GET /users.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number to fetch (default 1). |
| per_page | integer | Results per page (default 20, max 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number to fetch (default 1)."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page (default 20, max 50)."
}
}
}Health check — verify the API is reachable and the credentials are valid. Aircall REST: GET /ping.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Search calls by a free-text term (e.g. phone number, tag, direction). Aircall REST: GET /calls/search.
| Argument | Type | Description |
|---|---|---|
| q | string | Search term to match calls against. |
| page | integer | 1-based page number to fetch (default 1). |
| per_page | integer | Results per page (default 20, max 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"description": "Search term to match calls against."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number to fetch (default 1)."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page (default 20, max 50)."
}
}
}Search contacts by a free-text term (e.g. name, phone number, email). Aircall REST: GET /contacts/search.
| Argument | Type | Description |
|---|---|---|
| q | string | Search term to match contacts against. |
| page | integer | 1-based page number to fetch (default 1). |
| per_page | integer | Results per page (default 20, max 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"description": "Search term to match contacts against."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number to fetch (default 1)."
},
"per_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Results per page (default 20, max 50)."
}
}
}Apply tags to a call by tag id (get ids from aircall_list_tags). Aircall REST: POST /calls/{id}/tags.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The call id to tag. |
| tag_ids* | array | Ids of the tags to apply (from aircall_list_tags) (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"tag_ids"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The call id to tag."
},
"tag_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"description": "Ids of the tags to apply (from aircall_list_tags) (required)."
}
}
}Update fields on an existing contact. Only provided fields are changed. Aircall REST: PUT /contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The contact id to update. |
| emails | array | Replace the contact's email addresses, each { label, value }. |
| last_name | string | The contact's last name. |
| first_name | string | The contact's first name. |
| information | string | Freeform notes about the contact. |
| company_name | string | The contact's company name. |
| phone_numbers | array | Replace the contact's phone numbers, each { label, value }. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The contact id to update."
},
"emails": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string",
"description": "Label for the entry, e.g. 'Work', 'Home', 'Mobile'."
},
"value": {
"type": "string",
"description": "The phone number or email address."
}
},
"description": "A labelled contact detail entry."
},
"description": "Replace the contact's email addresses, each { label, value }."
},
"last_name": {
"type": "string",
"description": "The contact's last name."
},
"first_name": {
"type": "string",
"description": "The contact's first name."
},
"information": {
"type": "string",
"description": "Freeform notes about the contact."
},
"company_name": {
"type": "string",
"description": "The contact's company name."
},
"phone_numbers": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string",
"description": "Label for the entry, e.g. 'Work', 'Home', 'Mobile'."
},
"value": {
"type": "string",
"description": "The phone number or email address."
}
},
"description": "A labelled contact detail entry."
},
"description": "Replace the contact's phone numbers, each { label, value }."
}
}
}