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

Read audiences, members, campaigns and reports; add, update, tag and archive subscribers.

- Trust score: 69/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

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

## Channel facts

- Endpoint: `https://mailchimp.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-08-03.

- **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 not yet verified: we couldn't determine whether a plaintext access path exists.
  - 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**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2120 tokens (~117/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.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### Claude

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

### Codex

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

### opencode

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

### OpenClaw

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

### Hermes

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

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-mailchimp": {
      "type": "http",
      "url": "https://mailchimp.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-08-03 (score 69, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-08-02 (score 69, +51)

- [security improvement] Authorization: unverified → pass
- [security improvement] Transport: fail → 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: excellent
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: fail

### 2026-08-01 (score 18)

First indexed and scored.

## MCP tools (18)

### `mailchimp_get_account` (~40 tokens)

Get account

Get the API Root — the authenticated Mailchimp account: account name, total subscribers, contact info, plan and industry stats. REST: GET /.

### `mailchimp_list_audiences` (~138 tokens)

List audiences (lists)

List the account's audiences — Mailchimp's `/lists` resource (an audience is a list of subscribers). Paginated, with optional sort. REST: GET /lists.

Input parameters:

- `count` (integer): Records to return (Mailchimp `count`; default 10, max 1000).
- `offset` (integer): Number of records to skip (Mailchimp `offset`, for pagination).
- `sortDir` (string): Sort direction ASC/DESC (Mailchimp `sort_dir`).
- `sortField` (string): Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time).

### `mailchimp_get_audience` (~55 tokens)

Get audience (list)

Get a single audience (list) by id, including subscriber stats, default from-name/email and settings. REST: GET /lists/{list_id}.

Input parameters:

- `list_id` (string, required): The audience (list) id.

### `mailchimp_list_members` (~166 tokens)

List members

List members of an audience (list). Paginated, with an optional status filter and sort. REST: GET /lists/{list_id}/members.

Input parameters:

- `count` (integer): Records to return (Mailchimp `count`; default 10, max 1000).
- `list_id` (string, required): The audience (list) id to list members from.
- `offset` (integer): Number of records to skip (Mailchimp `offset`, for pagination).
- `sortDir` (string): Sort direction ASC/DESC (Mailchimp `sort_dir`).
- `sortField` (string): Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time).
- `status` (string): Filter by member status (Mailchimp `status`).

### `mailchimp_get_member` (~127 tokens)

Get member

Get a single audience member (subscriber) by email or subscriber_hash, including status, merge fields, tags and stats. REST: GET /lists/{list_id}/members/{subscriber_hash} (email → MD5 hash).

Input parameters:

- `email` (string): Member email address — MD5-hashed (lowercased) into the subscriber_hash for you.
- `list_id` (string, required): The audience (list) id.
- `subscriberHash` (string): The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`.

### `mailchimp_search_members` (~78 tokens)

Search members

Search for members across the account (or one audience) by email, name or other fields. Returns exact + full-text matches. REST: GET /search-members.

Input parameters:

- `list_id` (string): Restrict the search to this audience (list) id.
- `query` (string, required): The search query (email, name, etc.).

### `mailchimp_list_campaigns` (~185 tokens)

List campaigns

List the account's campaigns (email sends). Paginated, with optional type/status/audience filters and sort. REST: GET /campaigns.

Input parameters:

- `count` (integer): Records to return (Mailchimp `count`; default 10, max 1000).
- `list_id` (string): Restrict to campaigns sent to this audience (list) id.
- `offset` (integer): Number of records to skip (Mailchimp `offset`, for pagination).
- `sortDir` (string): Sort direction ASC/DESC (Mailchimp `sort_dir`).
- `sortField` (string): Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time).
- `status` (string): Filter by campaign status (Mailchimp `status`).
- `type` (string): Filter by campaign type (Mailchimp `type`).

### `mailchimp_get_campaign` (~47 tokens)

Get campaign

Get a single campaign by id, including its settings, recipients and send status. REST: GET /campaigns/{campaign_id}.

Input parameters:

- `campaign_id` (string, required): The campaign id.

### `mailchimp_list_reports` (~97 tokens)

List reports

List campaign reports (aggregate performance for sent campaigns). Paginated, with an optional type filter. REST: GET /reports.

Input parameters:

- `count` (integer): Records to return (Mailchimp `count`; default 10, max 1000).
- `offset` (integer): Number of records to skip (Mailchimp `offset`, for pagination).
- `type` (string): Filter reports by campaign type (Mailchimp `type`).

### `mailchimp_get_campaign_report` (~59 tokens)

Get campaign report

Get the report for one campaign — opens, clicks, bounces, unsubscribes and other engagement summary stats. REST: GET /reports/{campaign_id}.

Input parameters:

- `campaign_id` (string, required): The campaign id to fetch the report for.

### `mailchimp_list_automations` (~79 tokens)

List automations

List the account's classic automations (automated email workflows). Paginated. REST: GET /automations.

Input parameters:

- `count` (integer): Records to return (Mailchimp `count`; default 10, max 1000).
- `offset` (integer): Number of records to skip (Mailchimp `offset`, for pagination).

### `mailchimp_list_templates` (~152 tokens)

List templates

List the account's email templates (saved and pre-built layouts). Paginated, with optional type filter and sort. REST: GET /templates.

Input parameters:

- `count` (integer): Records to return (Mailchimp `count`; default 10, max 1000).
- `offset` (integer): Number of records to skip (Mailchimp `offset`, for pagination).
- `sortDir` (string): Sort direction ASC/DESC (Mailchimp `sort_dir`).
- `sortField` (string): Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time).
- `type` (string): Filter by template type (Mailchimp `type`: user / base / gallery).

### `mailchimp_list_segments` (~96 tokens)

List segments

List an audience's segments and tags (saved segments include static tags). Paginated. REST: GET /lists/{list_id}/segments.

Input parameters:

- `count` (integer): Records to return (Mailchimp `count`; default 10, max 1000).
- `list_id` (string, required): The audience (list) id.
- `offset` (integer): Number of records to skip (Mailchimp `offset`, for pagination).

### `mailchimp_list_member_tags` (~168 tokens)

List member tags

List the tags applied to a single audience member (by email or subscriber_hash). Paginated. REST: GET /lists/{list_id}/members/{subscriber_hash}/tags (email → MD5 hash).

Input parameters:

- `count` (integer): Records to return (Mailchimp `count`; default 10, max 1000).
- `email` (string): Member email address — MD5-hashed (lowercased) into the subscriber_hash for you.
- `list_id` (string, required): The audience (list) id.
- `offset` (integer): Number of records to skip (Mailchimp `offset`, for pagination).
- `subscriberHash` (string): The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`.

### `mailchimp_add_member` (~155 tokens)

Add member

Add a new member (subscriber) to an audience (list). Note: status "pending" triggers a double-opt-in confirmation email. REST: POST /lists/{list_id}/members.

Input parameters:

- `email_address` (string, required): The member's email address (required).
- `list_id` (string, required): The audience (list) id to add the member to.
- `merge_fields` (object): Merge-field values, e.g. { FNAME: "Ada", LNAME: "Lovelace" }.
- `status` (string): Subscription status (default "subscribed"; "pending" sends a double-opt-in email).
- `tags` (array): Array of tag-name strings to apply to the new member.

### `mailchimp_update_member` (~157 tokens)

Update member

Update an existing audience member (by email or subscriber_hash). Only the fields you supply change. REST: PATCH /lists/{list_id}/members/{subscriber_hash} (email → MD5 hash).

Input parameters:

- `email` (string): Member email address — MD5-hashed (lowercased) into the subscriber_hash for you.
- `list_id` (string, required): The audience (list) id.
- `merge_fields` (object): Merge-field values to set, e.g. { FNAME: "Ada" }.
- `status` (string): New subscription status.
- `subscriberHash` (string): The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`.

### `mailchimp_add_member_tags` (~191 tokens)

Add/remove member tags

Add and/or remove tags on an audience member (by email or subscriber_hash). `tags` are added (status active); `removeTags` are removed (status inactive). Mailchimp returns HTTP 204 (no body). REST: POST /lists/{list_id}/members/{subscriber_hash}/tags (email → MD5 hash).

Input parameters:

- `email` (string): Member email address — MD5-hashed (lowercased) into the subscriber_hash for you.
- `list_id` (string, required): The audience (list) id.
- `removeTags` (array): Tag names to REMOVE from the member (mapped to status "inactive").
- `subscriberHash` (string): The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`.
- `tags` (array): Tag names to ADD to the member (mapped to status "active").

### `mailchimp_archive_member` (~130 tokens)

Archive member

Archive (soft-remove) an audience member — reversible; this is NOT the permanent-delete action. REST: DELETE /lists/{list_id}/members/{subscriber_hash} (email → MD5 hash). Returns HTTP 204 (no body).

Input parameters:

- `email` (string): Member email address — MD5-hashed (lowercased) into the subscriber_hash for you.
- `list_id` (string, required): The audience (list) id.
- `subscriberHash` (string): The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`.

## Diagnostics

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

## Score history

- 2026-08-03: 69
- 2026-08-02: 69
- 2026-08-01: 18

## Links

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