mcpField
B
beesknees-mcp

beesknees-mcp

リモート
github.com/lonnievゲーム・エンタメ0今日更新
リポジトリ

beesknees-mcp について

beesknees-mcpは、ミツバチが女王を目指すマルチプレイヤー競争ゲームを提供するMCPサーバーです。戦略的な移動、Bitcoin Lightningでの支払い、花粉媒介者の保護への寄付を組み合わせています。

主な機能

  1. 01草地と巣のマスを競争
  2. 02飛行・掘削・封鎖のアクション
  3. 03巣が定員に達するとラウンド開始
  4. 04Lightningによる慈善団体と勝者への精算
  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` タグがこのツール名になっているもの)。

詳細

The Bee's Knees

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 マスの正方格子状の草地があり、 草地と巣を行き来できるのは壁にある扉だけです。蜂はどこからでも見える巣に向かって 草地を横切ります。巣の中では、リングがすべての蜂を 1 マスへと導きます。

移動は内側、外側、またはリングに沿った横方向です。迷路を単なる通路の集まりでは なくしているのは、横方向の移動です。ほかの蜂が開けた縦穴に滑り込んだり、崩落の 下から抜け出したりできます。蜂は内側へ 2 回連続で移動できません。間に横移動を 挟む必要があるため、まっすぐな放射状の穴は役に立たず、巣房の一部は通行できません。

唯一の本当の選択

自分で穴を掘る――時間がかかり、できた瞬間から誰でも通れます。 それとも、誰かが費用を払って掘った穴を使う――速いですが、相手に崩される可能性があります。

3 つの動きがこの選択を生みます。fly は開けた場所を移動します。dig は 新しい巣房を掘り、1 回ではなく複数回分のクールダウンを消費します。seal は 開いているマスを埋め戻し、後ろにいる蜂に掘り直させます。

蜂は時計で計測されるクールダウンごとに 1 回行動するため、どれだけ支出しても 蜂の速度は上がりません。支出で得られるのは妨害です。

なぜ巣は 1 つではなく 5 つなのか

12 匹ずつが入る巣を 5 つ用意し、いずれかの巣に 8 匹集まった時点で試合が始まります。 席は最も空いている巣に割り当てられるため、5 つの巣には均等に蜂が入ります。

これは好みではなく、データに基づいた判断です。よく似た 50 匹の蜂を 1 つの女王蜂へ 向かわせるレースは、くじ引きに近くなります。50 匹での一着争いは極値の抽選となり、 スキルよりもばらつきで決着するからです。sim/ のバッチランナーによると、 優れた戦略は 1 つの巣に 50 匹がいる場合、無作為な戦略の 1.4 倍の成績ですが、 12 匹の場合は 2.1 倍です。自分の巣で勝つかどうかはスキルに左右され、 5 人の首位のうち誰が最初にゴールするかは公平な抽選なので、優位性が保たれます。

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アドレスに1回の支払いで送金します。分配額は対局ごとに積み上がり、まとめて決済されます。1対局分の金額では、送金手数料を下回る場合があるためです。
  • beesknees_pay_out は、決済済みの対局1回分について、慈善団体または勝者への分配額を支払います。
  • 支払い前に、未払いの分配額はすべてデータベース上で請求済みとして記録されるため、再試行や2回目の操作で同じ対局分が二重に支払われることはありません。
  • beesknees_treasury は、ウォレットから送金できる金額と、支払うべき金額を表示します。
  • プレイヤーはラウンドの前に、勝った場合の扱いを指定します(beesknees_set_payout)。デフォルトは寄付です。賞金を受け取るには、Lightningアドレスが必要です。

beesknees_settlement_history は、決済済みの各対局で誰にいくら支払われたかを示し、beesknees_payout_history は失敗も含め、支払いを試みた履歴をすべて表示します。どちらも無料です。お金の行き先を確認するのに費用がかかるなら、その主張を信じるべきではないからです。

受益者はコードに埋め込まれず、保存されるため、変更できます。運営者は beesknees_set_charity で受益者の名前、ウェブサイト、Lightningアドレスを設定し、beesknees_charity で誰でも無料で確認できます。各決済には、実際に支払った受益者が記録されるため、現在の受益者が変わっても履歴の正確さは保たれます。お金の行き先を理由に参加した支援者は、その行き先をいつでも確認できます。

構成

パス内容
src/beesknees_mcp/geometry.pyボードです。純粋な算術処理のみで、ID管理も請求処理もありません
src/beesknees_mcp/server.py固定されたツールカタログと OperatorRuntime の初期化処理です
src/beesknees_mcp/board_store.pyNeonにある共有ボードと決済情報です
src/beesknees_mcp/payouts.pyLightning経由で慈善団体と勝者に分配額を送金します
scheduler-worker/毎分ハイブの進行を要求するCloudflare cron(beesknees_check_now、無料、シークレット不要)です
modal_app.pyシミュレーション用の蜂です。参加者が少ないハイブを始められるだけの、クーポンで資金提供された一般の蜂を配置します
frontend/src/game/同じルールをTypeScriptで実装した、クライアント側のエンジンです
frontend/src/lib/polar.tsセルとウェッジの相互変換、およびタップ位置の判定です
frontend/src/lib/stageMath.tsハイブを2回見たときの変化を計算します。WebGLボードの差分です
frontend/src/art/形状として描かれた蜂、デイジー、王冠です。ボード用の描画と、ページ用の<symbol>があります
frontend/src/stage/WebGL(PixiJS)で表示するフォーカス中のハイブです。動的インポート経由でのみ読み込まれます
sim/run.tsバッチ実行ツールです。これはゲームなのか、宝くじなのかを判定します

ルールは3か所に存在します。この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 アプリがあり、functions/mcp.js が同一オリジンの /mcp をプロキシして Cloudflare Pages にデプロイされます。ローカルエンジンを使ったソロモードで実行でき、1 人分の席を除くマッチ全体がボットで埋まるため、料金を支払う人がいなくてもインターフェースを試せます。

フォーカスされたハイブは、最初の描画を担う SVG の上に WebGL で描画されます。SVG は、サーバー側のスモークテストとプリレンダリングのチェックで確認されるもの、ブラウザーの最初のフレームに表示されるもの、WebGL が失われた際にゲームがフォールバックするものです。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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。