Mailcheer

Manage a Mailcheer email workspace: subscribers, segments, campaigns, transactional sends and stats.

使うべきか

品質と安全性

A
説明の品質
99%
スキーマの完全性
79%
命名の品質
98%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,943トークン数(ツール定義)
~708 B一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.30%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "mailcheer": {
      "url": "https://mailcheer.com/api/mcp"
    }
  }
}

リモートエンドポイント

https://mailcheer.com/api/mcpstreamable-http

できること

ツール一覧

ツール(17)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🔴send_email(from, to, subject, html, text, ...)

Sends a single (transactional) email to one or more addresses. The sender must belong to a verified domain of the workspace — call get_account to see which ones. An address suppressed for a bounce, a complaint or by hand fails the entire call, with its reason. An unsubscribed address still gets an individual email (a reply, an invoice, an appointment); a newsletter or a prospecting email must carry `unsubscribe_url`, and is then refused to an unsubscribed address. At most 50 addresses in all, to, cc and bcc together. Every address (to, cc, bcc) counts against the plan's monthly quota: past it, the call is refused (`quota_exceeded`) with the figures and the reset date — do not retry before that date. The email is sent immediately: this action cannot be undone.

入力スキーマ

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Sending address on a verified domain. \"Name <[email protected]>\" format accepted."
    },
    "to": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 50
        }
      ],
      "description": "Recipient, or list of recipients."
    },
    "subject": {
      "type": "string",
      "description": "Message subject."
    },
    "html": {
      "type": "string",
      "description": "HTML body."
    },
    "text": {
      "type": "string",
      "description": "Plain-text body. At least one of html or text is required."
    },
    "replyTo": {
      "type": "string",
      "description": "Reply-to address."
    },
    "unsubscribe_url": {
      "type": "string",
      "description": "One-click unsubscribe https address. Required for a newsletter or a prospecting email: it makes the send refused to an unsubscribed address. Leave it out for an individual email."
    }
  },
  "required": [
    "from",
    "to",
    "subject"
  ]
}
🟢get_account

Returns the workspace this key grants access to, its scopes, plan, remaining emails this month (queued sends included), when the counter resets, billing status, member and domain limits, sending domains (verified or not) and registered senders. Call this FIRST: it tells you which address to send from before attempting anything.

入力スキーマ

{
  "type": "object",
  "properties": {}
}
🟢list_subscribers(limit, cursor, status, q, updated_since)

Lists the workspace's subscribers, page by page. Use `cursor` with the `next_cursor` value from the response to get the next page. `status` filters on subscribed, pending, unsubscribed, bounced, or complained.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "1 to 100, 50 by default."
    },
    "cursor": {
      "type": "string",
      "description": "Next-page cursor."
    },
    "status": {
      "type": "string"
    },
    "q": {
      "type": "string",
      "description": "Search by address or name."
    },
    "updated_since": {
      "type": "string",
      "description": "ISO 8601 date: only the records created or changed since then (status, name, fields, tags)."
    }
  }
}
🟢add_subscriber(email, firstName, lastName, tags, double_opt_in)

Adds or updates a subscriber. By default the person enters as PENDING and receives a confirmation email: that is double opt-in, and it protects the workspace's sending reputation. `double_opt_in: false` subscribes directly and must only be used when consent was already collected elsewhere — never on your own initiative. A suppressed or unsubscribed address is refused. An address gets at most one confirmation every 2 minutes and 3 per 24 hours: do not retry in a loop, read `confirmation_not_sent_reason` and `confirmation_retry_at` in the response.

入力スキーマ

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    },
    "firstName": {
      "type": "string"
    },
    "lastName": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "double_opt_in": {
      "type": "boolean",
      "description": "false = direct subscription without confirmation. Only request this on explicit instruction from the person."
    }
  },
  "required": [
    "email"
  ]
}
🔴remove_subscriber(email)

Unsubscribes an address and adds it to the workspace's suppression list: no more campaigns, automations, or sends carrying `unsubscribe_url`. The record is not deleted — that is what prevents the address from coming back on the next file import. This action cannot be reversed via the API: only the person can re-subscribe.

入力スキーマ

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    }
  },
  "required": [
    "email"
  ]
}
🟢list_tags

The workspace's tags, with how many subscribers carry each one (`subscribers`) and, among them, the active ones (`subscribed`). Read this before tagging: reuse an existing name rather than creating a near-duplicate.

入力スキーマ

{
  "type": "object",
  "properties": {}
}
🟢tag_subscriber(email, add, remove)

Adds (`add`) and removes (`remove`) tags on ONE existing subscriber, and nothing else: no subscription, no confirmation email, no status touched. Prefer it to add_subscriber for changing tags: add_subscriber is a subscription and sends the confirmation again to a pending person. An unknown address is not created (404). The response says what really changed (`added`, `removed`).

入力スキーマ

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    },
    "add": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "remove": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "email"
  ]
}
🔴erase_subscriber(email)

Erases a person from the workspace at THEIR request (right to erasure): record, name, fields, proof of consent, tags. Statistics of campaigns already sent do not move; the suppression list is not touched. To stop someone receiving anything, use remove_subscriber — not this one. IRREVERSIBLE: only use it on the explicit request of the person concerned, relayed by the user.

入力スキーマ

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    }
  },
  "required": [
    "email"
  ]
}
🟢list_suppression(limit, cursor, email)

Suppressed addresses, with their reason: bounced, complained or manually suppressed (nothing goes to them), or unsubscribed (no more campaigns, automations, or sends carrying `unsubscribe_url`, but an individual email still reaches them). The `scope` field tells whether the address is suppressed for this workspace only or for the entire platform. No tool removes an address from this list: that action is done manually in the Mailcheer workspace, because it is the one that can suspend a sending capability.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number"
    },
    "cursor": {
      "type": "string"
    },
    "email": {
      "type": "string",
      "description": "Look up a specific address."
    }
  }
}
🔴add_suppression(email, reason)

Adds an address to the workspace's suppression list. By default (`manual`), it will receive nothing further, neither campaigns nor individual emails; with `unsubscribe`, only campaigns, automations, and sends carrying `unsubscribe_url` are refused to it. Use when someone requests no further contact outside the unsubscribe link.

入力スキーマ

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    },
    "reason": {
      "type": "string",
      "enum": [
        "unsubscribe",
        "bounce",
        "complaint",
        "manual"
      ]
    }
  },
  "required": [
    "email"
  ]
}
🟢list_campaigns(limit, cursor, status)

The workspace's campaigns, from newest to oldest, with their status: draft, scheduled, sending, or sent.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number"
    },
    "cursor": {
      "type": "string"
    },
    "status": {
      "type": "string"
    }
  }
}
🟢create_campaign(name, subject, text, preheader, from, ...)

Creates a DRAFT. Nothing is sent: you then need to call send_campaign, or send it from the Mailcheer workspace. Content is written in plain text in `text` — a blank line separates paragraphs, "#" at the start of a line makes a heading. Always have the draft reviewed before sending.

入力スキーマ

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Internal name, visible only in the workspace."
    },
    "subject": {
      "type": "string",
      "description": "Subject line seen by recipients."
    },
    "text": {
      "type": "string",
      "description": "Plain-text content."
    },
    "preheader": {
      "type": "string",
      "description": "Preview text shown after the subject in the inbox."
    },
    "from": {
      "type": "string",
      "description": "Address of an already-registered sender. Defaults to the workspace sender."
    },
    "kind": {
      "type": "string",
      "description": "newsletter, offer, announcement… newsletter by default."
    }
  },
  "required": [
    "name"
  ]
}
🟢update_campaign(id, name, subject, text, preheader, ...)

Edits a DRAFT: name, subject, preheader, kind, sender, content (`text`). Nothing is sent. Prefer it to create_campaign to rework a text: otherwise the old draft stays in the list. A scheduled, sending or sent campaign cannot be edited (409).

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "subject": {
      "type": "string"
    },
    "text": {
      "type": "string",
      "description": "The new content, in plain text: it replaces the old one."
    },
    "preheader": {
      "type": "string"
    },
    "from": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟢preview_campaign_send(id, to)

Read-only: nothing is sent. Returns exactly what send_campaign would do right now — would it go out (and if not, why), and how many people would receive it. With `to`, reports address by address who is kept and who is excluded, with the reason (unsubscribed, bounced, complained, not in the list…). If the monthly quota is not enough, `would_send` is false, `blocked_code` is `quota_exceeded` and `blocked_details` gives the figures and the reset date. Call it BEFORE send_campaign, and give that number to the person when you ask them to confirm.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Campaign identifier."
    },
    "to": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional. The addresses to restrict the send to. Omitted = the campaign's whole audience."
    }
  },
  "required": [
    "id"
  ]
}
🔴send_campaign(id, to)

⚠️ IRREVERSIBLE. Locks the recipient list and triggers sending to ALL active subscribers in the workspace — or, with `to`, only to the requested addresses that are active subscribers (never an unsubscribed or suppressed address). A sent email cannot be recalled. First call preview_campaign_send with the same parameters, then ask the person for explicit confirmation, telling them how many people will receive the message. Messages go out progressively; get_campaign_stats tracks progress.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Campaign identifier."
    },
    "to": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional. Restricts the send to these addresses. An empty list sends to nobody (refused); for the whole list, omit the field."
    }
  },
  "required": [
    "id"
  ]
}
🟢get_campaign_stats(id)

Status and figures for a campaign: recipients, sent, delivered, opened, clicked, bounced, complained. Rates are calculated on delivered messages, not on recipients. Every rate comes twice: open_rate and click_rate include bots (security gateways, preloads), human_open_rate and human_click_rate set them aside — that is the figure to give the person when they ask how many read it.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟢get_email(id)

Status of an email sent via send_email: sent, delivered, bounced, or complained. Amazon's delivery callback arrives a few seconds to a few minutes after sending — a "sent" status right after the call is normal.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 17 件
検証済みバージョンは記録されていませんツール 13 件