Buttondown MCP by usefulapi
Server Details
Read Buttondown subscribers, emails, analytics and automations; add subscribers; write email drafts.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
25 toolsbuttondown_add_subscriberAdd a subscriberInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tag names to apply. | |
| notes | No | Private note (never shown to the subscriber). | |
| metadata | No | Free-form key-value data stored on the subscriber. | |
| utm_medium | No | ||
| utm_source | No | ||
| referrer_url | No | Where the subscriber came from. | |
| utm_campaign | No | ||
| email_address | Yes | The new subscriber's e-mail address. They receive the confirmation e-mail. |
buttondown_create_email_draftCreate an email draftInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Email body in Markdown (or HTML). | |
| slug | No | Archive URL slug. | |
| image | No | Preview image URL. | |
| subject | Yes | Subject line. | |
| description | No | Short description used for archives and SEO. | |
| canonical_url | No | URL of the original source of the content. |
buttondown_create_tagCreate a tagInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tag name (up to 100 characters). | |
| color | Yes | Hex color, e.g. #FFD700. | |
| description | No | Internal description (only you see it). | |
| public_description | No | Public description shown in the subscriber portal. | |
| subscriber_editable | No | Let subscribers add/remove this tag themselves. Default false. |
buttondown_get_accountGet accountRead-onlyInspect
The Buttondown account this API key belongs to: username and e-mail address. GET /accounts/me.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
buttondown_get_automationGet automationRead-onlyInspect
One automation by id with its trigger, actions and filters. GET /automations/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| automation_id | Yes | The object's Buttondown id (a UUID or a prefixed id such as em_..., sub_..., tag_...). |
buttondown_get_automation_analyticsGet automation analyticsRead-onlyInspect
Performance numbers for one automation. GET /automations/{id}/analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| automation_id | Yes | The object's Buttondown id (a UUID or a prefixed id such as em_..., sub_..., tag_...). |
buttondown_get_emailGet emailRead-onlyInspect
One email by id with its full body, subject, status, publish date, slug, archive settings and analytics summary. GET /emails/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| email_id | Yes | The object's Buttondown id (a UUID or a prefixed id such as em_..., sub_..., tag_...). |
buttondown_get_email_analyticsGet email analyticsRead-onlyInspect
Delivery and engagement numbers for one sent email: recipients, deliveries, opens, clicks, failures, unsubscriptions, complaints, replies, page views. GET /emails/{id}/analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| email_id | Yes | The object's Buttondown id (a UUID or a prefixed id such as em_..., sub_..., tag_...). |
buttondown_get_newsletterGet newsletterRead-onlyInspect
One newsletter by id (settings and identity only; no API key, CSS or templates). GET /newsletters/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| newsletter_id | Yes | The object's Buttondown id (a UUID or a prefixed id such as em_..., sub_..., tag_...). |
buttondown_get_subscriberGet subscriberRead-onlyInspect
One subscriber by id or by e-mail address: type, tags, notes, metadata, source, engagement and lifecycle dates. GET /subscribers/{id_or_email}.
| Name | Required | Description | Default |
|---|---|---|---|
| id_or_email | Yes | The subscriber's id or e-mail address. |
buttondown_get_tag_analyticsGet tag analyticsRead-onlyInspect
Subscribers created, open rate and click rate for one tag. GET /tags/{id}/analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| tag_id | Yes | Tag id (see buttondown_list_tags). |
buttondown_list_automationsList automationsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. |
buttondown_list_emailsList emailsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| status | No | Only emails with these statuses (draft, scheduled, sent, ...). | |
| subject | No | Only emails whose subject contains this text. | |
| ordering | No | Sort order (default -creation_date). | |
| include_body | No | Include each email's full body (large). Default false. | |
| created_after | No | Only emails created on or after this date (yyyy-mm-dd). | |
| created_before | No | Only emails created before this date (yyyy-mm-dd). | |
| published_after | No | Only emails published on or after this date (yyyy-mm-dd). | |
| published_before | No | Only emails published before this date (yyyy-mm-dd). |
buttondown_list_eventsList email eventsRead-onlyInspect
List delivery events (delivered, opened, clicked, bounced, unsubscribed, ...), newest first, optionally for one email or subscriber. GET /events.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| email_id | No | Only events for this email. | |
| page_size | No | Results per page, 1-500 (default 100). | |
| event_type | No | Only events of this type. | |
| subscriber_id | No | Only events for this subscriber (id, not e-mail). |
buttondown_list_formsList formsRead-onlyInspect
List sign-up forms with title, slug, status, tags and subscriber counts. GET /forms.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. |
buttondown_list_newslettersList newslettersRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. |
buttondown_list_segmentsList segmentsRead-onlyInspect
List saved subscriber segments with name, description and filters. GET /segments.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. |
buttondown_list_snippetsList snippetsRead-onlyInspect
List reusable content snippets with identifier, name, mode and how often each is referenced. GET /snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. |
buttondown_list_subscribersList subscribersRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Only subscribers with these tag names. | |
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| type | No | Only subscribers of these types (e.g. regular, unactivated, unsubscribed). | |
| domain | No | Only subscribers whose e-mail domain is one of these. | |
| not_type | No | Exclude subscribers of these types. | |
| ordering | No | Sort field, - for descending (default -creation_date). | |
| created_after | No | Only subscribers created on or after this date (yyyy-mm-dd). | |
| email_address | No | Only subscribers whose e-mail address contains this text. | |
| created_before | No | Only subscribers created before this date (yyyy-mm-dd). |
buttondown_list_survey_responsesList survey responsesRead-onlyInspect
List survey responses (who answered what), optionally for one survey, email or subscriber. GET /survey_responses.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| email_id | No | Only responses submitted from this email. | |
| survey_id | No | Only responses to this survey. | |
| created_after | No | A date, yyyy-mm-dd. | |
| subscriber_id | No | Only responses by this subscriber (id, not e-mail). | |
| created_before | No | A date, yyyy-mm-dd. |
buttondown_list_surveysList surveysRead-onlyInspect
List surveys with question, answers, status and response count. GET /surveys.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. | |
| status | No | Only surveys with this status. |
buttondown_list_tagsList tagsRead-onlyInspect
List subscriber tags with name, color, descriptions and whether subscribers can edit them. GET /tags.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. |
buttondown_list_webhooksList webhooksRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, from 1 (default 1). Pass the previous reply's next_page. |
buttondown_update_email_draftEdit an email draftDestructiveInspect
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | New body in Markdown (or HTML); replaces the whole body. | |
| slug | No | ||
| image | No | ||
| subject | No | ||
| email_id | Yes | The object's Buttondown id (a UUID or a prefixed id such as em_..., sub_..., tag_...). | |
| description | No | ||
| canonical_url | No |
buttondown_update_subscriberUpdate a subscriber's tags, notes or metadataDestructiveInspect
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Replace the private note with this text (empty string clears it). | |
| add_tags | No | Tag names to add. | |
| metadata | No | Replace the subscriber's metadata object with this one. | |
| id_or_email | Yes | The subscriber's id or e-mail address. | |
| remove_tags | No | Tag names to remove. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
25 tool updates
- First observed
buttondown_add_subscriber - First observed
buttondown_create_email_draft - First observed
buttondown_create_tag - First observed
buttondown_get_account - First observed
buttondown_get_automation - First observed
buttondown_get_automation_analytics - First observed
buttondown_get_email - First observed
buttondown_get_email_analytics - First observed
buttondown_get_newsletter - First observed
buttondown_get_subscriber - First observed
buttondown_get_tag_analytics - First observed
buttondown_list_automations - First observed
buttondown_list_emails - First observed
buttondown_list_events - First observed
buttondown_list_forms - First observed
buttondown_list_newsletters - First observed
buttondown_list_segments - First observed
buttondown_list_snippets - First observed
buttondown_list_subscribers - First observed
buttondown_list_survey_responses - First observed
buttondown_list_surveys - First observed
buttondown_list_tags - First observed
buttondown_list_webhooks - First observed
buttondown_update_email_draft - First observed
buttondown_update_subscriber
Related MCP Connectors
- beehiivOAuthcom.beehiiv
Manage beehiiv newsletters, posts, podcasts, community, subscribers, and analytics.
11 Read subscribers, groups, campaigns, fields, segments, automations, webhooks; safe additive writes.
Read audiences, members, campaigns and reports; add, update, tag and archive subscribers.
Read MagicBell broadcasts, users, events, workflows and channels; create and update user records.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables interaction with the Buttondown newsletter API for managing emails, subscribers, and tags.1533 npm1MIT
- AlicenseAqualityDmaintenanceEnables AI and LLM systems to interact with the Buttondown newsletter service, supporting email drafting, scheduling, analytics retrieval, and list management through a Model Context Protocol interface.41MIT
- AlicenseAqualityAmaintenanceEnables LLM clients to interact with Substack's API for automations like creating posts and managing drafts.27434 npm82MIT
- AlicenseNot gradedqualityCmaintenanceEnables managing Substack publications: publish Notes and posts, manage drafts, pull analytics, and read any publication's public feed via MCP.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.