Buttondown MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.23.3Updated Nov 7, 2026

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

The publisher's own server: Ably MCP by usefulapi

Overview

AI-generated overview

Hosted MCP server for Buttondown that lets an assistant read subscribers, emails, analytics and automations, add subscribers and write email drafts.

What you can do
  • Read account, newsletters, tags, segments, forms, snippets, webhooks and automations
  • List, search and inspect subscribers, including tags, notes, metadata and engagement
  • List and read emails, with delivery and engagement analytics per email, tag and automation
  • Add one subscriber, update a subscriber's tags, notes or metadata, and create tags
  • Create and edit email drafts (nothing is sent or scheduled)
  • Review surveys, survey responses and delivery events
When to use it
Useful when you manage a Buttondown newsletter and want an assistant to answer questions about list growth, subscriber details, past email performance or current drafts, or to prepare subscriber changes and draft emails without leaving the chat.
Requirements
Remote endpoint only, no local install. Connect with the server URL and sign in through OAuth; the login page asks for your Buttondown credentials, and no API key or Authorization header goes in the client config. A Buttondown account is required, and the free tier allows 50 tool calls per month.
Before you install
Write tools change Buttondown data: adding a subscriber triggers Buttondown's normal sign-up rules and confirmation email to that address, and updating a note or metadata replaces the existing value. Editing a draft overwrites its fields. Buttondown credentials are entered on the provider's OAuth login page. Paid plans are billed through Stripe checkout links, and cancelling gives no refund for the current period.

Installation

In SourceWeft

  1. Open Buttondown MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fbuttondown/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "buttondown-by-usefulapi": {
      "type": "http",
      "url": "https://buttondown.usefulapi.io/mcp"
    }
  }
}

README

Buttondown MCP by usefulapi

Use Buttondown from Claude, Cursor, or any MCP client — subscribers, emails, analytics, tags, automations, surveys and events, plus subscribers and email drafts. Hosted, no local install: connect with your own Buttondown credentials.

Live endpoint: https://buttondown.usefulapi.io/mcp · Homepage: https://usefulapi.io/buttondown

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://buttondown.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http buttondown https://buttondown.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "buttondown": {      "url": "https://buttondown.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Buttondown credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/buttondown/

Tools

ToolTypeWhat it does
buttondown_get_accountreadGet account
buttondown_list_newslettersreadList newsletters
buttondown_get_newsletterreadGet newsletter
buttondown_list_subscribersreadList subscribers
buttondown_get_subscriberreadGet subscriber
buttondown_add_subscriberwriteAdd a subscriber
buttondown_update_subscriberwriteUpdate a subscriber's tags, notes or metadata
buttondown_list_emailsreadList emails
buttondown_get_emailreadGet email
buttondown_get_email_analyticsreadGet email analytics
buttondown_create_email_draftwriteCreate an email draft
buttondown_update_email_draftwriteEdit an email draft
buttondown_list_tagsreadList tags
buttondown_get_tag_analyticsreadGet tag analytics
buttondown_create_tagwriteCreate a tag
buttondown_list_automationsreadList automations
buttondown_get_automationreadGet automation
buttondown_get_automation_analyticsreadGet automation analytics
buttondown_list_surveysreadList surveys
buttondown_list_survey_responsesreadList survey responses
buttondown_list_segmentsreadList segments
buttondown_list_formsreadList forms
buttondown_list_snippetsreadList snippets
buttondown_list_webhooksreadList webhooks
buttondown_list_eventsreadList email events
buttondown_usage_statusmetaUsage status (free-tier meter)
buttondown_request_featuremetaRequest a missing feature
buttondown_upgrademetaUpgrade to Pro or Pro+
buttondown_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with buttondown_upgrade (it returns a Stripe Checkout link). Cancel any time with buttondown_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running buttondown_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by Buttondown.

Source: servers/buttondown/README.md at commit 4046075

Tools

25

buttondown_get_account

Get account

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

Takes no parameters.

buttondown_list_newsletters

List newsletters

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.

Parameterspage

buttondown_get_newsletter

Get newsletter

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

Parametersnewsletter_idrequired

buttondown_list_subscribers

List subscribers

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.

Parameterstagpagetypedomainnot_typeorderingcreated_afteremail_addresscreated_before

buttondown_get_subscriber

Get subscriber

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

Parametersid_or_emailrequired

buttondown_add_subscriber

Add a 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 start the newsletter's own automations, which may e-mail that one subscriber. An existing e-mail is left untouched (error, no overwrite). Optional tags (a tag that does not exist is created, which needs a plan with tags), a private note and metadata. Buttondown limits creation to 100 subscribers per day. POST /subscribers.

Parameterstagsnotesmetadatautm_mediumutm_sourcereferrer_urlutm_campaignemail_addressrequired

buttondown_update_subscriber

Update a subscriber's tags, notes or metadata

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 the newsletter's own automations (for example a tag-triggered welcome sequence), which may e-mail that one subscriber. PATCH /subscribers/{id_or_email}.

Parametersnotesadd_tagsmetadataid_or_emailrequiredremove_tags

buttondown_list_emails

List emails

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.

Parameterspagestatussubjectorderinginclude_bodycreated_aftercreated_beforepublished_afterpublished_before

buttondown_get_email

Get email

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

Parametersemail_idrequired

buttondown_get_email_analytics

Get email analytics

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

Parametersemail_idrequired

buttondown_create_email_draft

Create an 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.

Parametersbodyslugimagesubjectrequireddescriptioncanonical_url

buttondown_update_email_draft

Edit an email draft

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}.

Parametersbodyslugimagesubjectemail_idrequireddescriptioncanonical_url

buttondown_list_tags

List tags

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

Parameterspage

buttondown_get_tag_analytics

Get tag analytics

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

Parameterstag_idrequired

buttondown_create_tag

Create a 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.

Parametersnamerequiredcolorrequireddescriptionpublic_descriptionsubscriber_editable

buttondown_list_automations

List automations

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.

Parameterspage

buttondown_get_automation

Get automation

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

Parametersautomation_idrequired

buttondown_get_automation_analytics

Get automation analytics

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

Parametersautomation_idrequired

buttondown_list_surveys

List surveys

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

Parameterspagestatus

buttondown_list_survey_responses

List survey responses

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

Parameterspageemail_idsurvey_idcreated_aftersubscriber_idcreated_before

buttondown_list_segments

List segments

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

Parameterspage

buttondown_list_forms

List forms

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

Parameterspage

buttondown_list_snippets

List snippets

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

Parameterspage

buttondown_list_webhooks

List webhooks

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.

Parameterspage

buttondown_list_events

List email events

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

Parameterspageemail_idpage_sizeevent_typesubscriber_id

Version history

19
  1. v1.23.3LatestNov 7, 2026
  2. v1.22.3Nov 5, 2026
  3. v1.22.2Nov 5, 2026
  4. v1.22.1Nov 4, 2026
  5. v1.22.0Nov 3, 2026
  6. v1.21.1Nov 3, 2026
  7. v1.20.0Nov 1, 2026
  8. v1.18.0Oct 31, 2026
  9. v1.17.0Oct 31, 2026
  10. v1.16.2Oct 30, 2026
  11. v1.16.0Oct 30, 2026
  12. v1.11.0Oct 26, 2026
  13. v1.8.3Oct 25, 2026
  14. v1.8.0Oct 25, 2026
  15. v1.7.0Oct 24, 2026
  16. v1.4.0Oct 23, 2026
  17. v1.3.4Oct 22, 2026
  18. v1.3.3Oct 21, 2026
  19. v1.0.0Oct 12, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations