openphone

Send and read OpenPhone messages, calls, contacts and phone numbers.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
89%
이름 품질
99%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'openphone_get_contact_custom_fields' name length outside 3-30 rangeopenphone_get_contact_custom_fields에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,051토큰 (도구 정의)
~1.4 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.38%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 16개