Serveur MCP

CodaPhone

app.codaphone/mcp

Ce que fait ce MCP

Provides business SMS messaging, contact management, inbox threads, phone-number provisioning and bulk campaign scheduling and delivery.

add_contacts
Add a contact to the account. Provide the phone number (msisdn) and optionally a name, a list_id to file it under, and an opt_in_source note. Adds one contact per call. Requires the 'contacts' scope.
Schéma d’entrée
{'type': 'object', 'required': ['msisdn'], 'properties': {'name': {'type': 'string', 'description': 'Contact name.'}, 'msisdn': {'type': 'string', 'description': 'Contact phone number, e.g. +14155550100.'}, 'list_id': {'type': 'string', 'description': 'Optional list to add the contact to.'}, 'opt_in_source': {'type': 'string', 'description': 'How the contact opted in (record-keeping).'}}, 'additionalProperties': False}
create_campaign
Create a new bulk-messaging campaign with a name and an optional base message. After creating, use run_campaign to generate variations, set the audience, schedule, and launch it. Requires the 'campaigns' scope.
Schéma d’entrée
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Campaign name.'}, 'base_message': {'type': 'string', 'description': 'The base message text (optional; can be set later).'}}, 'additionalProperties': False}
get_account
Get the current CodaPhone account: its name and mode (live/test), the active number (if any), the current plan and its monthly/daily send caps, usage so far, and remaining automation credits. Requires the 'read' scope.
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
get_campaign
Get one campaign by id, including its base message, audience, schedule, pacing, and send/failed/skipped counts. Requires the 'read' scope.
Schéma d’entrée
{'type': 'object', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'description': 'The campaign id.'}}, 'additionalProperties': False}
get_message_status
Get one message by id, including its delivery status, direction, body, segment count, and timestamp. Requires the 'read' scope.
Schéma d’entrée
{'type': 'object', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'The message id.'}}, 'additionalProperties': False}
get_thread
Get one conversation thread by id together with its messages. Requires the 'read' scope.
Schéma d’entrée
{'type': 'object', 'required': ['thread_id'], 'properties': {'thread_id': {'type': 'string', 'description': 'The thread id.'}}, 'additionalProperties': False}
list_campaigns
List the account's bulk-messaging campaigns with their status and progress counts, plus the remaining automation credit balance. Requires the 'read' scope.
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_contacts
List the account's contacts with opt-in status and timezone. Optionally filter by a search term or a list id, choose a sort, and paginate with limit/offset. Requires the 'read' scope.
Schéma d’entrée
{'type': 'object', 'properties': {'sort': {'type': 'string', 'description': 'Sort order, e.g. recent or name (default recent).'}, 'limit': {'type': 'integer', 'description': 'Max contacts to return (default 500).'}, 'offset': {'type': 'integer', 'description': 'Number of contacts to skip (default 0).'}, 'search': {'type': 'string', 'description': 'Filter by name or number.'}, 'list_id': {'type': 'string', 'description': 'Only contacts in this list.'}}, 'additionalProperties': False}
list_threads
List the account's conversation threads (the inbox), most recent first, with unread counts and last-message previews. Supports limit/offset pagination. Requires the 'read' scope.
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'description': 'Max threads to return (default 50).'}, 'offset': {'type': 'integer', 'description': 'Number of threads to skip (default 0).'}}, 'additionalProperties': False}
mark_thread_read
Mark a conversation thread as read (clears its unread count) and return the account's new total inbox unread count. Requires the 'read' scope.
Schéma d’entrée
{'type': 'object', 'required': ['thread_id'], 'properties': {'thread_id': {'type': 'string', 'description': 'The thread id to mark read.'}}, 'additionalProperties': False}
provision_number
Provision (set up) a phone number for the account from a candidate returned by search_numbers. Provide the exact msisdn in +1XXXXXXXXXX form and the number kind; optional label and business registration details may be included. An account can hold one active number. Requires the 'numbers' scope.
Schéma d’entrée
{'type': 'object', 'required': ['msisdn'], 'properties': {'kind': {'enum': ['local', 'tollfree'], 'type': 'string', 'description': 'Number type (default local).'}, 'label': {'type': 'string', 'description': 'Friendly label for the number.'}, 'msisdn': {'type': 'string', 'description': 'The number to set up, in +1XXXXXXXXXX form.'}, 'registration': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'mobile': {'type': 'string'}, 'region': {'type': 'string'}, 'country': {'type': 'string'}, 'website': {'type': 'string'}, 'legal_name': {'type': 'string'}, 'postal_code': {'type': 'string'}, 'address_line1': {'type': 'string'}, 'address_line2': {'type': 'string'}}, 'description': 'Optional business details for the number.', 'additionalProperties': False}}, 'additionalProperties': False}
run_campaign
Advance a campaign through its lifecycle. Provide the campaign_id and an action: - generate: create message variations (optional base_message, count) - variations: save edited variations (variations: [{body, active}]) - audience: set the recipient list (list_id) - schedule: set send time/pacing (schedule_at, pace_seconds, daily_ceiling) - launch: start sending (or start at the scheduled time) - pause / resume / cancel: control a running campaign Sends honor opt-outs, sending hours, credits, and plan caps automatically. Requires the 'campaigns' scope.
Schéma d’entrée
{'type': 'object', 'required': ['campaign_id', 'action'], 'properties': {'count': {'type': 'integer', 'description': 'generate: how many variations.'}, 'action': {'enum': ['generate', 'variations', 'audience', 'schedule', 'launch', 'pause', 'resume', 'cancel'], 'type': 'string', 'description': 'The lifecycle action to run.'}, 'list_id': {'type': 'string', 'description': 'audience: the contact list to send to.'}, 'variations': {'type': 'array', 'items': {'type': 'object', 'properties': {'body': {'type': 'string'}, 'active': {'type': 'boolean'}}, 'additionalProperties': False}, 'description': 'variations: the edited variations to save.'}, 'campaign_id': {'type': 'string', 'description': 'The campaign id.'}, 'schedule_at': {'type': 'string', 'description': 'schedule: ISO timestamp to start, or null for send-now.'}, 'base_message': {'type': 'string', 'description': 'generate: base message to vary from.'}, 'pace_seconds': {'type': 'integer', 'description': 'schedule: seconds between sends.'}, 'daily_ceiling': {'type': 'integer', 'description': 'schedule: max sends per day (<= plan cap).'}}, 'additionalProperties': False}
search_numbers
Search available phone numbers to provision. Optionally filter by country, number kind (local or tollfree), and a 3-digit area code. Returns candidate numbers with a formatted display, city/region, and monthly price. Does not buy anything. Requires the 'numbers' scope.
Schéma d’entrée
{'type': 'object', 'properties': {'kind': {'enum': ['local', 'tollfree'], 'type': 'string', 'description': 'Number type (default local).'}, 'country': {'type': 'string', 'description': 'ISO country code, e.g. US (default US).'}, 'areaCode': {'type': 'string', 'description': 'Preferred 3-digit area code, e.g. 415 (local only).'}}, 'additionalProperties': False}
send_message
Send an SMS from the account's number. Provide the message 'body', and either 'to' (a recipient phone number, with optional 'name' to save the contact) or an existing 'thread_id' to reply within a conversation. Opted-out contacts are blocked and free-send/plan limits apply automatically. Requires the 'send' scope.
Schéma d’entrée
{'type': 'object', 'required': ['body'], 'properties': {'to': {'type': 'string', 'description': 'Recipient phone number, e.g. +14155550100 (omit if using thread_id).'}, 'body': {'type': 'string', 'description': 'The message text to send.'}, 'name': {'type': 'string', 'description': "Optional name to save for a new contact when using 'to'."}, 'thread_id': {'type': 'string', 'description': "Reply inside this existing conversation instead of 'to'."}}, 'additionalProperties': False}
Ajouté
run_campaign
4 October 2026 02:40
Ajouté
create_campaign
4 October 2026 02:40
Ajouté
get_campaign
4 October 2026 02:40
Ajouté
list_campaigns
4 October 2026 02:40
Ajouté
add_contacts
4 October 2026 02:40
Ajouté
list_contacts
4 October 2026 02:40
Ajouté
mark_thread_read
4 October 2026 02:40
Ajouté
get_thread
4 October 2026 02:40
Ajouté
list_threads
4 October 2026 02:40
Ajouté
get_message_status
4 October 2026 02:40
Ajouté
send_message
4 October 2026 02:40
Ajouté
provision_number
4 October 2026 02:40
Ajouté
search_numbers
4 October 2026 02:40
Ajouté
get_account
4 October 2026 02:40