# Notify (npm · notifycx-mcp)

Transactional email for coding agents: send, test, verify domains, webhooks, logs.

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

## Components

- npm · `notifycx-mcp`: 57/100 (this document), [markdown](https://verifymcp.io/servers/notifycx-notifycx-mcp/notifycx-mcp.md), [page](https://verifymcp.io/servers/notifycx-notifycx-mcp/notifycx-mcp)

## Channel facts

- Registry: `npm`
- Package: `notifycx-mcp`
- Version: `1.2.3`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-04.

- **Supply Chain Security**: 63/100
  - No malware found by supply-chain analysis.
  - Known CVEs could not be checked: the version this server declares is not published in its registry.
  - No install/post-install scripts declared.
  - Dependency health could not be checked: the version this server declares is not published in its registry.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 72/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1483 tokens (~70/item across 21 items; 21 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability observed for 0 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 95/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 84% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "send_email" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Notify MCP server?

Notify runs locally as an npm package, launched with npx -y notifycx-mcp. 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 notifycx-notifycx-mcp -- npx -y notifycx-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "notifycx-notifycx-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "notifycx-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "notifycx-notifycx-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "notifycx-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add notifycx-notifycx-mcp -- npx -y notifycx-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "notifycx-notifycx-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "notifycx-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add notifycx-notifycx-mcp --command npx --arg -y --arg notifycx-mcp
```

### Hermes

```yaml
mcp_servers:
  notifycx-notifycx-mcp:
    command: "npx"
    args: ["-y", "notifycx-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "notifycx-notifycx-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "notifycx-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add notifycx-notifycx-mcp -t stdio -c npx -a -y notifycx-mcp
```

### Other

```json
{
  "mcpServers": {
    "notifycx-notifycx-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "notifycx-mcp"
      ]
    }
  }
}
```

## 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-04 (score 57)

First indexed and scored.

## MCP tools (21)

### `bootstrap_start` (~106 tokens)

Start Notify agent signup or key recovery without the dashboard. Sends a 6-digit email OTP. No NOTIFY_API_KEY required. Ask the user to paste the code, then call bootstrap_confirm. Requires acceptTerms: true (https://notify.cx/terms).

Input parameters:

- `acceptTerms` (boolean, required): Must be true — user accepts Terms and AUP
- `email` (string, required): User email for the Notify account
- `intent` (string): signup (default) or recover existing account

### `bootstrap_confirm` (~104 tokens)

Confirm the email OTP from bootstrap_start. Returns api_key once — instruct the user to put it in MCP env NOTIFY_API_KEY (do not leave the secret in chat). Then use add_domain / send_email. No NOTIFY_API_KEY required for this call.

Input parameters:

- `clientHint` (string): e.g. cursor, chatgpt
- `code` (string, required): 6-digit code from email
- `email` (string, required)
- `intent` (string)

### `send_email` (~153 tokens)

Send transactional email via Notify (password reset, receipt, magic link, invoice, etc.) with a verified from domain. Use when the user wants production delivery. Prefer html for the body. For non-delivering API rehearsal before domain verification, use send_test_email instead.

Input parameters:

- `from` (string, required): Sender address or Name <email@verified-domain.com>. Production custom from requires a verified domain.
- `html` (string): HTML (or plain text) body. Prefer html; message/text also work.
- `message` (string): Alias for html/body content
- `subject` (string, required): Email subject line
- `text` (string): Alias for html/body content
- `to` (string, required): Recipient email address

### `send_test_email` (~148 tokens)

API rehearsal for Notify: same request shape as production send but does not deliver and does not count toward quota. Use before domain verification or when testing the HTTP contract. For real inbox delivery, use send_email after verifying SPF/DKIM.

Input parameters:

- `from` (string, required): Sender address or Name <email@verified-domain.com>. Production custom from requires a verified domain.
- `html` (string): HTML (or plain text) body. Prefer html; message/text also work.
- `message` (string): Alias for html/body content
- `subject` (string, required): Email subject line
- `text` (string): Alias for html/body content
- `to` (string, required): Recipient email address

### `list_domains` (~41 tokens)

List Notify sending domains and verification status (SPF/DKIM). Includes structured dnsRecords (type/name/value) for the user to publish at their DNS host.

### `get_domain` (~63 tokens)

Get one Notify sending domain by hostname, including dnsRecords (type/name/value) and raw DNS tokens for pending verification. Show dnsRecords to the user so they can add them at their hosting provider.

Input parameters:

- `domain` (string, required): Domain hostname, e.g. example.com

### `add_domain` (~97 tokens)

Add a sending domain and start SPF/DKIM verification. Returns dnsRecords (type/name/value) the user must add at their DNS host — Notify does not publish DNS. After DNS is configured, call check_domain. Then use send_email with a from address on that domain.

Input parameters:

- `dnsProvider` (string): Optional DNS provider hint for host/name formatting
- `domain` (string, required): Domain hostname to verify, e.g. example.com

### `check_domain` (~60 tokens)

Poll SES for domain SPF/DKIM verification status after DNS records were added. Call after add_domain. When both succeed, production send_email with that from domain is unlocked and the plan email limit lifts.

Input parameters:

- `domain` (string, required): Domain hostname to check

### `list_email_logs` (~76 tokens)

List recent Notify email delivery logs. Use after a send to check delivery, bounce, open, or click status.

Input parameters:

- `eventType` (string): Filter logs by analytics event type
- `limit` (integer): Page size (default 20, max 100)
- `page` (integer): Page number (default 1)

### `get_usage` (~33 tokens)

Get Notify plan usage and quota (hourly/monthly sends, account_verified). Use when debugging limits or confirming production unlock.

### `list_api_keys` (~29 tokens)

List API key metadata for the account (id, name, prefix only — never the full secret).

### `create_api_key` (~59 tokens)

Create an API key (full_access required). Free plan allows one key. Prefer sending_access + domainId for app keys on Pro+.

Input parameters:

- `domainId` (string)
- `name` (string, required)
- `permission` (string)

### `regenerate_api_key` (~42 tokens)

Rotate an API key secret by keyId. Returns the new api_key once — update NOTIFY_API_KEY / app secrets.

Input parameters:

- `keyId` (string, required)

### `delete_api_key` (~34 tokens)

Deactivate an API key by keyId. Cannot delete the last full_access key.

Input parameters:

- `keyId` (string, required)

### `create_billing_checkout` (~46 tokens)

Get a Stripe Checkout URL for Pro or Scale (full_access key). User opens the URL in a browser to pay — not the Notify dashboard.

Input parameters:

- `plan` (string)

### `list_webhooks` (~21 tokens)

List Notify webhook subscriptions (URL, events, domain scope).

### `get_webhook` (~27 tokens)

Get one Notify webhook by id.

Input parameters:

- `id` (string, required): Webhook subscription id

### `create_webhook` (~126 tokens)

Create a Notify webhook for delivery events on a verified domain. Requires Pro or Scale (free plan has 0 webhooks). Use list_domains to get domainId.

Input parameters:

- `domainId` (string, required): Verified sending domain id from list_domains
- `matchFroms` (array): When matchMode is froms
- `matchHosts` (array): When matchMode is hosts
- `matchMode` (string): Optional match scope (default domain)
- `subscribedEvents` (array, required): Event types to subscribe to
- `webhookUrl` (string, required): HTTPS URL to receive webhook events

### `update_webhook` (~117 tokens)

Update an existing Notify webhook (URL, events, domain scope).

Input parameters:

- `domainId` (string): Verified sending domain id from list_domains
- `id` (string, required): Webhook subscription id
- `matchFroms` (array): When matchMode is froms
- `matchHosts` (array): When matchMode is hosts
- `matchMode` (string): Optional match scope (default domain)
- `subscribedEvents` (array): Event types to subscribe to
- `webhookUrl` (string): HTTPS URL to receive webhook events

### `delete_webhook` (~28 tokens)

Delete a Notify webhook subscription by id.

Input parameters:

- `id` (string, required): Webhook subscription id

### `test_webhook` (~73 tokens)

Send a test Notify webhook payload to a URL (does not require an existing subscription id).

Input parameters:

- `domainId` (string): Optional verified domain id for scoped test payloads
- `eventType` (string, required): Event type for the test payload
- `webhookUrl` (string, required): HTTPS URL to receive the test payload

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/notifycx-notifycx-mcp/notifycx-mcp#diagnostics

## Score history

- 2026-11-04: 57

## Common questions

### What is the Notify MCP server?

Notify is an MCP server listed in the public MCP registry as io.github.notifycx/notifycx-mcp. Transactional email for coding agents: send, test, verify domains, webhooks, logs. This page covers its npm package (notifycx-mcp).

### Is the Notify MCP server safe to use?

Notify scores 57 out of 100 on VerifyMCP. It declares no install or post-install scripts. 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 Notify MCP server expose?

Notify exposes 21 tools: bootstrap_start, bootstrap_confirm, send_email, send_test_email, list_domains, and 16 more. Their descriptions and schemas cost roughly 1,483 tokens of context every time the server is loaded.

### Is the Notify MCP server still maintained?

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

### What licence is the Notify MCP server under?

Notify declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/notifycx-mcp
- Socket report: https://socket.dev/npm/package/notifycx-mcp
- Repository: https://github.com/notifycx/notifycx
- Website: https://notify.cx/mcp
- Changelog RSS feed: https://verifymcp.io/servers/notifycx-notifycx-mcp/notifycx-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/notifycx-notifycx-mcp/notifycx-mcp.json
- HTML version of this page: https://verifymcp.io/servers/notifycx-notifycx-mcp/notifycx-mcp
