Beehiiv MCP Server & CLI

A free, open source Beehiiv MCP server and CLI that lets Claude Code, Codex, Cursor and other AI agents draft posts, manage subscribers and segments, and read your stats.

Navid Moazzezby Navid Moazzez·Updated Oct 5, 2026·16 min read·
Your computer
  1. 1

    Add it with a single command in a terminal.

    Put your own API key in place of the example.

    claude mcp add beehiiv \
    -e BEEHIIV_API_KEY=YOUR_API_KEY \
    -- npx -y @thenavidm/beehiiv-mcp-cli@latest
  2. 2

    In Claude Code, type /mcp. Beehiiv should show as connected.

    /mcp

Needs Node 22 or newer and a Beehiiv API key. Make one in a minute.

It's free and open source. If it saves you time, star it on GitHub, so more people find it.

Rate this tool

This free Beehiiv MCP server and CLI gives your AI real access to your Beehiiv publications: posts, subscribers, lists, segments, automations, polls and referrals. It drafts and schedules posts, finds and updates subscribers, manages lists, segments and custom fields, reads post and poll results, and handles referral, tier and podcast settings.

It's one install with two ways in. Claude, Codex, Cursor or any other MCP app calls its 117 tools for you, and the same tools work as a CLI that agents like Claude Code, Codex and OpenCode run, or that you type yourself.

In this guide, I'll show you:

  • What the Beehiiv MCP server & CLI is, and what you can ask it
  • How to install it and check that it works
  • When to use the MCP server, and when the CLI
  • Every tool, and how to keep your account safe

Every tool on this page comes from the server itself, and every cost was measured in Claude Code.

key_takeaways.mdTL;DR

Key takeaways

It gives Claude, Codex, Cursor and any other MCP app 117 tools for Beehiiv: posts, subscribers, newsletter lists, segments, automations, polls, referrals, podcasts and webhooks.
A new post starts as a draft, and anything that can email people or change your audience waits for your approval.
Beehiiv's API works on every plan, though creating posts needs Pro or Enterprise, and webhooks need Lite or higher.
The same tools run as a CLI, which costs your AI nothing until it runs.

What is the Beehiiv MCP server & CLI?

The Beehiiv MCP server & CLI is a free, open source program that lets AI agents work in your Beehiiv publications for you, in two ways. The MCP server is what an AI app like Claude, Codex or Cursor connects to, through MCP (Model Context Protocol), the open standard AI apps use to call outside tools.

You ask in plain language. Your AI picks the right tool, and the server makes the call to Beehiiv's own API.

The CLI is the same program as commands. beehiiv-cli list-posts runs the same code your AI runs when you ask for your latest posts, whether an agent like Claude Code runs it or you do.

In an AI OS, the layer that connects your AI to your context, your data and your tools, a server like this is how your AI reaches Beehiiv. My guide to building an AI operating system names Beehiiv among the tools it reaches, and here's how I use AI myself.

What can you ask it?

Once it's set up, you ask the way you'd ask an assistant. These are real prompts it handles:

Try asking
Summarize my last five posts and how each one did.
Draft next week's issue from these notes, and leave it as a draft.
Find jane@example.com and show me their tags and custom fields.
How many subscribers are in my VIP segment?
Send me a test email of my latest draft.
What did readers answer in the poll on my last post?

The second one shows why this is useful. Your AI writes the whole issue into a draft in Beehiiv, and sending stays your call.

It works well next to my Threads MCP server and Bluesky MCP server, so your AI can share each issue on Threads and post it to Bluesky in the same chat. Every server I've made is on my MCP servers page.

For your newsletter, my free beehiiv money calculator and email subject line generator help too. Beehiiv's free plan is one of the places to start that I cover in how to start a blog.

How to install the Beehiiv MCP server

Pick your app in the box at the top of this page. Each one is a single command or a pasted block, and they all run through npx, so there's nothing to install first.

Windsurf, Zed and Cline take the same server, though they don't have a tab in the box yet. Follow the box's Cursor tab, and put its block here instead:

AppWhere the block goes
WindsurfIn the Cascade panel, open the Actions menu (…) and choose Open MCP config file, then paste the block.
ClineClick the MCP Servers icon in the Cline panel, open the Configure tab, click Configure MCP Servers, and paste the block.
ZedGo to Settings, then AI, then MCP Servers, and choose Add Server, then Add Local Server. Enter the block's command, arguments and variables, and Zed saves them under context_servers.
Before you start0/3

Watch out: Beehiiv shows a new API key only until you leave the page, and it may ask you to verify your identity with Stripe first. Copy the key before you go.

Set up your Beehiiv account

It takes a minute.

Create an API key0/5

A key limited to some publications answers 404 for the others, as if they didn't exist.

Beehiiv limits requests by plan:

PlanRequests a minute
Free30
Lite180
Pro500
Enterprise800

The server waits two seconds between requests by default, which suits the Free plan. On a bigger plan, set BEEHIIV_MIN_REQUEST_INTERVAL_MS lower.

If you build an app with Beehiiv's OAuth, save its tokens in a private JSON file and point BEEHIIV_TOKENS_FILE at it instead. The server refreshes the token in that file on its own.

Check that it works

Run the doctor with --network. It checks your settings, then reads the publications your key can see. It never sends email or changes a subscriber.

npx -y @thenavidm/beehiiv-mcp-cli doctor --network

When every line has a check mark, restart your app and ask it for your latest posts. A publication that answers 404 is outside the key's limits.

In Claude Code, /mcp also shows whether the Beehiiv server is connected. It's one of the Claude Code commands worth knowing.

Use the Beehiiv CLI

The CLI is the same 117 tools as commands. AI agents that run commands, like Claude Code, Codex and OpenCode, use it on their own, and you can type the same commands in a terminal or a script.

Every tool name becomes a command with dashes, so list_posts runs as beehiiv-cli list-posts.

npm install -g @thenavidm/beehiiv-mcp-cli
beehiiv-cli
beehiiv-cli list-publications --limit 5
beehiiv-cli list-posts --publication-id YOUR_PUBLICATION_ID --limit 5
beehiiv-cli get-subscription-by-email --publication-id YOUR_PUBLICATION_ID --email jane@example.com
beehiiv-cli send-post-test --publication-id YOUR_PUBLICATION_ID --post-id YOUR_POST_ID --confirm

The bare beehiiv-cli lists every command, beehiiv-cli which <words> finds the command for a task, and beehiiv-cli <command> --help shows what a command takes. Anything that changes a post, a subscriber or your settings, or sends an email, needs --confirm, the terminal's version of your approval.

beehiiv-cli install <app> adds the server to Claude Code, Codex, Claude Desktop, Cursor, VS Code or Gemini CLI, in each app's own format.

These are the flags you'll use most:

FlagWhat it does
--jsonPrints JSON
--compactPrints the JSON on one line
--select a,b.cKeeps only those fields, and a dotted path goes deeper
--agentMachine mode: compact JSON, no prompts, and it never confirms anything
--confirmLets a write that asks first go ahead
--dry-runShows what a write would do, without doing it

A script can branch on the exit code:

Exit codeWhat it means
0It worked
1Something unexpected went wrong
2The command was typed wrong, or a write needed --confirm
3It wasn't found
4Beehiiv rejected the credentials
5Beehiiv failed or couldn't be reached
7You hit a rate limit, so wait and try again
10Nothing is set up yet

MCP server or CLI: which one?

Both are the same program with the same 117 tools. The difference is when your AI pays for them, in the tokens it reads.

Every message, in an app that loads every tool
MCP server
138,000 tokens
CLI
Nothing
Every message, in Claude Code
MCP server
2,000 tokens
CLI
Nothing
When Beehiiv comes up
MCP server
Nothing more, or in Claude Code the tools it picks
CLI
1,400 tokens, once
20 messages with Beehiiv in one, every tool loaded
MCP server
2,760,000 tokens
CLI
1,400 tokens
Works in Claude Desktop's chat
MCP server
Yes
CLI
No, there's no terminal there
Works in a script, a cron job or CI
MCP server
No
CLI
Yes

An app that loads every tool up front sends the full list with every message, whether you mention Beehiiv or not. Claude Code doesn't by default: its tool search sends only the tool names and the server's instructions, and loads a tool's full definition when your AI reaches for it.

The CLI costs nothing until Beehiiv comes up. Then your agent reads its skill file once and runs the commands it needs. With the skill added, Claude Code also lists its one-line description with every message, about 70 tokens.

When the whole conversation is about Beehiiv, the gap closes. Then the MCP server is the better experience, because you ask in plain language and your AI never has to look up a command.

How to spend less

In Claude Code, leave tool search on, which it is unless you've set ENABLE_TOOL_SEARCH=false.

Turn the server off when you aren't working on your newsletter. In Claude Code that's the /mcp panel, and every AI app has its own switch. BEEHIIV_READ_ONLY=1 cuts it to the 70 reading tools.

Or install the CLI and connect the server later, on the days it earns its place. Every tool stays in reach, and the standing cost drops to nothing.

Every number here was measured on October 5, 2026 in Claude Code 2.1.286 with Claude Opus 5.5. It's the same one-line prompt with and without the server connected, once with tool search off so every tool loads, and once with Claude Code's default. The skill was measured the same way, and other apps and models count tokens a little differently.

Drafts, subscribers and automations

A new post is a draft unless you schedule it, and it takes a title plus either blocks or HTML, never both. Beehiiv answers right away with the post's ID and finishes building it in the background, so your AI reads the post again once Beehiiv says it's ready. HTML needs inline styles, because Beehiiv strips style tags.

send_post_test sends you a test email of a draft before anything goes to your readers.

Adding a subscription can do more than add a row. It can bring back someone who unsubscribed, send a welcome email, start automations or change their paid tier, depending on what you send. That's why every subscriber change asks first.

list_subscriptions and a few other lists can collect every page with --all-pages, up to 1,000 items by default and 10,000 at most.

Watch out: Webhooks need Beehiiv's Lite plan or higher. The server sets up the endpoint, and your own receiver checks each event with the signing secret from Beehiiv's dashboard.

Every Beehiiv tool

The tables below list all 117 tools, grouped by what they're for. Of these, 70 only read, and 47 change something in your Beehiiv workspace.

Posts, templates and polls

list_polls
What it does
Lists polls.
Kind
Reads
get_poll
What it does
Reads a poll.
Kind
Reads
polls_list_responses
What it does
Lists poll responses.
Kind
Reads
create_post
What it does
Creates a post, as a draft unless you schedule it.
Kind
Asks first
list_posts
What it does
Lists posts.
Kind
Reads
update_post
What it does
Updates a post.
Kind
Asks first
get_post
What it does
Reads a post.
Kind
Reads
delete_post
What it does
Deletes a post.
Kind
Asks first
get_post_aggregate_stats
What it does
Reads stats across all your posts.
Kind
Reads
send_post_test
What it does
Sends a test email of a post.
Kind
Asks first
preview_post
What it does
Makes a post preview URL.
Kind
Reads
list_post_templates
What it does
Lists your post templates.
Kind
Reads
create_post_template
What it does
Creates a post template.
Kind
Asks first
post_templates_workspace_index
What it does
Lists workspace post templates.
Kind
Reads
post_templates_workspace_create
What it does
Creates a workspace post template.
Kind
Asks first
post_templates_workspace_show
What it does
Reads a workspace post template.
Kind
Reads
get_post_template
What it does
Reads a post template.
Kind
Reads

Subscribers

create_bulk_subscription
What it does
Adds many subscribers in one request.
Kind
Asks first
list_bulk_subscription_updates
What it does
Lists your bulk subscription updates.
Kind
Reads
get_bulk_subscription_update
What it does
Reads one bulk subscription update.
Kind
Reads
replace_bulk_subscription_update
What it does
Changes many subscriptions at once.
Kind
Asks first
update_bulk_subscription_update
What it does
Changes some fields on many subscriptions at once.
Kind
Asks first
bulk_subscription_updates_put_status
What it does
Changes the status of many subscriptions at once.
Kind
Asks first
bulk_subscription_updates_patch_status
What it does
Changes the status of many subscriptions at once, field by field.
Kind
Asks first
create_subscription
What it does
Adds a subscriber, which can send a welcome email or start automations.
Kind
Asks first
list_subscriptions
What it does
Lists subscriptions.
Kind
Reads
list_complimentary_access
What it does
Lists complimentary access.
Kind
Reads
get_complimentary_access
What it does
Reads complimentary access.
Kind
Reads
get_subscription_by_email
What it does
Reads a subscription by email.
Kind
Reads
update_subscription_by_email
What it does
Updates a subscription by email.
Kind
Asks first
get_subscription
What it does
Reads a subscription by ID.
Kind
Reads
update_subscription
What it does
Updates a subscription by its ID.
Kind
Asks first
patch_subscription
What it does
Changes some fields of a subscription by its ID.
Kind
Asks first
delete_subscription
What it does
Deletes a subscription.
Kind
Asks first
add_tags
What it does
Adds tags to a subscription.
Kind
Asks first
remove_tag
What it does
Removes a subscription tag.
Kind
Asks first

Newsletter lists and segments

list_condition_sets
What it does
Lists condition sets.
Kind
Reads
get_condition_set
What it does
Reads a condition set.
Kind
Reads
list_newsletter_lists
What it does
Lists newsletter lists.
Kind
Reads
create_newsletter_list
What it does
Creates a newsletter list.
Kind
Asks first
get_newsletter_list
What it does
Reads a newsletter list.
Kind
Reads
update_newsletter_list
What it does
Updates a newsletter list.
Kind
Asks first
delete_newsletter_list
What it does
Deletes a newsletter list.
Kind
Asks first
create_newsletter_list_subscription
What it does
Creates a newsletter list subscription.
Kind
Asks first
list_newsletter_list_subscriptions
What it does
Lists newsletter list subscriptions.
Kind
Reads
get_newsletter_list_subscription
What it does
Reads a newsletter list subscription.
Kind
Reads
update_newsletter_list_subscription
What it does
Updates a newsletter list subscription.
Kind
Asks first
newsletter_list_subscriptions_update_by_subscription_id
What it does
Updates a newsletter list subscription by subscription ID.
Kind
Asks first
newsletter_list_subscriptions_create_import
What it does
Imports subscribers into a newsletter list.
Kind
Asks first
newsletter_list_subscriptions_get_import
What it does
Reads a newsletter list subscriber import.
Kind
Reads
create_segment
What it does
Creates a segment.
Kind
Asks first
list_segments
What it does
Lists segments.
Kind
Reads
get_segment
What it does
Reads a segment.
Kind
Reads
delete_segment
What it does
Deletes a segment.
Kind
Asks first
segments_recalculate
What it does
Recalculates a segment.
Kind
Asks first
get_segment_subscribers
What it does
Lists segment subscribers.
Kind
Reads
segments_expand_results
What it does
Lists segment subscriber IDs.
Kind
Reads

Automations

add_subscriber_to_automation
What it does
Starts a subscriber on an automation, which can email them.
Kind
Asks first
list_automation_journeys
What it does
Lists automation journeys.
Kind
Reads
get_automation_journey
What it does
Reads an automation journey.
Kind
Reads
list_automations
What it does
Lists automations.
Kind
Reads
get_automation
What it does
Reads an automation.
Kind
Reads
automations_list_emails
What it does
Lists automation emails.
Kind
Reads

Custom and publication fields

create_custom_field
What it does
Creates a custom field.
Kind
Asks first
list_custom_fields
What it does
Lists custom fields.
Kind
Reads
get_custom_field
What it does
Reads a custom field.
Kind
Reads
update_custom_field
What it does
Updates a custom field.
Kind
Asks first
patch_custom_field
What it does
Updates a custom field.
Kind
Asks first
delete_custom_field
What it does
Deletes a custom field.
Kind
Asks first
list_publication_fields
What it does
Lists publication fields.
Kind
Reads
create_publication_field
What it does
Creates a publication field.
Kind
Asks first
get_publication_field
What it does
Reads a publication field.
Kind
Reads
update_publication_field
What it does
Updates a publication field.
Kind
Asks first
publication_fields_values_index
What it does
Lists publication field values.
Kind
Reads
publication_fields_values_update
What it does
Assigns publication field values.
Kind
Asks first

Referrals, tiers, ads and engagement

list_ad_network_offers
What it does
Lists ad offers from Beehiiv's ad network.
Kind
Reads
create_ad_network_offer
What it does
Accepts an ad offer.
Kind
Asks first
ad_network_offers_advertisements
What it does
Reads ad offer advertisements.
Kind
Reads
list_ad_network_reports
What it does
Lists ad network reports.
Kind
Reads
ad_network_reports_summary
What it does
Reads an ad network report summary.
Kind
Reads
ad_network_reports_account_summary
What it does
Reads an account ad network report summary.
Kind
Reads
list_advertisement_opportunities
What it does
Lists advertising opportunities.
Kind
Reads
list_engagements
What it does
Lists engagement stats for a publication.
Kind
Reads
get_referral_program
What it does
Reads a referral program.
Kind
Reads
create_tier
What it does
Creates a tier.
Kind
Asks first
list_tiers
What it does
Lists tiers.
Kind
Reads
get_tier
What it does
Reads a tier.
Kind
Reads
replace_tier
What it does
Replaces a tier's details.
Kind
Asks first
update_tier
What it does
Updates a tier.
Kind
Asks first

Podcasts

podcasts_list_podcasts
What it does
Lists podcasts.
Kind
Reads
podcasts_get_podcast
What it does
Reads a podcast.
Kind
Reads
podcasts_get_private_feed
What it does
Reads a subscriber's private podcast feed.
Kind
Reads
podcasts_get_private_feed_by_email
What it does
Reads a subscriber's private podcast feed, by their email.
Kind
Reads
podcasts_send_private_feed_email
What it does
Emails a subscriber their private podcast feed.
Kind
Asks first
podcasts_send_private_feed_email_by_email
What it does
Emails a subscriber their private podcast feed, by their email.
Kind
Asks first
podcasts_list_episodes
What it does
Lists podcast episodes.
Kind
Reads
podcasts_get_episode
What it does
Reads a podcast episode.
Kind
Reads

Webhooks, exports and data deletion

create_data_deletion
What it does
Asks Beehiiv to delete someone's data across your workspace.
Kind
Asks first
list_data_deletion
What it does
Lists data deletion requests.
Kind
Reads
get_data_deletion
What it does
Reads a data deletion request.
Kind
Reads
list_exports
What it does
Lists subscription exports.
Kind
Reads
create_export
What it does
Creates a subscription export.
Kind
Asks first
get_export
What it does
Reads a subscription export.
Kind
Reads
create_webhook
What it does
Creates a webhook.
Kind
Asks first
list_webhooks
What it does
Lists webhooks.
Kind
Reads
get_webhook
What it does
Reads a webhook.
Kind
Reads
update_webhook
What it does
Updates a webhook.
Kind
Asks first
delete_webhook
What it does
Deletes a webhook.
Kind
Asks first

Publications, authors and your workspace

list_authors
What it does
Lists authors.
Kind
Reads
get_author
What it does
Reads an author.
Kind
Reads
identify_oauth_user
What it does
Reads the user an OAuth token belongs to.
Kind
Reads
list_publications
What it does
Lists publications.
Kind
Reads
get_publication
What it does
Reads a publication.
Kind
Reads
workspaces_identify
What it does
Reads the workspace your key belongs to.
Kind
Reads
workspaces_permissions
What it does
Reads workspace permissions.
Kind
Reads
workspaces_publications_by_subscription_email
What it does
Lists the publications an email address subscribes to.
Kind
Reads
list_accounts
What it does
Lists the accounts you've set up, without their keys.
Kind
Reads

Is the Beehiiv MCP server safe?

Email can't be unsent, and your list is your business. So 47 tools ask first: every change to a post, subscriber, list, segment, field, tier or webhook, every email, and every export or data deletion. They're the ones marked "Asks first" in the tool tables above.

Reading posts, stats and subscribers never asks, because it changes nothing.

When your AI calls one of them, the call needs a yes first. Where you use it decides who gives it:

  • Claude Code (2.1.246 and later) asks you before every call, in every one of its permission modes.
  • An app that can show forms asks you in a form.
  • Any other app takes your AI's confirm: true as the yes, so tell your AI to check with you first.
  • An agent with no person to ask needs BEEHIIV_CONFIRM=model, so its confirm: true counts in every app.
  • In a terminal, you add --confirm to the command.

If the answer is no, nothing reaches Beehiiv.

Make it read-only

Set BEEHIIV_READ_ONLY=1 and every tool that asks first disappears from the tool list, leaving 70 reading tools.

Keep a log of every write

Set BEEHIIV_AUDIT_LOG to a file path. The server writes one line per attempted write, allowed or blocked, with what it was about to do and who approved it.

Watch out: Replies, poll answers and subscriber fields are written by other people, and one can try to give your AI orders. Treat them as data, and use BEEHIIV_READ_ONLY=1 for an agent working on its own.

Your data

Your requests go straight to Beehiiv, with no server of ours in between and no tracking. Your key stays in your app's config or your shell, and OAuth tokens stay in your private tokens file.

Subscribers' emails and custom fields are personal data, so keep exports private.

To cut access, delete the key under Settings, then API, and remove the server from your app's config.

Connect more than one Beehiiv account

Set BEEHIIV_ACCOUNTS to a JSON list with a name and an API key or OAuth tokens file for each account, and BEEHIIV_DEFAULT_ACCOUNT to the one that acts when a tool names none. Every tool takes an optional account.

The account picks the key, and the publication ID picks the publication inside it, so one key can still reach several publications.

Beehiiv MCP server settings

Every setting is an environment variable, in your app's config or your shell.

BEEHIIV_API_KEY
Default
none
What it does
Holds your API key
BEEHIIV_ACCESS_TOKEN
Default
none
What it does
Holds an OAuth access token, instead
BEEHIIV_TOKENS_FILE
Default
none
What it does
Points at a private JSON file with your OAuth tokens, which the server refreshes
BEEHIIV_CLIENT_ID
Default
none
What it does
Holds your OAuth app's client ID, for refreshing
BEEHIIV_CLIENT_SECRET
Default
none
What it does
Holds your OAuth app's client secret, for refreshing
BEEHIIV_REFRESH_TOKEN
Default
none
What it does
Holds the OAuth refresh token
BEEHIIV_ACCOUNTS
Default
none
What it does
Lists several accounts, as JSON
BEEHIIV_DEFAULT_ACCOUNT
Default
the first one
What it does
Picks the account that acts when a tool names none
BEEHIIV_REQUEST_TIMEOUT_MS
Default
30000
What it does
Gives up on a Beehiiv request after this many milliseconds
BEEHIIV_MAX_RETRIES
Default
2
What it does
Retries a rate-limited read this many times, and never a write
BEEHIIV_MIN_REQUEST_INTERVAL_MS
Default
2000
What it does
Waits this many milliseconds between requests
BEEHIIV_READ_ONLY
Default
off
What it does
1 hides every tool that changes something
BEEHIIV_ALLOW_DESTRUCTIVE
Default
on
What it does
0 refuses the tools that ask first
BEEHIIV_AUDIT_LOG
Default
none
What it does
Names a file that gets one line per attempted write
BEEHIIV_SURFACE
Default
full
What it does
search lists three tools that find, describe and run the rest
BEEHIIV_TOOL_TIMEOUT_MS
Default
none
What it does
Gives up on any tool after this many milliseconds
BEEHIIV_CONFIRM
Default
human
What it does
model lets your AI's confirm: true approve on its own, for an agent with no person to ask
BEEHIIV_HTTP_PORT
Default
8787
What it does
Sets the port for --http
BEEHIIV_HTTP_HOST
Default
127.0.0.1
What it does
Sets the address for --http, and any other needs a token
BEEHIIV_HTTP_TOKEN
Default
none
What it does
Sets the bearer token every --http request needs
BEEHIIV_HTTP_ALLOWED_ORIGINS
Default
none
What it does
Lists other websites allowed to call --http, comma separated
BEEHIIV_DEBUG
Default
off
What it does
1 prints debug lines

Troubleshooting

Run the doctor first. It names the step that failed and the fix.

What you seeWhat to do
A publication answers 404It doesn't exist, or your key is limited to other publications
Creating a post is refusedIt needs the Pro or Enterprise plan, a title, and either blocks or HTML, not both
A new post says it's pendingBeehiiv is still building it. Wait as it says, then read it again, and don't create it twice
A 403 errorYour plan, the key's limits or your role doesn't allow that tool
A 429 errorYou're over your plan's requests a minute. Wait, and never resend a change you haven't checked
Only the first page came backAdd --all-pages where the tool offers it, which stops at 1,000 items unless you set more
"…so it will not run without confirm: true"That's the safety check working. Approve it when your app asks

If the server doesn't show up in your app at all, run the command your app runs, in a terminal, and read the error.

More free tools for your newsletter

Run your newsletter in Kit or Substack too, with the same kind of tools.

FAQs about the Beehiiv MCP server & CLI

Here are the questions people ask most about the Beehiiv MCP server and CLI.

The Beehiiv MCP server & CLI is a free, open source program that lets an AI app like Claude, Codex or Cursor work in your Beehiiv publications.

It has 117 tools for posts, subscribers, lists, segments, automations, polls, referrals and podcasts, and the same tools run as a CLI that agents like Claude Code and Codex use, or that you type yourself.

An MCP server is a standard way to give an AI app real access to a tool, so it can act instead of guessing.

MCP stands for Model Context Protocol, and Claude, Codex, Cursor and many other AI apps speak it.

Every server I've made is on my MCP servers page.

The Beehiiv CLI is the same program as the Beehiiv MCP server, run as commands.

AI agents like Claude Code, Codex and OpenCode run them for you, and you can type them in a terminal or a script.

One npm package installs both.

Use the Beehiiv MCP server in an AI app with no terminal, like Claude Desktop's chat, and the CLI in a terminal, a script or a cron job.

In an AI app that can run commands, like Claude Code, Codex or Cursor, the CLI is the lighter choice, because it costs nothing until it runs.

Yes, the Beehiiv MCP server is free and open source under the AGPL-3.0-or-later license.

Beehiiv's API works on every plan, though creating posts needs Pro or Enterprise.

Beehiiv's API works on every plan, with 30 requests a minute on Free.

Creating posts needs Pro or Enterprise, and webhooks need Lite or higher.

No, a new post is a draft unless you schedule it, and scheduling asks first.

You can send yourself a test email of the draft before anything goes out.

Yes, it can.

Depending on what you send, it can bring back someone who unsubscribed, send a welcome email or start automations, so it asks first.

Yes, when you create or edit a key in Beehiiv, you can limit it to certain publications.

The others answer 404, as if they didn't exist.

To disconnect the Beehiiv MCP server, delete its key under Settings, then API, which cuts access right away.

Then remove the server from your AI app's config.

The Beehiiv MCP server works with any app that speaks MCP.

That includes Claude Code, Claude Desktop, Codex, Cursor, VS Code, Windsurf, Zed, Cline, GitHub Copilot CLI, Gemini CLI, OpenCode, OpenClaw, Antigravity and Hermes.

I did.

I'm Navid Moazzez, and I made the Beehiiv MCP server & CLI as one of my free tools on navid.me.

You can read more about me.

The code is on GitHub under the AGPL-3.0-or-later license, and the package is on npm.

More MCP servers & CLIs

Related free tools

Navid Moazzez

AI business strategist

Navid Moazzez helps creators and founders master AI and build their own AI Operating System (AI OS) to automate their business and life.

Navid.me is reader-supported. When you buy through links on this site, I may earn an affiliate commission. Read the affiliate disclaimer.

Free AI newsletter

The most actionable AI newsletter for founders

Every week, get proven AI strategies, curated tools, and step-by-step systems to grow your audience, create better content, and build a profitable creator business.

No fluff, no filler, no BS. Just five minutes each week that might level up your online business and life.

P.S. Sign up now to get free access to my ultimate AI tools guide for creators.

Loved by 10,000+ readers
Loved by 10,000+ readers