mcpField
B
Buy Me a Coffee (read-only)

Buy Me a Coffee (read-only)

本地服务
github.com/mayeu20金融数据05 周前更新

关于 Buy Me a Coffee (read-only)

Buy Me a Coffee (read-only) 是读取创作者本人账户数据的 MCP 服务,面向希望通过 AI 助手查看支持者、Extras 购买、会员和汇总金额的用户。它使用官方只读 API,并默认遮盖邮箱。

主要功能

  1. 01列出近期支持记录
  2. 02查看 Extras 购买
  3. 03查看会员记录
  4. 04按币种汇总金额
  5. 05默认遮盖邮箱

适用场景

  1. 01查看近期的一次性支持
  2. 02检查 Extras 销售与会员情况
  3. 03汇总指定时间范围的支持金额

MCP 相关

这是一个通过 stdio 运行的 MCP 服务,将账户支持者、Extras 购买、会员记录和金额汇总作为工具提供给 AI 助手。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mayeu20-buymeacoffee": {
"command": "npx",
"args": [
"-y",
"buymeacoffee-mcp"
],
"env": {
"BMAC_TOKEN": "<BMAC_TOKEN>"
}
}
}
}
启动命令npx -y buymeacoffee-mcp
需要配置的环境变量
BMAC_TOKEN密钥Buy Me a Coffee personal access token (read-only API).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmbuymeacoffee-mcp0.1.2

工具

4

收录的工具列表 · 更新于 3 周前

参数类型必填说明
limitinteger否
sinceany否
max_pagesinteger否
include_emailsboolean否

详细介绍

buymeacoffee-mcp

通过 AI 助手读取你自己的 Buy Me a Coffee 账户。此 MCP 服务通过标准输入输出运行,并使用官方只读 API。

查看近期支持者、Extras 购买记录、会员信息以及按货币统计的总额。本项目独立开发,与 Buy Me a Coffee 无关。Buy Me a Coffee 是其所有者的商标。

工具

工具返回内容参数
list_supporters近期的一次性支持记录,按时间从新到旧排列limit(20)、since、include_emails(false)、max_pages(5)
list_extra_purchases近期的 Extras 购买记录limit(20)、since、include_emails(false)、max_pages(5)
list_subscriptions会员记录,或附带说明的空结果include_emails(false)、max_pages(5)
summary按货币统计的支持和 Extras 总额,以及单独统计的免费支持数量days(30)、max_pages(20)

limit 接受 1 到 100。days 接受 1 到 365。since 接受 ISO 日期或带时区的时间戳。每个端点的 max_pages 接受 1 到 20。请求之间至少间隔 1 秒,因此遍历 20 页大约需要 20 秒。缺失的标准化字段为 null。每个参数在工具架构中也有自己的说明,因此客户端可以直接向你展示这些详细信息。

两个列表工具和两个计数工具在达到页数上限时的处理方式不同,这一点值得了解:

  • list_supporters 和 list_extra_purchases 会返回已找到的内容,并设置 has_more。只有当 has_more 为 false 时,结果才是完整的。
  • list_subscriptions 和 summary 则会返回错误,并指出页数上限。两者都不会返回不完整的会员列表,也不会返回基于部分时间范围计算的总额,因为较小的总额看起来与真实总额完全一样。

since 会在获取行记录后进行筛选,而不是在 API 端筛选,因此,如果你请求的历史记录超出 max_pages 所覆盖的范围,就会得到不完整的时间范围,而不是错误。

对于每个端点,Summary 都会检查各页内及跨页的记录是否按从新到旧排列。如果整页记录都早于时间范围,且没有发现排序异常,就会停止。若最后一页的 next_page_url: null,则无论如何都会完成遍历。如果排序异常,summary 会继续遍历;如果达到上限时仍有页面未读取,则会返回错误。early_stop 表示是否跳过了较早的页面;pages_fetched 统计两个端点获取的所有页面数。API 每页返回 5 行记录。

Summary 不包括已退款的支持和已撤销的购买。supports.count 包括免费支持。supports.free_count 统计时间范围内未退款且金额为零的支持记录,包括免费下载。用 supports.count 减去该值即可得到付费支持数量。各货币的总额不变。

获取令牌

打开 Buy Me a Coffee 开发者控制面板。选择 Login,并使用创作者账户登录。在开发者控制面板中,选择 "generate my token",为令牌命名,然后选择 "generate"。将令牌复制到客户端的 BMAC_TOKEN 设置中。

Claude Desktop

使用 node 20 或更高版本。将以下条目添加到 Claude Desktop MCP 配置中:

{
  "mcpServers": {
    "buymeacoffee": {
      "command": "npx",
      "args": ["-y", "buymeacoffee-mcp"],
      "env": { "BMAC_TOKEN": "..." }
    }
  }
}

保存后重启 Claude Desktop。

Claude Code

claude mcp add buymeacoffee -e BMAC_TOKEN=... -- npx -y buymeacoffee-mcp

将 ... 替换为你的令牌。

Cursor

将以下内容添加到 Cursor MCP 配置中:

{
  "mcpServers": {
    "buymeacoffee": {
      "command": "npx",
      "args": ["-y", "buymeacoffee-mcp"],
      "env": { "BMAC_TOKEN": "..." }
    }
  }
}

Codex CLI

codex mcp add buymeacoffee --env BMAC_TOKEN=... -- npx -y buymeacoffee-mcp

将 ... 替换为你的令牌。

隐私

默认会将电子邮件地址隐藏为 j***@example.com,包括备注和嵌套记录中的电子邮件地址。只有在需要完整地址时才设置 include_emails: true。这些数据来自账户所有者的账户,应妥善处理。

服务仅从 BMAC_TOKEN 读取令牌。令牌会保留在本地进程中,仅发送至 developers.buymeacoffee.com 用于身份验证。服务不会连接其他主机,不会写入文件,也不会记录日志。工具结果会发送给你的助手。本服务不收集遥测数据。

HTTP 403 和客户端指纹

API 可能会拒绝某个客户端指纹,并返回 HTTP 403 和错误代码 1010。这可能是客户端指纹被拦截,而不是令牌无效。服务器会在每个请求中发送类似浏览器的 User-Agent。如果拦截持续存在,请稍后重试。HTTP 429 表示 API 已限制请求。

开发

pnpm install
pnpm build
pnpm test
pnpm dev
npm pack --dry-run

测试使用合成测试数据和本地 HTTP 服务器。只有在同时设置 BMAC_LIVE=1 和 BMAC_TOKEN 时,才会运行实时测试。测试会使用你的真实账户,并发出三个只读请求。切勿将令牌放入受版本控制的文件中。

scripts/probe-shape.mjs 会打印 API 响应结构(不包含值),以便对照真实账户进行验证。

API 文档已标记为不再维护。字段映射、日期假设和分页上限行为记录在仓库的 NOTES.md 中。

许可

MIT。版权所有 2026 Mathieu Kessler。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。