# SuperPhone MCP by usefulapi (remote · superphone.usefulapi.io)

MCP server for SuperPhone — contacts, conversations, tags and consent-based text messages.

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `superphone.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-superphone/superphone.md), [page](https://verifymcp.io/servers/io-usefulapi-superphone/superphone)

## Channel facts

- Endpoint: `https://superphone.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.6.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the SuperPhone MCP by usefulapi server?

SuperPhone MCP by usefulapi is a hosted endpoint at https://superphone.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-superphone 'https://superphone.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-superphone": {
      "url": "https://superphone.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-superphone": {
      "type": "http",
      "url": "https://superphone.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-superphone]
url = "https://superphone.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-superphone": {
      "type": "remote",
      "url": "https://superphone.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-superphone --url 'https://superphone.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-superphone:
    url: "https://superphone.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-superphone": {
      "Transport": "http",
      "Url": "https://superphone.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-superphone -t streamable-http -u 'https://superphone.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-superphone": {
      "type": "http",
      "url": "https://superphone.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 18, −47)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.03 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-11-01 (score 65, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-31 (score 65)

First indexed and scored.

## MCP tools (17)

### `superphone_get_account` (~51 tokens)

Get account

The Superphone account behind the API key: user id, email, name, the business phone numbers (number, default/active flags, short code) and notification preferences. GraphQL query `me`.

### `superphone_list_contacts` (~123 tokens)

List contacts

List the SMS contacts (the subscriber list) with name, mobile, email, company, VIP/hidden/archived/unsubscribed/opted-out flags, total spent, creation date and tags (up to 20). Oldest first; page with next_cursor. `total` is the size of the whole list. GraphQL query `contacts`.

Input parameters:

- `after` (string): Cursor: pass the previous reply's next_cursor to get the next page.
- `page_size` (integer): Results per page, 1-100 (default 25).

### `superphone_get_contact` (~63 tokens)

Get contact

One contact by id with every profile field, tags, custom contributions (recorded purchases) and its latest 10 conversations (ids to read with superphone_get_conversation). GraphQL query `contact`.

Input parameters:

- `contact_id` (string, required): Superphone contact id.

### `superphone_find_contact` (~80 tokens)

Find contact by mobile or email

Find one contact by exact mobile number or email address (give at least one; E.164 such as +12132679977 is best). Returns the full contact or null when none matches. GraphQL query `contactByIdentifier`.

Input parameters:

- `email` (string): Email address.
- `mobile` (string): Mobile number, ideally E.164.

### `superphone_list_conversations` (~112 tokens)

List conversations

List text conversations (the inbox): id, participant number, platform (TWILIO = SMS, FACEBOOK = Messenger), hidden/archived flags, creation date and the contact. Page with next_cursor. Read the messages of one with superphone_get_conversation. GraphQL query `conversations`.

Input parameters:

- `after` (string): Cursor: pass the previous reply's next_cursor to get the next page.
- `page_size` (integer): Results per page, 1-100 (default 25).

### `superphone_get_conversation` (~132 tokens)

Get conversation messages

One conversation with its most recent messages (default 20, newest last): body, from/to, direction (INCOMING_TEXT, OUTGOING_TEXT, SYSTEM, calls), delivery status, errors and media. To read older messages pass `before` = the previous reply's previous_cursor. GraphQL query `conversation`.

Input parameters:

- `before` (string): Cursor: pass the previous reply's previous_cursor to read older messages.
- `conversation_id` (string, required): Superphone conversation id.
- `message_count` (integer): How many of the latest messages to return, 1-100 (default 20).

### `superphone_get_message` (~47 tokens)

Get message

One message by id: body, from/to, direction, delivery status, error and media. GraphQL query `message`.

Input parameters:

- `message_id` (string, required): Superphone message id.

### `superphone_list_forms` (~52 tokens)

List sign-up forms

List the sign-up (opt-in) forms: id, public hashId, domain, titles, opt-in text flag, optional fields, redirect URL, default and enabled flags. GraphQL query `forms`.

### `superphone_get_form` (~58 tokens)

Get sign-up form

One sign-up form by id, or the account's default form when form_id is omitted. GraphQL queries `form` / `defaultForm`.

Input parameters:

- `form_id` (string): Superphone form id; omit for the default form.

### `superphone_list_webhooks` (~58 tokens)

List webhooks

List the configured webhooks: id, destination URL, active flag and subscribed events (CONTACT_ADDED, CONTACT_UPDATED, CONTACT_TAGS_CHANGED, MESSAGE_RECEIVED, MESSAGE_SENT, MESSAGE_STATUS_UPDATED). GraphQL query `webhooks`.

### `superphone_search_numbers` (~79 tokens)

Search available phone numbers

Search phone numbers that could be bought for the account, optionally starting with some digits (for example an area code), with their price. Read-only: this tool never buys a number. GraphQL query `searchNumbers`.

Input parameters:

- `starts_with` (string): Digits the number should start with, e.g. an area code like 415.

### `superphone_create_contact` (~288 tokens)

Create contact

WRITE: create a contact (first name required; add a mobile number or email so it can be reached). Creating a contact does not send it a message. Returns the new contact. GraphQL mutation `createContact`.

Input parameters:

- `archived` (boolean): Archive the contact.
- `birthday` (string): Birthday as text, e.g. 1990-05-17.
- `city` (string): City.
- `company` (string): Company.
- `country` (string): Country.
- `email` (string): Email address.
- `first_name` (string, required): First name.
- `gender` (string): Gender.
- `hidden` (boolean): Hide the contact.
- `instagram` (string): Instagram handle.
- `job_title` (string): Job title.
- `lastName` (string): Last name.
- `linkedin` (string): LinkedIn profile.
- `mobile` (string): Mobile number, ideally E.164 (+12132679977); without a country code Superphone assumes the US.
- `nickname` (string): Nickname.
- `notes` (string): Free-text notes.
- `province` (string): State or province.
- `twitter` (string): Twitter handle.
- `unsubscribed` (boolean): Mark the contact as unsubscribed from messages.
- `vip` (boolean): Mark as VIP.
- `zip_code` (string): Postal code.

### `superphone_update_contact` (~321 tokens)

Update contact

WRITE: change fields of an existing contact. Only the fields you pass change: the tool first reads the contact and sends the full record back with your changes (the API requires the first name on every update). Pass an empty string to clear a text field. Returns the updated contact. GraphQL mutation `updateContact`.

Input parameters:

- `archived` (boolean): Archive the contact.
- `birthday` (string): Birthday as text, e.g. 1990-05-17.
- `city` (string): City.
- `company` (string): Company.
- `contact_id` (string, required): Superphone contact id.
- `country` (string): Country.
- `email` (string): Email address.
- `first_name` (string): New first name.
- `gender` (string): Gender.
- `hidden` (boolean): Hide the contact.
- `instagram` (string): Instagram handle.
- `job_title` (string): Job title.
- `lastName` (string): Last name.
- `linkedin` (string): LinkedIn profile.
- `mobile` (string): Mobile number, ideally E.164 (+12132679977); without a country code Superphone assumes the US.
- `nickname` (string): Nickname.
- `notes` (string): Free-text notes.
- `province` (string): State or province.
- `twitter` (string): Twitter handle.
- `unsubscribed` (boolean): Mark the contact as unsubscribed from messages.
- `vip` (boolean): Mark as VIP.
- `zip_code` (string): Postal code.

### `superphone_add_contact_tags` (~114 tokens)

Add tags to contact

WRITE: apply tags to a contact, by name (a new name creates the tag) or by tag id. Tags can drive automations in Superphone. Returns the contact with its tags. GraphQL mutations `addContactTagsByNames` / `addContactTags`.

Input parameters:

- `contact_id` (string, required): Superphone contact id.
- `tag_ids` (array): Tag ids (from superphone_get_contact). Give tag_names or tag_ids, not both.
- `tag_names` (array): Tag names.

### `superphone_remove_contact_tags` (~112 tokens)

Remove tags from contact

WRITE: remove tags from a contact, by name or by tag id. This can take the contact out of tag-driven segments and automations. Returns the contact with its remaining tags. GraphQL mutations `removeContactTagsByNames` / `removeContactTags`.

Input parameters:

- `contact_id` (string, required): Superphone contact id.
- `tag_ids` (array): Tag ids (from superphone_get_contact). Give tag_names or tag_ids, not both.
- `tag_names` (array): Tag names.

### `superphone_add_contribution` (~150 tokens)

Record a purchase (custom contribution)

WRITE: record a purchase or donation against a contact (name, amount, date). It adds to the contact's total spent and cannot be undone with this server. Returns the new contribution. GraphQL mutation `createCustomContribution`.

Input parameters:

- `amount` (number, required): Amount in the account's currency.
- `contact_id` (string, required): Superphone contact id.
- `created_at` (string): When it happened, ISO 8601 (2026-10-01T12:00:00Z or 2026-10-01). Default: now.
- `name` (string, required): What it was for, e.g. 'Gift card' or 'October order #1042'.

### `superphone_send_message` (~182 tokens)

Send a text message

WRITE, IRREVERSIBLE: send a real text message to a customer from the account's number. It is delivered immediately, uses the account's messaging credits and cannot be recalled. Only send what the user explicitly asked for, to the number they named, and never to contacts who unsubscribed or opted out. Give exactly one of conversation_id (reply in an existing conversation) or mobile (a number, ideally E.164 like +12132679977; without a country code Superphone assumes the US). Returns the new message id. GraphQL mutation `sendMessage`.

Input parameters:

- `body` (string, required): The message text.
- `conversation_id` (string): Reply in this conversation.
- `mobile` (string): Recipient mobile number, E.164 recommended.
- `platform` (string): TWILIO = SMS (default); FACEBOOK = Messenger conversation.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-superphone/superphone#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 65
- 2026-10-31: 65

## Common questions

### What is the SuperPhone MCP by usefulapi server?

SuperPhone MCP by usefulapi is listed in the public MCP registry as io.usefulapi/superphone. MCP server for SuperPhone, contacts, conversations, tags and consent-based text messages. This page covers its hosted endpoint (https://superphone.usefulapi.io/mcp).

### Is the SuperPhone MCP by usefulapi server safe to use?

SuperPhone MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the SuperPhone MCP by usefulapi server expose?

SuperPhone MCP by usefulapi exposes 17 tools: superphone_get_account, superphone_list_contacts, superphone_get_contact, superphone_find_contact, superphone_list_conversations, and 12 more. Their descriptions and schemas cost roughly 2,022 tokens of context every time the server is loaded.

### Does the SuperPhone MCP by usefulapi server require authentication?

Its publisher declares no required credentials for SuperPhone MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the SuperPhone MCP by usefulapi server still maintained?

SuperPhone MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the SuperPhone MCP by usefulapi server?

VerifyMCP ran 4 checks on SuperPhone MCP by usefulapi, covering TLS certificate, HSTS header, DNSSEC and Transport. 7 items could not be completed, a gap on our side rather than a finding about SuperPhone MCP by usefulapi: Authorization, HTTPS, Schema quality, Stability and 3 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://superphone.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/superphone/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-superphone/superphone.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-superphone/superphone/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/io-usefulapi-superphone/superphone.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-superphone/superphone
