openphone
Send and read OpenPhone messages, calls, contacts and phone numbers.
使うべきか
品質と安全性
検出事項(1)
- LOWopenphone_get_contact_custom_fields 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"openphone": {
"url": "https://openphone.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://openphone.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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}.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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}.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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}.
入力スキーマ
{
"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}.
入力スキーマ
{
"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}.
入力スキーマ
{
"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}.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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"
}コミュニティ
エビデンス