# io.usefulapi/moosend (remote · moosend.usefulapi.io)

Inspect Moosend lists, subscribers, segments and campaign stats, and add or unsubscribe subscribers.

- Trust score: 33/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-03

## Components

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

## Channel facts

- Endpoint: `https://moosend.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- 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-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the whole tool list to see what that exposes.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **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 io.usefulapi/moosend MCP server?

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

### Cursor

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

### VS Code

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

### Codex

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

### opencode

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

### OpenClaw

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

### Hermes

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

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-moosend": {
      "type": "http",
      "url": "https://moosend.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-03 (score 33, +15)

- [security improvement] HTTPS: unverified → pass
- [security improvement] Transport: fail → pass
- [security] Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the whole tool list to see what that exposes.

### 2026-10-01 (score 18, −54)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Transport: pass → fail
- [functional regression] Capabilities: fail → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-09-30 (score 72, +54)

- [security improvement] Transport: unverified → pass
- [security improvement] Authorization: unverified → pass
- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] First check of Authorization: partial
- [functional regression] MCP protocol: unverified → fail
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100

### 2026-09-29 (score 18)

First indexed and scored.

## MCP tools (20)

### `moosend_list_mailing_lists` (~142 tokens)

List mailing lists

List the active email (mailing) lists in the account with member counts (active, bounced, removed, unsubscribed), custom field definitions and preferences, plus paging info. A cheap way to confirm the API key works and to find list IDs. Moosend: GET /lists/{Page}/{PageSize}.json.

Input parameters:

- `page` (integer): Page number, starting at 1. Default 1.
- `page_size` (integer): Results per page, 1-1000.
- `sort_by` (string): Property to sort by. Default CreatedOn.
- `sort_method` (string): Sort direction. Default ASC.

### `moosend_get_mailing_list` (~98 tokens)

Get mailing list details

Get one mailing list: name, member counts, status, custom field definitions (id, name, type, required), preferences and the latest import operation. Moosend: GET /lists/{MailingListID}/details.json.

Input parameters:

- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).
- `with_statistics` (boolean): Include subscriber statistics. Default true.

### `moosend_list_subscribers` (~145 tokens)

List subscribers in a list

List the subscribers of one mailing list filtered by status (Subscribed, Unsubscribed, Bounced or Removed), with name, email, custom fields, tags, preferences and dates. Paged. Moosend: GET /lists/{MailingListID}/subscribers/{Status}.json.

Input parameters:

- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).
- `page` (integer): Page number, starting at 1. Default 1.
- `page_size` (integer): Results per page, 1-1000.
- `status` (string): Subscriber status to return. Default Subscribed.

### `moosend_get_subscriber_by_email` (~112 tokens)

Find subscriber by email

Look up a subscriber in one mailing list by email address: ID, name, status (SubscribeType 1 subscribed, 2 unsubscribed, 3 bounced, 4 removed), custom fields, tags and preferences. Moosend: GET /subscribers/{MailingListID}/view.json?Email=.

Input parameters:

- `email` (string, required): Subscriber email address.
- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).

### `moosend_get_subscriber` (~81 tokens)

Get subscriber by ID

Get one subscriber in a mailing list by subscriber ID. Moosend: GET /subscribers/{MailingListID}/find/{SubscriberID}.json.

Input parameters:

- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).
- `subscriber_id` (string, required): Subscriber ID (a GUID).

### `moosend_list_segments` (~78 tokens)

List segments of a list

List the segments of one mailing list, including their criteria, match type (0 all / 1 any) and a readable description. Moosend: GET /lists/{MailingListID}/segments.json.

Input parameters:

- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).

### `moosend_get_segment` (~86 tokens)

Get segment details

Get one segment's details and criteria (not its members). Moosend: GET /lists/{MailingListID}/segments/{SegmentID}/details.json.

Input parameters:

- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).
- `segment_id` (required): Segment ID (an integer, from moosend_list_segments).

### `moosend_list_segment_subscribers` (~87 tokens)

List segment subscribers

List the subscribers that currently match one segment's criteria. Moosend: GET /lists/{MailingListID}/segments/{SegmentID}/members.json.

Input parameters:

- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).
- `segment_id` (required): Segment ID (an integer, from moosend_list_segments).

### `moosend_list_campaigns` (~156 tokens)

List campaigns

List campaigns with status (0 draft, 1 queued, 3 sent, 5 awaiting delivery, 6 sending, ...), delivery/schedule dates, target lists and headline stats (sent, opens, clicks, bounces, unsubscribes, complaints). Paged, up to 1000 per page. Moosend: GET /campaigns/{Page}/{PageSize}.json.

Input parameters:

- `page` (integer): Page number, starting at 1. Default 1.
- `page_size` (integer): Results per page, 1-1000.
- `sort_by` (string): Property to sort by. Default CreatedOn.
- `sort_method` (string): Sort direction. Default ASC.

### `moosend_get_campaign` (~89 tokens)

Get campaign details

Get one campaign's details: subject, sender and reply-to, HTML and plain content, target lists/segments, schedule, status and A/B data. No statistics (use moosend_get_campaign_summary). Moosend: GET /campaigns/{CampaignID}/view.json.

Input parameters:

- `campaign_id` (string, required): Campaign ID (a GUID, from moosend_list_campaigns).

### `moosend_get_campaign_summary` (~82 tokens)

Get campaign summary

Get a sent campaign's results to date: sent, total/unique opens, total/unique link clicks, bounces, complaints, forwards and unsubscribes. Moosend: GET /campaigns/{CampaignID}/view_summary.json.

Input parameters:

- `campaign_id` (string, required): Campaign ID (a GUID, from moosend_list_campaigns).

### `moosend_get_campaign_activity` (~209 tokens)

Get campaign recipient activity

Per-recipient activity for a campaign by type: Sent, Opened, LinkClicked, Unsubscribed, Bounced, Complained, or Activity (all). Paged (default 50, max 1000) and filterable by date. NOTE: Moosend rate-limits this endpoint to 2 calls per 60 seconds per API key. Moosend: GET /campaigns/{CampaignID}/stats/{Type}.json.

Input parameters:

- `campaign_id` (string, required): Campaign ID (a GUID, from moosend_list_campaigns).
- `from` (string): Start date, DD-MM-YYYY. Default: the send date.
- `page` (integer): Page number, starting at 1. Default 1.
- `page_size` (integer): Results per page, 1-1000.
- `to` (string): End date, DD-MM-YYYY. Default: today.
- `type` (string): Activity type. Default Sent.

### `moosend_get_campaign_link_activity` (~65 tokens)

Get campaign link clicks

List every link in a campaign with its total and unique click counts. Moosend: GET /campaigns/{CampaignID}/stats/links.json.

Input parameters:

- `campaign_id` (string, required): Campaign ID (a GUID, from moosend_list_campaigns).

### `moosend_get_campaign_activity_by_location` (~65 tokens)

Get campaign opens by country

A campaign's total and unique opens broken down by country code. Moosend: GET /campaigns/{CampaignID}/stats/countries.json.

Input parameters:

- `campaign_id` (string, required): Campaign ID (a GUID, from moosend_list_campaigns).

### `moosend_list_senders` (~58 tokens)

List campaign senders

List the account's campaign senders (name, email, enabled, SPF/DKIM verification). A draft campaign's sender and reply-to must be one of these. Moosend: GET /senders/find_all.json.

### `moosend_create_mailing_list` (~104 tokens)

Create a mailing list

WRITE: create a new, empty mailing list. Returns the new list's ID. Moosend: POST /lists/create.json.

Input parameters:

- `confirmation_page` (string): URL shown at the end of the subscription process.
- `name` (string, required): List name.
- `preferences` (object): Optional preference field for the list. Omit for none.
- `redirect_after_unsubscribe_page` (string): URL subscribers are redirected to after unsubscribing.

### `moosend_add_subscriber` (~241 tokens)

Add or update a subscriber

WRITE: add one subscriber to a mailing list. If the email already exists in the list, that subscriber is UPDATED instead (and custom fields you omit are cleared). A previously unsubscribed address is re-subscribed. Rate limit 10 calls / 10 s. Moosend: POST /subscribers/{MailingListID}/subscribe.json.

Input parameters:

- `custom_fields` (object): Custom field values by field name, e.g. {"City":"Athens","Age":25}. Sent to Moosend as "Name=Value" pairs. WARNING: on an existing subscriber, any custom field NOT included is cleared — include every…
- `email` (string, required): Subscriber email address.
- `has_external_double_opt_in` (boolean): True if the subscriber already gave consent by other means.
- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).
- `name` (string): Subscriber name.
- `preferences` (array): Preference option values chosen by the subscriber (must match the list's preference options).
- `tags` (array): Subscriber tags.

### `moosend_update_subscriber` (~246 tokens)

Update a subscriber

WRITE: update one subscriber (by ID) in a mailing list — email, name, custom fields, tags, preferences. Include every custom field you want to keep. Moosend: POST /subscribers/{MailingListID}/update/{SubscriberID}.json.

Input parameters:

- `custom_fields` (object): Custom field values by field name, e.g. {"City":"Athens","Age":25}. Sent to Moosend as "Name=Value" pairs. WARNING: on an existing subscriber, any custom field NOT included is cleared — include every…
- `email` (string, required): The subscriber's email address (required by Moosend).
- `has_external_double_opt_in` (boolean): True if the subscriber already gave consent by other means.
- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).
- `name` (string): Subscriber name.
- `preferences` (array): Preference option values chosen by the subscriber (must match the list's preference options).
- `subscriber_id` (string, required): Subscriber ID (a GUID).
- `tags` (array): Subscriber tags.

### `moosend_unsubscribe_subscriber` (~94 tokens)

Unsubscribe from a list

WRITE: unsubscribe one email address from one mailing list (not account-wide). Undo by adding the subscriber again with moosend_add_subscriber. Moosend: POST /subscribers/{MailingListID}/unsubscribe.json.

Input parameters:

- `email` (string, required): Email address to unsubscribe.
- `mailing_list_id` (string, required): Mailing list ID (a GUID, from moosend_list_mailing_lists).

### `moosend_create_draft_campaign` (~257 tokens)

Create a draft campaign

WRITE: create a regular (non-A/B) DRAFT campaign. It is NOT sent — sending stays a human action in Moosend. Give the content as html_content or a web_location URL. sender_email and reply_to_email must be senders in the account (see moosend_list_senders). Returns the new campaign's ID. Moosend: POST /campaigns/create.json.

Input parameters:

- `confirmation_to_email` (string): Where to send the 'campaign sent' confirmation. Default: sender_email.
- `html_content` (string): Complete HTML body of the campaign.
- `mailing_lists` (array, required): Target lists, each optionally narrowed to one segment.
- `name` (string, required): Campaign name.
- `reply_to_email` (string): Reply-to email — must be one of the account's senders. Default: sender_email.
- `sender_email` (string, required): Sender email — must be one of the account's senders.
- `subject` (string, required): Subject line.
- `track_in_google_analytics` (boolean): Enable Google Analytics tracking (requires GA on your site).
- `web_location` (string): URL Moosend fetches the HTML from (CSS is inlined automatically).

## Diagnostics

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

## Score history

- 2026-10-03: 33
- 2026-10-02: 18
- 2026-10-01: 18
- 2026-09-30: 72
- 2026-09-29: 18

## Common questions

### What is the io.usefulapi/moosend MCP server?

io.usefulapi/moosend is an MCP server listed in the public MCP registry as io.usefulapi/moosend. Inspect Moosend lists, subscribers, segments and campaign stats, and add or unsubscribe subscribers. This page covers its hosted endpoint (https://moosend.usefulapi.io/mcp).

### Is the io.usefulapi/moosend MCP server safe to use?

io.usefulapi/moosend scores 33 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 io.usefulapi/moosend MCP server expose?

io.usefulapi/moosend exposes 20 tools: moosend_list_mailing_lists, moosend_get_mailing_list, moosend_list_subscribers, moosend_get_subscriber_by_email, moosend_get_subscriber, and 15 more. Their descriptions and schemas cost roughly 2,495 tokens of context every time the server is loaded.

### Does the io.usefulapi/moosend MCP server require authentication?

No. We connected to io.usefulapi/moosend without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the io.usefulapi/moosend MCP server still maintained?

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