
Buy Me a Coffee (read-only)
io.github.mayeu20由 GitHub 账号 mayeu20 发布v0.1.2更新于 Oct 24, 2026
Read your own Buy Me a Coffee supporters, Extras purchases, memberships and totals.
概览
只读 MCP 服务器,让助手查看你自己 Buy Me a Coffee 账号的支持者、Extras 购买、会员和汇总金额。
- 可以做什么
- 按时间倒序列出最近的一次性支持,可按日期筛选并分页。
- 列出最近的 Extras 购买记录,筛选与分页方式相同。
- 列出会员记录,或返回带说明的空结果。
- 按币种汇总指定时间窗口内的支持与 Extras 金额,并单独统计免费支持数量。
- 默认对支持者邮箱打码,除非明确要求返回完整地址。
- 适用场景
- 适合创作者让助手了解自己 Buy Me a Coffee 的收入与支持者情况,例如近期支持、Extras 销售、会员,或最近若干天、若干月的分币种汇总,而无需打开后台面板。
- 运行要求
- 通过 npx 以 stdio 在本地运行,需要 Node.js 20 或更高版本。需要在创作者开发者后台生成 Buy Me a Coffee 个人访问令牌,并通过环境变量 BMAC_TOKEN 提供。需要能访问 Buy Me a Coffee 开发者 API 的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Buy Me a Coffee (read-only),将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
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
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.
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:
Restart Claude Desktop after saving.
Claude Code
Replace ... with your token.
Cursor
Add this to your Cursor MCP configuration:
Codex CLI
Replace ... 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
Tests 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.
来源:README.md,提交 01239cc
工具
0版本历史
1- v0.1.2最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分