Buttondown MCP by usefulapi

io.usefulapi/buttondown

Read Buttondown subscribers, emails, analytics and automations; add subscribers; write email drafts.

Yes, your AI can use this right now.Answered a live MCP handshake in 143 ms with no sign-in needed and exposes 25 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://buttondown.usefulapi.io/mcp

25 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
buttondown_get_accountread-only

The Buttondown account this API key belongs to: username and e-mail address. GET /accounts/me.

buttondown_list_newslettersread-only

List the newsletters on the account with name, username, domains, sender, locale and timezone. The newsletter's API key, custom CSS and e-mail templates are never returned. GET /newsletters.

buttondown_get_newsletterread-only

One newsletter by id (settings and identity only; no API key, CSS or templates). GET /newsletters/{id}.

buttondown_list_subscribersread-only

List or search subscribers (newest first by default) with e-mail, type (regular, unactivated, unsubscribed, premium, ...), tags, notes, metadata, source, open/click rates and dates. Filter by e-mail text, type, tag, signup date or domain. GET /subscribers.

buttondown_get_subscriberread-only

One subscriber by id or by e-mail address: type, tags, notes, metadata, source, engagement and lifecycle dates. GET /subscribers/{id_or_email}.

buttondown_add_subscriber

WRITE: add ONE subscriber by e-mail address. No subscriber type is set, so Buttondown applies the newsletter's normal sign-up rules (double opt-in: the subscriber is typically created as unactivated and Buttondown e-mails THAT ONE address a confirmation message; opt-in is never bypassed, nor is the firewall). Only add people who asked to subscribe. Creating a subscriber (and its tags) can also sta

buttondown_update_subscribercan modify

WRITE: change ONE subscriber's tags, private note or metadata. Tags are merged (add_tags / remove_tags change only those names; the others stay). A given note or metadata replaces the existing value (destructive for that field). The subscriber's type (unsubscribe, block, ...) and e-mail address cannot be changed here, and this tool sends nothing itself; but a tag, note or metadata change can start

buttondown_list_emailsread-only

List emails (drafts, scheduled and sent), newest first by default, with subject, status, publish date, slug, archive URL and analytics summary. The body is left out unless include_body is set. Filter by status, subject text or date. GET /emails.

buttondown_get_emailread-only

One email by id with its full body, subject, status, publish date, slug, archive settings and analytics summary. GET /emails/{id}.

buttondown_get_email_analyticsread-only

Delivery and engagement numbers for one sent email: recipients, deliveries, opens, clicks, failures, unsubscriptions, complaints, replies, page views. GET /emails/{id}/analytics.

buttondown_create_email_draft

WRITE: create a DRAFT email (status always "draft"). Nothing is sent or scheduled and no subscriber is e-mailed; to send it, the user must open the draft in Buttondown and send it there. This server has no tool that sends or schedules email. Body is Markdown or HTML. POST /emails.

buttondown_update_email_draftcan modify

WRITE: edit the subject, body, description, slug or preview image of an email that is still a DRAFT (replaces those fields; the previous text is lost unless Buttondown's email history is used). Refuses any email that is not a draft, and never changes status or publish date, so nothing is sent or scheduled. PATCH /emails/{id}.

buttondown_list_tagsread-only

List subscriber tags with name, color, descriptions and whether subscribers can edit them. GET /tags.

buttondown_get_tag_analyticsread-only

Subscribers created, open rate and click rate for one tag. GET /tags/{id}/analytics.

buttondown_create_tag

WRITE: create a subscriber tag (needs a Buttondown plan with tags). An existing tag with the same name is returned as an error and not changed. POST /tags.

buttondown_list_automationsread-only

List automations (welcome sequences and other triggered e-mails) with name, status, trigger, actions and filters (webhook URLs in actions are shown by host only). Read-only: automations are not started or changed. GET /automations.

buttondown_get_automationread-only

One automation by id with its trigger, actions and filters. GET /automations/{id}.

buttondown_get_automation_analyticsread-only

Performance numbers for one automation. GET /automations/{id}/analytics.

buttondown_list_surveysread-only

List surveys with question, answers, status and response count. GET /surveys.

buttondown_list_survey_responsesread-only

List survey responses (who answered what), optionally for one survey, email or subscriber. GET /survey_responses.

buttondown_list_segmentsread-only

List saved subscriber segments with name, description and filters. GET /segments.

buttondown_list_formsread-only

List sign-up forms with title, slug, status, tags and subscriber counts. GET /forms.

buttondown_list_snippetsread-only

List reusable content snippets with identifier, name, mode and how often each is referenced. GET /snippets.

buttondown_list_webhooksread-only

List configured webhooks with status and subscribed event types. The signing key is never returned and the URL is shown by host only. GET /webhooks.

buttondown_list_eventsread-only

List delivery events (delivered, opened, clicked, bounced, unsubscribed, ...), newest first, optionally for one email or subscriber. GET /events.

Alternatives in Databases & Data

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”