# myPhoner MCP by usefulapi (remote · myphoner.usefulapi.io)

Work myPhoner calling lists and leads: search, log call outcomes, add, update and assign leads.

- Trust score: 62/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-25

## Components

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

## Channel facts

- Endpoint: `https://myphoner.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.1.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-10-25.

- **Endpoint Security**: 78/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - 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.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 80/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2452 tokens (~136/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 18 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

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

myPhoner MCP by usefulapi is a hosted endpoint at https://myphoner.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-myphoner 'https://myphoner.usefulapi.io/mcp'
```

### Cursor

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

### VS Code

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

### Codex

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

### opencode

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

### OpenClaw

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

### Hermes

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

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-myphoner": {
      "type": "http",
      "url": "https://myphoner.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-10-25 (score 62, 0)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.1.0 → 1.1.3

### 2026-10-24 (score 62)

First indexed and scored.

## MCP tools (18)

### `myphoner_list_lists` (~71 tokens)

List calling lists

All calling lists (campaigns) in the account: id, name, creation date, number of leads and whether the list guarantees the default fields. Start here to find a list id. GET /lists.

Input parameters:

- `locked_on_defaults` (boolean): true = only lists that guarantee the default fields.

### `myphoner_get_list` (~54 tokens)

Get a calling list

One calling list with its lead count and its call back / winner / loser / archive / skip categories. GET /lists/{id}.

Input parameters:

- `list_id` (integer, required): List id from myphoner_list_lists.

### `myphoner_list_columns` (~57 tokens)

List the fields of a list

The fields (columns) of a list. The `key` of each is the name to use when creating, updating or finding leads. GET /lists/{id}/columns.

Input parameters:

- `list_id` (integer, required): List id.

### `myphoner_get_list_stats` (~65 tokens)

Get list statistics

Lead counts of a list by state (new, call back, won, lost, archived) and by category within each state. Use it for campaign progress and conversion questions. GET /lists/{id}/stats.

Input parameters:

- `list_id` (integer, required): List id.

### `myphoner_create_list` (~197 tokens)

Create a calling list

Create a new, empty calling list with its fields. Creates data in the account (nothing is sent to anyone). Field kinds: none (text), phone, email, url, boolean, integer, date, text (multi-line), options, address. POST /lists.

Input parameters:

- `archive_categories` (string): Comma-separated sub-categories for archived leads.
- `call_back_categories` (string): Comma-separated sub-categories for call backs.
- `columns` (array): Fields in order. Omit to let myPhoner use its defaults.
- `description` (string): Call script shown to agents while working the list.
- `loser_categories` (string): Comma-separated sub-categories for losers.
- `name` (string, required): Name of the list.
- `skip_categories` (string): Comma-separated sub-categories for skips.
- `winner_categories` (string): Comma-separated sub-categories for winners.

### `myphoner_list_leads` (~153 tokens)

List the leads in a list

Leads of one list, newest first by creation date (or most recently updated first with order=last_updated_first). Each lead has its state (new, call_back, won, lost, archived), category, scheduled call back, who claimed it and its lead_data fields. GET /lists/{id}/leads.

Input parameters:

- `list_id` (integer, required): List id.
- `order` (string): last_updated_first = by last change, newest first; default newest created first.
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Leads per page, 1-100 (default 50).

### `myphoner_get_lead` (~46 tokens)

Get a lead

One lead with its state, category, claim, duplicates and all lead_data fields. GET /leads/{id}.

Input parameters:

- `lead_id` (integer, required): Lead id.

### `myphoner_find_leads` (~133 tokens)

Find leads by field

Exact match on one or more fields of a list, for example a phone number or an email address (to check whether a lead already exists). All fields must match unless match_all is false. GET /lists/{id}/leads/find.

Input parameters:

- `fields` (object, required): Column key → non-empty value to match exactly, e.g. {"mobile_phone":"15324083898652"}. Keys from myphoner_list_columns.
- `list_id` (integer, required): List id.
- `match_all` (boolean): true (default) = every field must match; false = any one is enough.

### `myphoner_search_leads` (~140 tokens)

Search leads

Free-text search across lead data and activity logs (comments, events), like the search box in myPhoner; optionally limited to some lists. Returns the total hit count and one page of leads. GET /leads/search.

Input parameters:

- `list_ids` (array): Limit the search to these list ids.
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `per_page` (integer): Leads per page, 1-100 (default 50).
- `query` (string, required): The search text, e.g. a company name, city or phone number.

### `myphoner_create_lead` (~132 tokens)

Create a lead

Add a new lead to a list. Keys of `fields` are the list's column keys (myphoner_list_columns). Creates data only; nothing is sent to the lead. Duplicate detection runs in the background a few minutes later (check detected_duplicates on the lead afterwards). POST /lists/{id}/leads.

Input parameters:

- `fields` (object, required): Lead data keyed by the list's column keys (see myphoner_list_columns), e.g. {"first_name":"Ada","mobile_phone":"+4512345678"}.
- `list_id` (integer, required): List the lead is added to.

### `myphoner_update_lead` (~115 tokens)

Update lead data

Change field values of an existing lead (only the fields you pass change). Keys of `fields` are the list's column keys (myphoner_list_columns). Overwrites the old values; use null to clear one. PATCH /leads/{id}.

Input parameters:

- `fields` (object, required): Lead data keyed by the list's column keys (see myphoner_list_columns), e.g. {"first_name":"Ada","mobile_phone":"+4512345678"}.
- `lead_id` (integer, required): Lead id.

### `myphoner_mark_lead_winner` (~183 tokens)

Mark a lead as winner

Mark a lead as a winner (a won deal). The lead moves to that state and an event is logged on it; nothing is sent to the lead. Optionally add a comment and an existing winner category. POST /leads/{id}/winner.

Input parameters:

- `call_back_in` (integer): Minutes until a scheduled call back (max one year).
- `category` (string): A category of the list; must match an existing one exactly, including case.
- `comment` (string): Text added as a comment on the lead's event.
- `lead_id` (integer, required): Lead id.
- `scheduled_for` (string): When the call back is due: ISO 8601 date-time with a timezone, e.g. 2026-11-02T09:30:00Z. Takes precedence over call_back_in.

### `myphoner_mark_lead_loser` (~185 tokens)

Mark a lead as loser

Mark a lead as a loser (not interested / lost). The lead moves to that state and an event is logged on it; nothing is sent to the lead. Optionally add a comment and an existing loser category. POST /leads/{id}/loser.

Input parameters:

- `call_back_in` (integer): Minutes until a scheduled call back (max one year).
- `category` (string): A category of the list; must match an existing one exactly, including case.
- `comment` (string): Text added as a comment on the lead's event.
- `lead_id` (integer, required): Lead id.
- `scheduled_for` (string): When the call back is due: ISO 8601 date-time with a timezone, e.g. 2026-11-02T09:30:00Z. Takes precedence over call_back_in.

### `myphoner_mark_lead_call_back` (~193 tokens)

Mark a lead for call back

Schedule a lead for a call back. The lead moves to that state and an event is logged on it; nothing is sent to the lead. Set when with call_back_in (minutes) or scheduled_for; optionally a comment and an existing call back category. POST /leads/{id}/call_back.

Input parameters:

- `call_back_in` (integer): Minutes until a scheduled call back (max one year).
- `category` (string): A category of the list; must match an existing one exactly, including case.
- `comment` (string): Text added as a comment on the lead's event.
- `lead_id` (integer, required): Lead id.
- `scheduled_for` (string): When the call back is due: ISO 8601 date-time with a timezone, e.g. 2026-11-02T09:30:00Z. Takes precedence over call_back_in.

### `myphoner_archive_lead` (~180 tokens)

Archive a lead

Archive a lead (it leaves the calling queue). The lead moves to that state and an event is logged on it; nothing is sent to the lead. Optionally add a comment and an existing archive category. POST /leads/{id}/archive.

Input parameters:

- `call_back_in` (integer): Minutes until a scheduled call back (max one year).
- `category` (string): A category of the list; must match an existing one exactly, including case.
- `comment` (string): Text added as a comment on the lead's event.
- `lead_id` (integer, required): Lead id.
- `scheduled_for` (string): When the call back is due: ISO 8601 date-time with a timezone, e.g. 2026-11-02T09:30:00Z. Takes precedence over call_back_in.

### `myphoner_delegate_lead` (~72 tokens)

Delegate or claim a lead

Give the claim on a lead to a user (the lead then shows up in that agent's queue), identified by user id or email. PATCH /leads/{id}/delegate.

Input parameters:

- `delegate_to` (required): User id or the user's email address.
- `lead_id` (integer, required): Lead id.

### `myphoner_move_lead` (~92 tokens)

Move a lead to another list

Move a lead to another list. The destination may be the lead's current list, which with release_claim=true just releases a claimed lead. PATCH /leads/{id}/migrate.

Input parameters:

- `lead_id` (integer, required): Lead id.
- `release_claim` (boolean): true = also release the lead if an agent has claimed it.
- `to_list_id` (integer, required): Destination list id.

### `myphoner_get_call` (~89 tokens)

Get a call

One call made from myPhoner: who called, the number dialed, duration (0 = unanswered), direction, disposition (normal, voicemail, no_answer, busy ...), state, the lead and list it belongs to, and recording links. GET /calls/{id}.

Input parameters:

- `call_id` (integer, required): Call id (the number at the end of a call's location path).

## Diagnostics

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

## Score history

- 2026-10-25: 62
- 2026-10-24: 62

## Common questions

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

myPhoner MCP by usefulapi is listed in the public MCP registry as io.usefulapi/myphoner. Work myPhoner calling lists and leads: search, log call outcomes, add, update and assign leads. This page covers its hosted endpoint (https://myphoner.usefulapi.io/mcp).

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

myPhoner MCP by usefulapi scores 62 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 myPhoner MCP by usefulapi server expose?

myPhoner MCP by usefulapi exposes 18 tools: myphoner_list_lists, myphoner_get_list, myphoner_list_columns, myphoner_get_list_stats, myphoner_create_list, and 13 more. Their descriptions and schemas cost roughly 2,157 tokens of context every time the server is loaded.

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

Yes. myPhoner MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

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

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

## Links

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