# Buttondown MCP

> Buttondown lets you manage your entire newsletter and subscriber base directly from any AI agent. You can draft new emails, update subscriber tags, pull lists of contacts, and even set up webhooks—all using natural conversation. It's the single connection point for all your audience growth tasks.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** newsletter, subscribers, email-campaigns, audience-management, content-creation

## Description

Think of this MCP as giving your AI client a direct line into your entire email marketing system. You no longer have to switch tabs or jump between different dashboards just to manage contacts. Instead, you talk to your agent and tell it exactly what you need done—whether that's listing every subscriber who hasn't opened an email in three months, or drafting a new campaign based on specific tags.

It handles the heavy lifting: creating records for brand-new subscribers, adjusting existing ones, and even building out complex webhooks to talk to your other tools. Since it’s hosted on Vinkius, you connect once from any compatible client, giving your agent access to thousands of services—and Buttondown is just one of them. This means you keep everything in one place: conversationally managing your audience and content without ever leaving your writing environment.

## Tools

### create_email
Writes and saves a brand-new email draft within your Buttondown account.

### create_subscriber
Adds a completely new contact to your subscriber list.

### create_tag
Generates and saves a new organizational tag for later use on subscribers or campaigns.

### create_webhook
Sets up an automatic alert that triggers when specific Buttondown events occur.

### delete_subscriber
Permanently removes a subscriber record from your list.

### get_email
Retrieves the full details of a specific email draft or sent campaign.

### get_newsletter
Pulls all the published and scheduled data for one particular newsletter publication.

### get_subscriber
Fetches the full profile details for a single subscriber by their email address.

### list_emails
Provides a list of all emails, both drafts and previously sent ones.

### list_newsletters
Returns an overview and list of every newsletter you've created or scheduled.

### list_subscribers
Generates a complete, actionable list of all contacts currently in your system.

### list_tags
Shows you every tag name that is currently available for use on your audience.

### list_webhooks
Lists all active webhooks and their current configurations.

### update_subscriber
Modifies existing contact data, like changing a tag or adding new metadata.

## Prompt Examples

**Prompt:** 
```
List my most recent subscribers on Buttondown.
```

**Response:** 
```
I've retrieved your subscriber list. You have 150 total subscribers. The most recent additions include 'alice@example.com' and 'bob@work.com'.
```

**Prompt:** 
```
Create a new email draft with the subject 'Monthly Newsletter' and a simple greeting in the body.
```

**Response:** 
```
Draft created successfully! The email 'Monthly Newsletter' is now saved in your Buttondown account with the ID 'em_12345'.
```

**Prompt:** 
```
Get the details for subscriber ID 'sub_98765'.
```

**Response:** 
```
Subscriber found: 'charlie@provider.net'. They are currently active, have the tags ['premium', 'weekly'], and joined on 2023-10-12.
```

## Capabilities

### Manage all subscriber records
You can list, create, update, or delete individual subscribers by their email address.

### Draft and schedule emails
The tool lets you write new email campaigns and set specific dates for them to go live.

### Organize contacts using tags
You can create, list, and assign descriptive tags to subscribers so your audience is properly segmented.

### Retrieve campaign details
The MCP lets you get specific data about past or scheduled newsletters and email drafts.

### Automate external connections
You can manage webhooks to trigger Buttondown events in your internal tools or other services.

## Use Cases

### Cleaning up stale contacts
A marketer needs to wipe out subscribers who haven't engaged in a year. They ask their agent to 'List all subscribers who have no activity since 2023.' The agent calls `list_subscribers` and filters the results, allowing the user to then delete them using the appropriate tool.

### Launching a new product line
A team needs to launch an email sequence for premium users. They tell their AI client, 'Create a new tag called Premium Launch' and assign it to all current subscribers.' The agent handles both the `create_tag` and multiple `update_subscriber` calls instantly.

### Revising old content
A copywriter finds an old newsletter (`get_newsletter`) that needs a major update. They ask their agent to fetch its details, then draft new copy using the `create_email` tool with updated information.

### Connecting internal systems
The developer wants to notify an internal database every time someone signs up. Instead of writing complex API code, they use the agent to set up a new webhook (`create_webhook`) that points to their endpoint.

## Benefits

- Avoid manual data dumps. Instead of exporting a CSV just to find out who hasn't opened an email, you ask your agent to list subscribers and filter by activity.
- Keep content flowing without context switching. Draft emails or schedule entire newsletters using the `create_email` tool directly within your AI chat, keeping your focus on writing.
- Improve segmentation accuracy. You can use the agent to create new tags and then update thousands of records at once via `update_subscriber`, making targeting precise.
- Simplify troubleshooting. Need to know why a workflow broke? Use `list_webhooks` to check all existing connections without logging into another service.
- Maintain an accurate history. Quickly get the details for any past campaign using `get_newsletter` or `get_email` instead of searching through archives.

## How It Works

The bottom line is that you talk to your AI client like talking to a coworker who already knows how to use Buttondown.

1. First, subscribe to this MCP and provide your unique Buttondown API key.
2. Next, you use a simple prompt with any AI client, telling it the task (e.g., 'List all subscribers tagged as VIP').
3. Finally, your agent calls the necessary tools, retrieves the requested data, and presents it back to you in plain text.

## Frequently Asked Questions

**How do I use create_subscriber with Buttondown?**
You ask the agent to 'Create a new subscriber for john@example.com.' The MCP handles the API call, adding them directly to your list without you touching any web UI.

**Can I update_subscriber tags in bulk?**
Yes. You can instruct the agent to run an `update_subscriber` tool command on a specific group of users or apply a tag across multiple contacts at once.

**What is list_webhooks used for?**
The `list_webhooks` tool shows you every connection point. You can use this to verify that your external systems are correctly receiving data when an event happens in Buttondown.

**Does get_subscriber give me all metadata?**
Yes, the `get_subscriber` function retrieves a full profile of the person. You'll see their activity history and all assigned tags right there.

**Before I use tools like `list_subscribers` or `get_newsletter`, how do I ensure my authentication is set up correctly?**
Authentication requires your Buttondown API Key. Make sure this key has the necessary read and write permissions for all functions you plan to run. If the credentials are wrong, the agent will immediately fail with an authorization error.

**If I use `list_emails` or `list_tags` repeatedly in a short timeframe, is there any rate limiting I need to worry about?**
Yes. The API enforces standard rate limits on bulk requests. If your agent hits this limit, it will fail until you wait for the reset period. You'll need to implement backoff logic into your calling workflow.

**When I use `create_email`, what are the absolute mandatory fields required for a successful draft creation?**
You must provide a subject line and body content. The API validates these two basic parameters; if either is missing, the call will fail immediately and return an error code detailing the specific parameter that's needed.

**What happens if I run `delete_subscriber` using a subscriber ID that doesn't exist in Buttondown?**
The system returns a clear 404 Not Found error. Your agent should be set up to catch this specific HTTP code, allowing it to log the failure and continue processing the rest of your list without crashing.

**Can I schedule a newsletter for a future date using the AI?**
Yes. When using the `create_email` tool, you can provide an ISO 8601 timestamp in the `publish_date` field to schedule your email for later.

**How do I add tags to a subscriber when creating them?**
You can use the `create_subscriber` tool and pass an array of strings in the `tags` parameter to categorize the new subscriber immediately.

**Is it possible to update the email address of an existing subscriber?**
Yes, use the `update_subscriber` tool with the subscriber's unique ID and provide the new email address in the `email` field.