mcpField
B
beesknees-mcp

beesknees-mcp

远程服务
github.com/lonniev游戏娱乐0今天更新
代码仓库

关于 beesknees-mcp

beesknees-mcp 是一款 MCP 服务,提供多人竞赛游戏,让蜜蜂争先抵达蜂王。它结合策略移动、Bitcoin Lightning 付款,以及对传粉者保护的捐助。

主要功能

  1. 01在草地与蜂巢格子间竞赛
  2. 02提供飞行、挖掘和封堵动作
  3. 03蜂巢达到人数后开始回合
  4. 04通过 Lightning 结算慈善与获胜者款项
  5. 05免费查看结算和付款记录

适用场景

  1. 01开展设有付费席位的多人蜜蜂竞赛
  2. 02向慈善机构或获胜者支付已结算款项
  3. 03查看比赛结算和付款尝试记录

MCP 相关

向 MCP 客户端提供游戏、运营、定价、付款和历史记录工具。玩家可通过 MCP 接口参与竞赛并查询慈善机构信息。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://beesknees-mcp.fastmcp.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

71
参数类型必填说明
npubstring是要查询余额的 Nostr 公钥(npub1...)。
dpop_tokenstring是证明调用方持有 npub 的凭据:来自 receive_npub_proof 的授权信封,或由 npub 签名的 kind-27235 Nostr 事件原始 JSON,其中 `u` 标签的值为此工具的名称。

详细介绍

蜜蜂的拿手好戏

一场争夺蜂后的竞赛,通过 Tollbooth DPYC™ Bitcoin Lightning 微支付实现盈利,并将收益用于传粉者保护。

为一架无人机买个席位。让它飞到一朵花上,携带花粉穿过蜂巢墙带回蜂巢,然后向内挖掘。第一个抵达蜂后的蜜蜂赢得本轮比赛。本轮的大部分收入将用于传粉者保护;获胜者和运营方各分得一小部分。

你将构建什么

      YOU (operator, human in the loop)
        │                         │
        │ set & tune prices       │ drive credential intake
        ▼                         ▼
  ┌───────────────┐        ┌──────────────────────────────────────────────┐
  │ Pricing Studio│ prices │   The Bee's Knees — OPERATOR MCP              │
  │    (iOS)      ├───────▶│   FastMCP · deployed on Horizon               │
  └───────────────┘  Neon  │  ┌────────────────────────────────────────┐  │
                           │  │ geometry · board · match · settlement   │  │
   Patron (Citizen)        │  │ @runtime.paid_tool(FROZEN_UUID) tools   │  │
   + MCP client  ─────────▶│  ├────────────────────────────────────────┤  │
   (Claude, the SPA) npub  │  │ tollbooth-dpyc SDK (the wheel)          │  │
                    +sats  │  │  ledger · vault (AES-256-GCM) · pricing │  │
                           │  │  ConstraintGate · Secure Courier·audit  │  │
                           │  └────────────────────────────────────────┘  │
                           └───┬─────────┬──────────┬───────────┬─────────┘
                               ▼         ▼          ▼           ▼
                         Neon Postgres  BTCPay▶  Sponsor     Nostr relays
                         (your schema)  Lightning Authority   proofs·courier
                         ledger+board   invoices  certify +    DMs·audit
                                                  provision        │
                                                      │            ▼
                                                      └──▶ DPYC Oracle +
                                                            dpyc-community

棋盘

**蜂巢必须是圆形的,因为赛场需要逐渐收窄。**第 0 圈是蜂后的房间,第 14 圈是蜂巢墙。蜂巢格数随周长变化,因此外墙有 29 个格子,而房间前的最后一圈有 6 个。所有蜜蜂起初分散在各处,随后汇聚成一团——整个蜂巢共有 226 个巢房格。

蜂巢墙外是一片方格网草地,每边 16 格,扣除蜂巢占据的方格;蜂巢墙上的门是两者之间唯一的通道。蜜蜂可以从任何位置飞过草地,前往看得见的蜂巢;进入蜂巢后,环形通道会将每只蜜蜂引向一个格子。

移动方向可以是向内、向外,或沿环形通道横向移动。横向移动让这里成为迷宫,而非一组通道:你可以借此进入别人挖好的开放通道,或从坍塌处下方躲开。蜜蜂不能连续两次向内移动——中间必须横向移动一步——因此直线径向通道并无优势,而且部分巢房格无法通行。

唯一真正的选择

自己挖一条通道——速度慢,而且通道一旦挖好,所有人都能使用。 或者走别人花钱挖的通道——速度快,但他们也能把通道封塌,让你困在里面。

三种行动构成了这场竞赛。fly 可在开阔地带移动。dig 可挖出新的巢房,冷却时间要数个周期,而非一个。seal 会封住开放的格子,迫使后面的蜜蜂重新挖掘。

蜜蜂每次冷却结束后行动一次,冷却时间按时钟计,因此无论花多少钱,都无法让蜜蜂行动得更快。花钱能买到的是干扰他人。

为什么要有五个蜂巢,而不是一个

设置五个蜂巢,每个容纳十二只蜜蜂;任意蜂巢达到八只蜜蜂时,比赛便立即开始。席位会分配给最空的蜂巢,因此五个蜂巢会均匀填满。

这是经过测算的选择,而非个人偏好。让五十只几乎相同的蜜蜂争夺同一个蜂后,几乎就像抽签:五十只蜜蜂中第一个到达者是一次极值抽样,结果取决于运气,而非技巧。sim/ 中的批量运行器显示,在一个蜂巢中有五十只蜜蜂时,优秀策略的胜率是随机策略的 1.4 倍;有十二只蜜蜂时则是 2.1 倍。在自己的蜂巢中胜出更能体现技巧,而五位领先者中谁先抵达,则是公平的随机结果,因此技巧优势仍能体现出来。

node sim/run.ts --rounds 400 --bees 12    # re-measure before changing a rule

收入去向

本轮的大部分收入将用于传粉者保护。默认受益方是 Pollinator Partnership——我们有意选择它,而不是以蜜蜂为重点的慈善机构,因为养殖蜜蜂是家畜,并非面临困境的对象;真正面临困境的是本土和野生传粉者,而这正是 Pollinator Partnership 关注的对象。

资金如何流出

每场已结算的对局都会记录分配比例:80% 给慈善机构,获胜者和运营方各得 10%,舍入产生的差额归慈善机构。运营方通过 Lightning 支付各方所得;不会按定时器自动付款——只有运营方发起请求时,款项才会转出。

  • beesknees_pay_charity 会将欠慈善机构的全部款项一次性支付到其 Lightning 地址。份额逐场累积后批量结算,因为单场对局的份额可能低于路由手续费。
  • beesknees_pay_out 会支付一场已结算对局中慈善机构或获胜者的份额。
  • 每笔未支付的份额都会在转出 sats 前先在数据库中认领,因此重试或再次点击都不会重复支付同一场对局的款项。
  • beesknees_treasury 会显示钱包可支付的金额,以及欠款金额。
  • 玩家会在回合开始前说明获胜后如何处理奖金(beesknees_set_payout)。默认是捐赠;若要保留奖金,则需要提供 Lightning 地址。

beesknees_settlement_history 会显示每场已结算对局的付款金额和收款方;beesknees_payout_history 会列出每笔尝试过的付款,包括失败记录。两者都免费,因为要花钱才能核实资金去向的说法,不值得任何人相信。

受益方信息会存储起来,而不是编译进程序,因此可以更改:运营方通过 beesknees_set_charity 指定受益方名称、网站和 Lightning 地址;beesknees_charity 会免费向所有人展示这些信息。每笔结算都会记录实际收到付款的受益方,因此即使当前受益方发生变化,历史记录依然准确——因资金去向而来参与的支持者,总能查明资金去了哪里。

目录结构

路径内容
src/beesknees_mcp/geometry.py棋盘。纯算术运算,不涉及身份或计费
src/beesknees_mcp/server.py固定的工具目录 + OperatorRuntime 引导程序
src/beesknees_mcp/board_store.pyNeon 中的共享棋盘和结算记录
src/beesknees_mcp/payouts.py通过 Lightning 支付慈善机构和获胜者的份额
scheduler-worker/Cloudflare 定时任务,每分钟请求蜂巢推进一次(beesknees_check_now,免费,无密钥)
modal_app.py模拟蜜蜂:只安排足够数量的普通优惠券出资蜜蜂,以启动规模较小的蜂巢
frontend/src/game/TypeScript 中的相同规则——客户端的引擎
frontend/src/lib/polar.tsCell ⇄ 扇区,以及点击命中测试
frontend/src/lib/stageMath.ts两次查看蜂巢之间的变化——WebGL 棋盘的差异
frontend/src/art/作为形状绘制的蜜蜂、雏菊和皇冠——用于棋盘的绘图,以及用于页面的 <symbol>
frontend/src/stage/使用 WebGL(PixiJS)聚焦显示的蜂巢。仅通过动态导入加载
sim/run.ts批量运行器:这是游戏还是彩票?

规则有三份副本——这份 Python 代码、客户端的 TypeScript 代码,以及渲染器中的代码——运行时不会报告它们之间是否发生偏差;游戏只会开始拒绝玩家能看出合法的移动。tests/test_geometry.py 和 frontend/src/game/rules.test.ts 会有意验证相同的不变量,因此规则偏差会导致构建失败,而不是对局失败。

入门路线图

  1. Nostr 密钥对 — 生成一个密钥对(nak key generate);nsec 是服务唯一需要的环境变量(TOLLBOOTH_NOSTR_OPERATOR_NSEC)。
  2. Sponsor Authority — 注册;它会为你配置 Neon 数据库。
  3. Secure Courier — 通过 beesknees_request_credential_channel 传送 btcpay_host、btcpay_api_key、btcpay_store_id。绝不要将它们设为环境变量,也绝不要写入代码。
  4. 在 Pricing Studio 中设置价格 — 新工具默认没有定价,未定价的工具无法调用。
  5. 在 Horizon 上部署 — fastmcp.json 已配置好。

获取 Pricing Studio (iOS)。 它会实时读取和写入 Neon 中的定价模型,因此价格永远不会写在代码里——动态定价、欢乐时段、忠诚度折扣和免费试用,都是固定付费墙永远无法提供的功能。

应用

frontend/ 包含 Bee's Knees 应用,部署在 Cloudflare Pages 上,由 functions/mcp.js 代理同源的 /mcp。它通过本地引擎运行单人模式——整场对局由机器人填满,但只有一个席位——因此,在任何人付费之前就可以体验界面。

聚焦的蜂巢先通过 SVG 绘制首帧,再叠加 WebGL 绘制。服务器端的冒烟测试和预渲染检查看到的是 SVG;浏览器首帧显示的也是 SVG;如果 WebGL 丢失,游戏也会回退到 SVG。PixiJS 加载并完成绘制后,舞台便接管渲染。游戏逻辑并不在舞台中——舞台只负责渲染两个引擎已经计算出的内容。

开发

uv venv --python python3.12          # coincurve has no 3.14 wheel
uv pip install -e ".[dev]"
ruff check . && pytest -v
python -m beesknees_mcp.server       # runs the validate_operator_tools guard

cd frontend && npm install
npm run dev                          # solo mode on http://localhost:5180
npm test && npm run smoke            # invariants, then a real first paint (the SVG one)

许可证

Apache-2.0

评论

支持 Markdown

第一次接触 MCP?

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

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