buymeacoffee-mcp
Summary: A read-only MCP server (over stdio) that lets an AI assistant read your own Buy Me a Coffee account: one-off supporters, Extras purchases, memberships, and support/Extras totals by currency.
list_supporters— lists recent one-off supports, newest first. Args:limit(1–100, default 20),since(ISO date or timestamp with timezone),include_emails(default false),max_pages(1–20, default 5).list_extra_purchases— lists recent Extras purchases with the same arguments and behavior.list_subscriptions— returns membership records as supplied by the API, or an empty result with a message. Args:include_emails(default false),max_pages(1–20, default 5).summary— totals one-off supports and Extras per currency over a recent window. Args:days(1–365, default 30),max_pages(1–20, default 10 per schema; README states 20).Partial vs. error on page caps —
list_supporters/list_extra_purchasesreturn what they found and sethas_more;list_subscriptions/summaryreturn an error naming the cap rather than a partial list or short total.Counts and exclusions — summary excludes refunded supports and revoked purchases;
supports.countincludes free supports, andsupports.free_count(amount zero, non-refunded, in-window) can be subtracted for the paid count;early_stop/pages_fetchedreport walk behavior.Privacy controls — emails are redacted by default as
j***@example.com, including emails in notes and nested records; full addresses only withinclude_emails: true.Read-only and self-contained — no writes, files, logs, or telemetry; token comes only from the
BMAC_TOKENenv var and is sent only todevelopers.buymeacoffee.com; requests are spaced at least one second apart; contacts no other host.Install/integration — run via
npx -y buymeacoffee-mcp(Node 20+) in Claude Desktop, Claude Code, Cursor, or Codex CLI.Failure modes to expect — HTTP 403/error 1010 (client-fingerprint block) or HTTP 429 (throttling); the server sends a browser-like User-Agent.
Provides read-only access to a Buy Me a Coffee creator account, allowing retrieval of recent supporters, Extras purchases, memberships, and support totals by currency.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@buymeacoffee-mcp Show my recent supporters and total earnings from the last 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
buymeacoffee-mcp
Read your own Buy Me a Coffee account from an AI assistant. This MCP server runs over stdio and uses the official read-only API.
See recent supporters, Extras purchases, memberships, and totals by currency. This project is independent and not affiliated with Buy Me a Coffee. Buy Me a Coffee is a trademark of its owner.
Tools
Tool | What it returns | Arguments |
| Recent one-off supports, newest first |
|
| Recent Extras purchases |
|
| Membership records or an empty result with a message |
|
| Supports and Extras totals by currency, with a separate free support count |
|
limit accepts 1 to 100. days accepts 1 to 365. since accepts an ISO date or a timestamp with a timezone. max_pages accepts 1 to 20 per endpoint. Requests are spaced at least one second apart, so a 20-page walk takes about 20 seconds. Missing normalized fields are null. Every argument also carries its own description in the tool schema, so your client can show you this detail inline.
The two list tools and the two counting tools behave differently when they run out of pages, and it is the difference worth knowing:
list_supportersandlist_extra_purchasesreturn what they found and sethas_more. A result is not the whole story untilhas_moreis false.list_subscriptionsandsummaryreturn an error instead, naming the cap. Neither will hand back a partial membership list or a total computed over part of the window, because a short total reads exactly like a real one.
since filters after the rows are fetched rather than at the API, so asking for more history than max_pages covers gives you a partial window, not an error.
Summary checks newest-first ordering within and across pages for each endpoint. It stops after a whole page falls before the window, provided no ordering break was seen. A final page with next_page_url: null always completes the walk. If ordering breaks, summary keeps walking and returns an error if the cap leaves pages unread. early_stop says whether older pages were skipped; pages_fetched counts all fetched pages across both endpoints. The API serves five rows per page.
Summary excludes refunded supports and revoked purchases. supports.count includes free supports. supports.free_count counts non-refunded, in-window supports with amount zero, including free downloads. Subtract it from supports.count for the paid support count. Currency totals are unchanged.
Related MCP server: bookmarks-mcp
Getting a token
Open the Buy Me a Coffee developer dashboard. Select Login and sign in with your creator account. In the developer dashboard, select "generate my token", give it a name, and select "generate". Copy the token into your client's BMAC_TOKEN setting.
Claude Desktop
Use node 20 or newer. Add this entry to your Claude Desktop MCP configuration:
{
"mcpServers": {
"buymeacoffee": {
"command": "npx",
"args": ["-y", "buymeacoffee-mcp"],
"env": { "BMAC_TOKEN": "..." }
}
}
}Restart Claude Desktop after saving.
Claude Code
claude mcp add buymeacoffee -e BMAC_TOKEN=... -- npx -y buymeacoffee-mcpReplace ... with your token.
Cursor
Add this to your Cursor MCP configuration:
{
"mcpServers": {
"buymeacoffee": {
"command": "npx",
"args": ["-y", "buymeacoffee-mcp"],
"env": { "BMAC_TOKEN": "..." }
}
}
}Codex CLI
codex mcp add buymeacoffee --env BMAC_TOKEN=... -- npx -y buymeacoffee-mcpReplace ... with your token.
Privacy
Emails are redacted by default as j***@example.com, including emails in notes and nested records. Set include_emails: true only when you need full addresses. This is data from the account owner's account and should be handled accordingly.
The server reads the token only from BMAC_TOKEN. It stays in the local process and is sent only to developers.buymeacoffee.com for authentication. The server contacts no other host, writes no files, and logs nothing. Tool results go to your assistant. There is no telemetry.
HTTP 403 and client fingerprints
The API can reject a client fingerprint with HTTP 403 and error code 1010. This may be a client-fingerprint block rather than a bad token. The server sends a browser-like User-Agent on every request. If a block persists, try again later. HTTP 429 means the API has throttled requests.
Development
pnpm install
pnpm build
pnpm test
pnpm dev
npm pack --dry-runTests use synthetic fixtures and a local HTTP server. The live test is skipped unless both BMAC_LIVE=1 and BMAC_TOKEN are set. It uses your real account and makes three read-only requests. Never put a token in a tracked file.
scripts/probe-shape.mjs prints the API response shape without values, for verifying against a real account.
The API documentation is marked unmaintained. Field mappings, date assumptions, and page-cap behavior are recorded in NOTES.md in the repository.
Licence
MIT. Copyright 2026 Mathieu Kessler. See LICENSE.
Available Tools
4 toolslist_extra_purchasesARead-onlyIdempotent
List recent Extras purchases with emails redacted by default. Full emails belong to the account owner and should be handled accordingly when include_emails is true.
Inputs: limit, since, max_pages, include_emails.
list_subscriptionsARead-onlyIdempotent
Read memberships as supplied by the API, with emails redacted by default. Full emails belong to the account owner and should be handled accordingly when include_emails is true.
Inputs: max_pages, include_emails.
list_supportersARead-onlyIdempotent
List recent one-off supporters, newest first, with emails redacted by default. Full emails belong to the account owner and should be handled accordingly when include_emails is true.
Inputs: limit, since, max_pages, include_emails.
summaryARead-onlyIdempotent
Total one-off supports and Extras by currency over a recent window, excluding refunds and revoked purchases. Returns an error if the page cap prevents a complete summary.
Inputs: days, max_pages.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool targets a clearly distinct resource: one-off supporters, extras purchases, subscriptions, and aggregated totals. There is no meaningful overlap between the three list tools, and summary is obviously the rollup.
The three list tools follow the predictable list_<resource> pattern, and summary breaks the pattern but is semantically clear as an aggregate operation. Minor deviation but overall coherent.
Four tools is a well-scoped read-only surface for a Buy Me a Coffee integration. Each tool covers a distinct aspect of supporter data without unnecessary bloat or omissions.
The tool set covers the main read-only needs: listing supporter transactions, memberships, and getting a summary. A minor gap is the lack of a way to fetch a single supporter or pagination controls, but the core domain is adequately represented.
Related MCP Connectors
Read members, one-time supporters and Extras purchases in Buy Me a Coffee.
Patreon MCP server for ChatGPT, Claude and any AI agent: create post, send message to patron, list members, update tier, schedule post and export earnings in your own Patreon account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Patreon yourself; Cotlet does not store your password and you need no Patreon API key. About the official Patreon API: Patreon has a public API v2, but it reads campaigns, members and posts and cannot create posts, message members or edit tiers (checked 11 Oct 2026). Its only write endpoints are for livestreams and webhooks. Setup and FAQ: https://cotlet.dev/integrations/patreon-api-mcp-server
Remote MCP server for AI.TV creators — delegate account operations to your AI agent over MCP.
Read-only finance MCP server. Connects your banks, cards, payment apps, books and payroll into one ledger for your AI. Can't move money. Open source (AGPL-3.0), free during beta.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceSelf-hosted MCP server that lets AI assistants read your own YouTube channel's stats, recent uploads, and upload schedule via the YouTube Data API v3, using read-only OAuth.MIT
- AlicenseAqualityCmaintenanceA local, read-only MCP server that makes bookmarks from browsers, read-later apps, and export files accessible to AI assistants, enabling search, triage, and summarization without sending data anywhere.870 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to connect to your YNAB account and read budget data, including accounts, categories, payees, and transactions, through a hosted MCP server.28 npm3MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to retrieve a personal biography, skills, projects, and contact links through a read-only MCP server.-