VoIP.ms (The Unofficial VoIP.ms MCP Server)
Use VoIP.ms with your AI assistant.
What it can do
- Add Charge: - Adds a Charge to a specific Reseller Client Requires the `account` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to gra
- Add Lnp File: - Add an invoice file to a portability process. Requires the `porting` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to
- Add Lnp Port: - Add one or more numbers to start a portability process. Requires the `porting` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask t
What data it sees
Do you need an account
No: the server works without sign-in
Use VoIP.ms with your AI assistant. Connect VoIP.ms to Claude, ChatGPT, Cursor, and other AI apps -- phone numbers, messaging, voicemail, call flows, billing, and more become tools your assistant can use on your behalf, within the scopes you grant. VoIP.ms is powerful but complex; your assistant makes the hard parts easy while your credentials stay on the server. Fine-grained per-resource scopes, read-only when you want it, works with any AI app. Paid subscription with a free tier. Unofficial -- not affiliated with or endorsed by VoIP.ms.
How to connect
How to connect VoIP.ms (The Unofficial VoIP.ms MCP Server) to Claude
The server address to paste into Claude settings:
https://voipms-mcp--ecliptical.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect VoIP.ms (The Unofficial VoIP.ms MCP Server) to ChatGPT
The server address to paste into ChatGPT settings:
https://voipms-mcp--ecliptical.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect VoIP.ms (The Unofficial VoIP.ms MCP Server) to Cursor
The server address to paste into Cursor settings:
https://voipms-mcp--ecliptical.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (60)
Raw names from tools/list. Only developers need these.
| add_charge | - Adds a Charge to a specific Reseller Client Requires the `account` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| add_lnp_file | - Add an invoice file to a portability process. Requires the `porting` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| add_lnp_port | - Add one or more numbers to start a portability process. Requires the `porting` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| add_member_to_conference | - Add Member to a Conference Requires the `conference` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| add_payment | - Adds a Payment to a specific Reseller Client Requires the `account` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| assign_did_vpri | - Assigns a Per Minute DID to a VPRI (Flat Rate DIDs can’t be assigned) Requires the `dids` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| back_order_did_can | - Backorder DID (CANADA) from a specific ratecenter and province. Use this only when the desired number is not currently available to order; to order an available Canadian DID, use `order_did`. Requires the `dids` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| back_order_did_usa | - Backorder DID (USA) from a specific ratecenter and state. Use this only when the desired number is not currently available to order; to order an available US DID, use `order_did`. Requires the `dids` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| cancel_did | - Deletes a specific DID from your Account. Requires the `dids` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| cancel_fax_number | - Deletes a specific Fax Number from your Account. Requires the `fax` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| connect_did | - Connects a specific DID to a specific Reseller Client Sub-account Requires the `dids` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| connect_fax | - Connects a specific FAX DID to a specific Reseller Client Sub-account Requires the `fax` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| create_email_to_fax | Create a new "Email to Fax" configuration. To change an existing configuration, use `update_email_to_fax`. Requires the `fax` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| create_static_member | Add a new static member to a queue. To change an existing member, use `update_static_member`. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| create_sub_account | - Adds a new Sub-account entry to your Account Requires the `subaccount` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| create_voicemail | - Adds a new Voicemail entry to your Account Requires the `voicemail` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_call_hunting | - Deletes a specific Call Hunting from your Account. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_call_parking | - Deletes a specific Call Parking entry from your Account. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_call_recording | - Delete specific call recording, audio file and information related. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_callback | - Deletes a specific Callback from your Account. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_caller_id_filtering | - Deletes a specific CallerID Filtering from your Account. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_client | - Deletes a specific reseller client from your Account. Requires the `reseller` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_conference | - Deletes a specific Conference from your Account. Requires the `conference` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_conference_member | - Deletes a specific Member profile from your Account. Requires the `conference` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_disa | - Deletes a specific DISA from your Account. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_email_to_fax | - Deletes a specific "Email to Fax configuration" from your Account. Requires the `fax` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_fax_folder | - Deletes a specific Fax Folder from your Account. Requires the `fax` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_forwarding | - Deletes a specific Forwarding from your Account. Requires the `forwarding` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_ivr | - Deletes a specific IVR from your Account. Requires the `ivr` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_location | Invoke the voip.ms `del_location` operation. Requires the `subaccount` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_member_from_conference | - Removes a member profile from a specific Conference from your Account Requires the `conference` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_messages | - Deletes all messages in all servers from a specific Voicemail from your Account Requires the `voicemail` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_music_on_hold | - Deletes a specific custom Music on Hold. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_phonebook | - Deletes a specific Phonebook from your Account. Requires the `phonebook` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_phonebook_group | - Deletes a specific Phonebook group from your Account. Requires the `phonebook` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_queue | - Deletes a specific Queue from your Account. Requires the `queue` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_recording | - Deletes a specific Recording from your Account. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_ring_group | - Deletes a specific Ring Group from your Account. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_sip_uri | - Deletes a specific SIP URI from your Account. Requires the `subaccount` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_static_member | - Deletes a specific Static Member from Queue. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_sub_account | - Deletes a specific Sub-account from your Account Requires the `subaccount` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_time_condition | - Deletes a specific Time Condition from your Account. Requires the `callflow` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| del_voicemail | - Deletes a specific Voicemail from your Account Requires the `voicemail` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| delete_fax_message | - Deletes a specific Fax Message from your Account. Requires the `fax` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| delete_mms | - Deletes a specific MMS from your Account. Requires the `mms` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| delete_sms | - Deletes a specific SMS from your Account. Requires the `sms` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| e911_address_types | - Retrieves a list of e911 Address Types if no additional parameter is provided. - Retrieves a specific e911 Address Type if an Address code is provided. Requires the `e911:read` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| e911_cancel | - Cancel the e911 Service from a specific DID. Requires the `e911` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| e911_info | - Retrieves the e911 information from a specific DID. Requires the `e911:read` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| e911_provision | - Subscribes your DID to the e911 Emergency Services. Requires the `e911` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| e911_provision_manually | - Subscribes your DID to the e911 Emergency Services. - All e911 information will be validated by the VoIP.ms staff. Requires the `e911` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| e911_update | - Updates the Information from your e911 Emergency Services Subscription. Requires the `e911` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| e911_validate | - Validates your e911 information in order to start your e911 Emergency Services Subscription. Requires the `e911:read` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| get_allowed_codecs | - Retrieves a list of Allowed Codecs if no additional parameter is provided. - Retrieves a specific Allowed Codec if a codec code is provided. Requires the `reference` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| get_auth_types | - Retrieves a list of Authentication Types if no additional parameter is provided. - Retrieves a specific Authentication Type if an auth type code is provided. Requires the `reference` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| get_back_orders | - Retrieves a list of backorder DIDs if no additional parameter is provided. - Retrieves a specific backorder DID if a backorder DID code is provided. Requires the `dids:read` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| get_balance | - Retrieves Balance for your Account if no additional parameter is provided. - Retrieves Balance and Calls Statistics for your Account if "advanced" parameter is true. Requires the `account:read` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| get_balance_management | - Retrieves a list of Balance Management Options if no additional parameter is provided. - Retrieves a specific Balance Management Option if a code is provided. Requires the `account:read` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| get_call_accounts | - Retrieves all Sub-accounts if no additional parameter is provided. - Retrieves Reseller Client Accounts if Reseller Client ID is provided. Requires the `reference` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |
| get_call_billing | - Retrieves a list of Call Billing Options. Requires the `reference` scope. If your access grant doesn't include it, calling this returns a step-up authorization error; ask the user to grant access, then retry the call. |