openphone
Send and read OpenPhone messages, calls, contacts and phone numbers.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin openphone_get_contact_custom_fields
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"openphone": {
"url": "https://openphone.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://openphone.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (16)
🟢openphone_list_phone_numbers(userId)
List the OpenPhone numbers in the workspace (id, number, name, formatted number, assigned users, restrictions). Usually the first call — most other tools need a phoneNumberId. OpenPhone REST: GET /phone-numbers.
Eingabe-Schema
{
"type": "object",
"properties": {
"userId": {
"description": "Scope results to a user's access (a user id starting with 'US'). From openphone_list_users.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_list_users(maxResults, pageToken)
List workspace users (id, email, name, role). Use to find a userId for scoping other calls. OpenPhone REST: GET /users.
Eingabe-Schema
{
"type": "object",
"properties": {
"maxResults": {
"description": "Results per page, 1-50. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"pageToken": {
"description": "Pagination token from a previous response's nextPageToken.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_list_contacts(maxResults, pageToken, externalIds, sources)
List contacts in the workspace, optionally filtered by external ids or sources. Returns each contact's default fields (name, company, emails, phone numbers) and custom fields. OpenPhone REST: GET /contacts.
Eingabe-Schema
{
"type": "object",
"properties": {
"maxResults": {
"description": "Results per page, 1-50. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"pageToken": {
"description": "Pagination token from a previous response's nextPageToken.",
"type": "string"
},
"externalIds": {
"description": "Filter to contacts with these external ids (from an integrated system).",
"type": "array",
"items": {
"type": "string"
}
},
"sources": {
"description": "Filter to contacts created by these sources.",
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_get_contact(id)
Get a single contact by its id, including default fields (name, company, role, emails, phone numbers) and custom fields. OpenPhone REST: GET /contacts/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The contact id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_get_contact_custom_fields
List the workspace's contact custom-field definitions (name, key, type). Use the returned keys when creating contacts with custom fields. OpenPhone REST: GET /contact-custom-fields.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_list_conversations(maxResults, phoneNumbers, userId, createdAfter, createdBefore, ...)
List conversations (threads), most-recent activity first, optionally filtered by phone number(s), user, and created/updated date ranges. Each conversation has participants, assignee, and last-activity metadata. OpenPhone REST: GET /conversations.
Eingabe-Schema
{
"type": "object",
"properties": {
"maxResults": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Results per page, 1-100 (required)."
},
"phoneNumbers": {
"description": "Filter to conversations on these OpenPhone numbers (E.164 or 'PN...' ids), 1-100 items.",
"type": "array",
"items": {
"type": "string"
}
},
"userId": {
"description": "Scope results to a user's access (a user id starting with 'US'). From openphone_list_users.",
"type": "string"
},
"createdAfter": {
"description": "Only conversations created after as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.",
"type": "string"
},
"createdBefore": {
"description": "Only conversations created before as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.",
"type": "string"
},
"updatedAfter": {
"description": "Only conversations updated after as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.",
"type": "string"
},
"updatedBefore": {
"description": "Only conversations updated before as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.",
"type": "string"
},
"excludeInactive": {
"description": "Exclude inactive conversations when true.",
"type": "boolean"
},
"pageToken": {
"description": "Pagination token from a previous response's nextPageToken.",
"type": "string"
}
},
"required": [
"maxResults"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_list_messages(phoneNumberId, participants, maxResults, userId, createdAfter, ...)
List messages in a conversation between one of your OpenPhone numbers and one or more participants. Returns text, direction, status and timestamps. OpenPhone REST: GET /messages.
Eingabe-Schema
{
"type": "object",
"properties": {
"phoneNumberId": {
"type": "string",
"minLength": 1,
"description": "An OpenPhone phone-number id (starts with 'PN'). Get it from openphone_list_phone_numbers."
},
"participants": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string"
},
"description": "Participant phone numbers in E.164 format (e.g. '+15555555555'), 1-10 items (required)."
},
"maxResults": {
"description": "Results per page, 1-100. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"userId": {
"description": "Scope results to a user's access (a user id starting with 'US'). From openphone_list_users.",
"type": "string"
},
"createdAfter": {
"description": "Only messages created after as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.",
"type": "string"
},
"createdBefore": {
"description": "Only messages created before as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.",
"type": "string"
},
"pageToken": {
"description": "Pagination token from a previous response's nextPageToken.",
"type": "string"
}
},
"required": [
"phoneNumberId",
"participants"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_get_message(id)
Get a single message by its id (starts with 'AC'). OpenPhone REST: GET /messages/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The message id (starts with 'AC')."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴openphone_send_message(content, from, to, userId, setInboxStatus)
Send an SMS/text message from one of your OpenPhone numbers to up to 10 recipients. WRITE ACTION — this actually sends a real text message (which may incur carrier cost and requires approved A2P 10DLC registration). OpenPhone REST: POST /messages.
Eingabe-Schema
{
"type": "object",
"properties": {
"content": {
"type": "string",
"minLength": 1,
"maxLength": 1600,
"description": "The message body, 1-1600 characters (required)."
},
"from": {
"type": "string",
"minLength": 1,
"description": "The sending OpenPhone number — a phone-number id ('PN...') or E.164 number, e.g. '+15555555555' (required)."
},
"to": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string"
},
"description": "Recipients in E.164 format (or contact ids), 1-10 items (required)."
},
"userId": {
"description": "The sending user id ('US...'); defaults to the phone number's owner.",
"type": "string"
},
"setInboxStatus": {
"description": "Set to 'done' to mark the conversation complete after sending.",
"type": "string",
"enum": [
"done"
]
}
},
"required": [
"content",
"from",
"to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_list_calls(phoneNumberId, participants, maxResults, userId, createdAfter, ...)
List calls between one of your OpenPhone numbers and a participant, newest first, optionally filtered by user and created date range. Returns direction, status, duration and timestamps. OpenPhone REST: GET /calls.
Eingabe-Schema
{
"type": "object",
"properties": {
"phoneNumberId": {
"type": "string",
"minLength": 1,
"description": "An OpenPhone phone-number id (starts with 'PN'). Get it from openphone_list_phone_numbers."
},
"participants": {
"minItems": 1,
"maxItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "A single participant phone number in E.164 format, e.g. '+15555555555' (required, exactly 1)."
},
"maxResults": {
"description": "Results per page, 1-100. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"userId": {
"description": "Scope results to a user's access (a user id starting with 'US'). From openphone_list_users.",
"type": "string"
},
"createdAfter": {
"description": "Only calls created after as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.",
"type": "string"
},
"createdBefore": {
"description": "Only calls created before as an ISO-8601 datetime, e.g. '2026-07-01T00:00:00Z'.",
"type": "string"
},
"pageToken": {
"description": "Pagination token from a previous response's nextPageToken.",
"type": "string"
}
},
"required": [
"phoneNumberId",
"participants"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_get_call(id)
Get a single call by its id (starts with 'AC') — direction, status, duration, participants and timestamps. OpenPhone REST: GET /calls/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The call id (starts with 'AC')."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_get_call_summary(callId)
Get the AI-generated summary and next steps for a call by its id. Availability depends on your plan and whether the call was summarized. OpenPhone REST: GET /call-summaries/{callId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"callId": {
"type": "string",
"minLength": 1,
"description": "The call id (starts with 'AC')."
}
},
"required": [
"callId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_get_call_transcript(id)
Get the transcription for a call by its id — dialogue segments with speaker, text and timestamps, plus overall status and duration. OpenPhone REST: GET /call-transcripts/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The call id (starts with 'AC')."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_get_call_recordings(callId)
Get the recordings for a call by its id — each with a URL, duration, start time and status. OpenPhone REST: GET /call-recordings/{callId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"callId": {
"type": "string",
"minLength": 1,
"description": "The call id (starts with 'AC')."
}
},
"required": [
"callId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢openphone_list_webhooks
List all webhooks configured in the workspace (id, url, events, status). Read-only inventory — this tool does not create or delete webhooks. OpenPhone REST: GET /webhooks.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴openphone_create_contact(firstName, lastName, company, role, emails, ...)
Create a new contact in the workspace. WRITE ACTION — this adds a persistent contact record. Emails and phoneNumbers are passed as simple string arrays and stored under default field labels. OpenPhone REST: POST /contacts.
Eingabe-Schema
{
"type": "object",
"properties": {
"firstName": {
"type": "string",
"minLength": 1,
"description": "The contact's first name (required)."
},
"lastName": {
"description": "The contact's last name.",
"type": "string"
},
"company": {
"description": "The contact's company.",
"type": "string"
},
"role": {
"description": "The contact's role / job title.",
"type": "string"
},
"emails": {
"description": "Email addresses for the contact.",
"type": "array",
"items": {
"type": "string"
}
},
"phoneNumbers": {
"description": "Phone numbers for the contact (E.164 recommended).",
"type": "array",
"items": {
"type": "string"
}
},
"externalId": {
"description": "A unique id from an external system (1-75 chars).",
"type": "string",
"minLength": 1,
"maxLength": 75
},
"source": {
"description": "How the contact was created; defaults to 'public-api'.",
"type": "string"
},
"sourceUrl": {
"description": "A link to the contact in the source system.",
"type": "string",
"format": "uri"
}
},
"required": [
"firstName"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis