# Notifyre MCP by usefulapi (remote · notifyre.usefulapi.io)

Read Notifyre SMS, replies, faxes, numbers, prices and contacts; send SMS to up to 10 numbers.

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

## Components

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

## Channel facts

- Endpoint: `https://notifyre.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.0`

## 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-17.

- **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**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2756 tokens (~131/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 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.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 22 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 Notifyre MCP by usefulapi server?

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

### Cursor

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

### VS Code

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

### Codex

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

### opencode

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

### OpenClaw

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

### Hermes

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

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-notifyre": {
      "type": "http",
      "url": "https://notifyre.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-17 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-15 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-14 (score 63, +2)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] The server now declares the “prompts” capability
- [functional] First check of Schema quality: 100
- [functional] New prompt “getting_started”
- [functional] Server version: 1.0.0 → 1.1.0

### 2026-10-13 (score 61, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-12 (score 61)

First indexed and scored.

## MCP tools (21)

### `notifyre_list_sent_sms` (~259 tokens)

List sent SMS

List SMS messages sent from the account, newest first by default, with recipient, status and cost. Without from_date the window is the last 30 days. Filter by status (processing, submitted, sent, failed), numbers, or a message id in search. Page with skip = next_skip. Notifyre API: GET /sms/send.

Input parameters:

- `from_date` (string): Start, ISO 8601 date (2026-10-01) or date-time with timezone. Default: 30 days before to_date.
- `from_number` (string): Number the SMS was sent from.
- `limit` (integer): Page size, 1 to 100 (default 20).
- `search` (string): Filter by message id or scheduled job id.
- `skip` (integer): Records to skip (default 0).
- `sort` (string): asc or desc by date (default desc).
- `status` (string): Only messages with this status.
- `to_date` (string): End, ISO 8601 date (2026-10-31, to the end of that UTC day) or date-time. Default: now.
- `to_number` (string): Destination number the SMS was sent to.

### `notifyre_get_sent_sms` (~73 tokens)

Get a sent SMS

Get one sent SMS message with every recipient: status, delivery status, message parts, cost. Use the id from notifyre_list_sent_sms or notifyre_send_sms. Notifyre API: GET /sms/send/{id}.

Input parameters:

- `message_id` (string, required): The SMS message id (not the friendly id).

### `notifyre_get_sms_recipient` (~77 tokens)

Get an SMS recipient message

Get the text and delivery details of one recipient of a sent SMS (status, parts, cost). Notifyre API: GET /sms/send/{messageId}/recipients/{recipientId}.

Input parameters:

- `message_id` (string, required): The SMS message id.
- `recipient_id` (string, required): The recipient id from get_sent_sms.

### `notifyre_list_sms_replies` (~254 tokens)

List SMS replies

List SMS replies received on the account's numbers. Without from_date the window is the last 30 days. from_number and to_number must be given together. include_reply_content adds the reply texts (then at most 20 per page). Page with skip = next_skip. Notifyre API: GET /sms/received.

Input parameters:

- `from_date` (string): Start, ISO 8601 date or date-time with timezone. Default: 30 days before to_date.
- `from_number` (string): Number the reply came from. Needs to_number as well.
- `include_reply_content` (boolean): Include the reply texts (default false; limit is then capped at 20).
- `limit` (integer): Page size, 1 to 100 (default 20).
- `recipient_id` (string): Only replies to this SMS recipient id.
- `skip` (integer): Records to skip (default 0).
- `sort` (string): asc or desc by date (default desc).
- `to_date` (string): End, ISO 8601 date or date-time. Default: now.
- `to_number` (string): Account number that received the reply. Needs from_number as well.

### `notifyre_get_sms_reply` (~60 tokens)

Get an SMS reply

Get one received SMS reply with its text, sender and receiving number. Use the replyID from notifyre_list_sms_replies. Notifyre API: GET /sms/received/{id}.

Input parameters:

- `reply_id` (string, required): The reply id.

### `notifyre_list_sms_numbers` (~58 tokens)

List SMS numbers and sender IDs

List the account's SMS numbers (E.164, status, 10DLC campaign) and approved alphanumeric sender IDs. Use one of them as `from` when sending. Notifyre API: GET /sms/numbers.

### `notifyre_list_sms_prices` (~60 tokens)

List SMS prices

List the price of one SMS per destination country (country code, calling prefix, price, currency). Check it before sending: the cost of a send is price x message parts x recipients. Notifyre API: GET /sms/send/prices.

### `notifyre_list_sent_faxes` (~199 tokens)

List sent faxes

List faxes sent from the account (recipient, pages, quality, status, failure reason). Without from_date the window is the last 30 days. Filter by status (accepted, successful, in_progress, failed, queued). Page with skip = next_skip. Notifyre API: GET /fax/send.

Input parameters:

- `from_date` (string): Start, ISO 8601 date or date-time with timezone. Default: 30 days before to_date.
- `limit` (integer): Page size, 1 to 100 (default 20).
- `search` (string): Filter by fax id or reference.
- `skip` (integer): Records to skip (default 0).
- `sort` (string): asc or desc by date (default desc).
- `status` (string): Only faxes with this status.
- `to_date` (string): End, ISO 8601 date or date-time. Default: now.

### `notifyre_list_received_faxes` (~188 tokens)

List received faxes

List faxes received on the account's fax numbers (sender, number, time, pages, duration, read flag). The fax documents are not downloaded. Without from_date the window is the last 30 days. Page with skip = next_skip. Notifyre API: GET /fax/received.

Input parameters:

- `from_date` (string): Start, ISO 8601 date or date-time with timezone. Default: 30 days before to_date.
- `limit` (integer): Page size, 1 to 100 (default 20).
- `skip` (integer): Records to skip (default 0).
- `sort` (string): asc or desc by date (default desc).
- `to_date` (string): End, ISO 8601 date or date-time. Default: now.
- `to_number` (string): Only faxes received on this account fax number.

### `notifyre_list_fax_numbers` (~37 tokens)

List fax numbers

List the account's fax numbers (E.164, region, status). Notifyre API: GET /fax/numbers.

### `notifyre_list_fax_prices` (~44 tokens)

List fax prices

List the price of sending a fax per destination country (country code, calling prefix, price, currency). Notifyre API: GET /fax/send/prices.

### `notifyre_list_fax_cover_pages` (~51 tokens)

List fax cover pages

List the fax cover page templates of the account (name and whether it is the default). The HTML of each template is left out. Notifyre API: GET /fax/coverpages.

### `notifyre_list_contacts` (~212 tokens)

List address book contacts

Search the address book. search_query matches the name; type FaxNumber or MobileNumber keeps contacts that have that number; group_ids limits to groups. Page numbers start at 0. Contacts that unsubscribed are left out unless include_unsubscribed is true. The unsubscribe key of a contact is never shown. Notifyre API: POST /addressbook/contacts/search (a read).

Input parameters:

- `group_ids` (array): Only contacts in these group ids.
- `include_unsubscribed` (boolean): Also return contacts that unsubscribed (default false).
- `limit` (integer): Page size, 1 to 100 (default 20).
- `page` (integer): Page number, from 0 (default 0).
- `search_query` (string): Text in the contact's name.
- `sort_by` (string): Sort field (default name).
- `sort_dir` (string): asc or desc (default asc).
- `type` (string): Only contacts that have this kind of number.

### `notifyre_get_contact` (~58 tokens)

Get an address book contact

Get one contact: names, organization, email, fax and mobile number, groups, custom fields, unsubscribed flag. Notifyre API: GET /addressbook/contacts/{id}.

Input parameters:

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

### `notifyre_list_groups` (~70 tokens)

List address book groups

List the address book groups with their contact counts. Notifyre API: GET /addressbook/groups.

Input parameters:

- `search_query` (string): Text in the group name.
- `sort_by` (string): Sort field (default name).
- `sort_dir` (string): asc or desc (default asc).

### `notifyre_list_brands` (~37 tokens)

List 10DLC brands

List the account's registered 10DLC brands (US SMS sender registration). Notifyre API: GET /numbers/brands.

### `notifyre_list_campaigns` (~42 tokens)

List 10DLC campaigns

List the account's 10DLC campaigns (US SMS use-case registrations) and their status. Notifyre API: GET /numbers/campaigns.

### `notifyre_send_sms` (~445 tokens)

Send SMS

WRITE: SENDS REAL SMS to real people and SPENDS the prepaid balance of the user's Notifyre account; it cannot be undone or recalled and is never retried. One text to 1 to 10 mobile numbers in international format with "+" (e.g. +61412345678); no contacts, no groups, no scheduling. Cost = price per message part (see notifyre_list_sms_prices; it depends on the destination country) x number of parts x number of recipients; the text may be up to 640 characters (160 per part, 70 with emoji or non-GSM characters, a little less per part when it is longer). Only send what the user explicitly asked for: confirm the exact text, the recipients and the sender first. Recipients must have agreed to receive messages. A commercial SMS needs an opt-out (Australia: Spam Act 2003; Notifyre Terms and Conditions 13.5): set add_unsubscribe_link true to append Notifyre's opt-out link, or put your own opt-out instruction in the text. The default is false, so the requirement is yours to meet. US numbers need a registered 10DLC campaign. Omit `from` to send from a Notifyre shared number. An unclear result (timeout, HTTP 5xx) means the message may still have been sent: check notifyre_list_sent_sms before trying again. Notifyre API: POST /sms/send.

Input parameters:

- `add_unsubscribe_link` (boolean): Append Notifyre's opt-out link to the text (default false). A commercial SMS needs an opt-out: set true, or write your own opt-out line. Adds characters, so it can add a part.
- `body` (string, required): The message text.
- `campaign_name` (string): Optional reference name for this send.
- `from` (string): Optional sender: one of the account's SMS numbers or sender IDs (see notifyre_list_sms_numbers). Omit to use a Notifyre shared number.
- `to` (array, required): 1 to 10 mobile numbers in international format with country code and "+", e.g. +61412345678.

### `notifyre_create_contact` (~191 tokens)

Create a contact

WRITE: adds one contact to the Notifyre address book. Give at least a name or a number. Numbers in international format (e.g. +61412345678). groups takes existing group ids; group_name puts the contact in that group and CREATES the group if it does not exist. Creating the same contact twice may make a duplicate. Notifyre API: POST /addressbook/contacts.

Input parameters:

- `email` (string): Email address.
- `fax_number` (string): Fax number, international format.
- `first_name` (string): Given name.
- `group_ids` (array): Existing group ids to add the contact to.
- `group_name` (string): Group name to add the contact to (created if missing).
- `last_name` (string): Family name.
- `mobile_number` (string): Mobile number, international format.
- `organization` (string): Organization or company.

### `notifyre_create_group` (~42 tokens)

Create a contact group

WRITE: creates one address book group with the given name. Notifyre API: POST /addressbook/groups.

Input parameters:

- `name` (string, required): The group name.

### `notifyre_add_contacts_to_groups` (~90 tokens)

Add contacts to groups

WRITE: adds existing contacts to existing groups (up to 100 contacts and 20 groups). Contacts keep their other groups. Adding a contact to a group does not send anything, but a later send to that group reaches it. Notifyre API: POST /addressbook/groups/contacts.

Input parameters:

- `contact_ids` (array, required): Contact ids.
- `group_ids` (array, required): Group ids.

## Diagnostics

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

## Score history

- 2026-10-17: 65
- 2026-10-16: 64
- 2026-10-15: 64
- 2026-10-14: 63
- 2026-10-13: 61
- 2026-10-12: 61

## Common questions

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

Notifyre MCP by usefulapi is listed in the public MCP registry as io.usefulapi/notifyre. Read Notifyre SMS, replies, faxes, numbers, prices and contacts; send SMS to up to 10 numbers. This page covers its hosted endpoint (https://notifyre.usefulapi.io/mcp).

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

Notifyre MCP by usefulapi scores 65 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 Notifyre MCP by usefulapi server expose?

Notifyre MCP by usefulapi exposes 21 tools: notifyre_list_sent_sms, notifyre_get_sent_sms, notifyre_get_sms_recipient, notifyre_list_sms_replies, notifyre_get_sms_reply, and 16 more. Their descriptions and schemas cost roughly 2,547 tokens of context every time the server is loaded.

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

Yes. Notifyre 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 Notifyre MCP by usefulapi server still maintained?

Notifyre MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 17 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://notifyre.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/notifyre/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-notifyre/notifyre.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-notifyre/notifyre.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-notifyre/notifyre
