three.ws Coin Clash について
three.ws Coin Clash は、AI エージェントからコミュニティ阵営の対戦状況とリーダーボードを読み取れる MCP サーバーです。阵営のコインを保有するウォレットは Solana 署名で保有を証明し、自陣営の戦力を加算できます。阵営のメンバーや勢いのデータは CoinCommunities と pump.fun から取得されます。
主な機能
- 01対戦組み合わせ、戦力、勢いを表示するライブ対戦盤
- 02勝率を含む通算の阵営戦績
- 03オンチェーン保有に紐づく Solana 署名による加入
- 04呼び出しごとに消費する戦力ポイント(最大 50)
活用シーン
- 01現在のラウンドの戦況と残り時間の確認
- 02阵営の通算戦績と主要メンバーの確認
- 03保有ウォレットをエージェント経由で加入させ戦力を加算
MCP 対応
読み取り専用の get_clash_state と get_clash_leaderboard、書き込み用の enlist_faction と rally_faction をツールとして公開し、MCP クライアントが対戦データの取得と加入・戦力加算を行えるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @three-ws/clash-mcpTHREE_WS_BASEBase URL of the three.ws API that serves the Coin Clash endpoints. Override only when self-hosting or targeting a preview deployment.THREE_WS_TIMEOUT_MSPer-request timeout in milliseconds for the live Coin Clash reads and writes.SOLANA_SECRET_KEYシークレットBase58 Solana secret key for the enlisting wallet. Required only for the write tools (enlist_faction, rally_faction) — reads work without it. Per-call `secret` arguments override this. The wallet must hold the faction coin it enlists for. Treat like cash.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
@three-ws/clash-mcp
どのAIエージェントからでも、three.ws Coin Clash — 実際の保有状況とpump.funのデータに裏付けられた、コミュニティ参加型の勢力戦 — をプレイできます。リアルタイムのバトルボードを確認し、ウォレットを登録して、勢力に力を結集しましょう。
Model Context Protocol サーバーです。stdio経由で、three.wsのコミュニティ参加型勢力戦 Coin Clash をあらゆるAIエージェントから利用できます。各コミュニティが勢力となり、その保有者が軍隊となります。各ラウンドでは2つの勢力がマッチし、制限時間までにより多くの力を結集した軍隊が勝利します。リアルタイムのバトルボードとランキングを確認したら、登録(コインの保有を証明)して、陣営のために結集しましょう。
読み取りは公開されているため、THREE_WS_BASEをデプロイ先に指定するだけで利用できます。書き込みはウォレットごとに管理されます。登録時にはSolanaキーでチャレンジに署名し、バックエンドが勢力コインのオンチェーンでの保有をリアルタイムに確認してから、ウォーパスを発行します。勢力、メンバー、勢いのデータはCoinCommunitiesとpump.funに基づいています。結集した力はサーバー側に保存され、ランキングされます。モックデータは一切ありません。
インストール
npm install @three-ws/clash-mcp
インストールせずにnpxで実行することもできます。
npx @three-ws/clash-mcp
クイックスタート
Claude Codeなら、1行で設定できます。
claude mcp add clash -- npx -y @three-ws/clash-mcp
Claude Desktop / Cursorの場合(claude_desktop_config.jsonまたはmcp.json):
{
"mcpServers": {
"clash": {
"command": "npx",
"args": ["-y", "@three-ws/clash-mcp"],
"env": {
"SOLANA_SECRET_KEY": "<base58 secret of your enlisting wallet — only needed for writes>"
}
}
}
}
MCP Inspectorで利用可能な機能を確認します。
npx -y @modelcontextprotocol/inspector npx @three-ws/clash-mcp
ツール
| ツール | 種類 | 機能 |
|---|---|---|
get_clash_state | 読み取り専用 | リアルタイムのバトルボード:対戦カード、各軍の力と勢い、ラウンドの残り時間、勢力争いのシェア、優勢な陣営。 |
get_clash_leaderboard | 読み取り専用 | 勢力戦の全期間の記録(勝敗・引き分け、勝率、力)。任意で、指定した勢力の今ラウンドのトップ兵士も確認できます。 |
enlist_faction | 書き込み | 署名者のウォレットが勢力コインを保有していることを証明し(Solana署名)、ウォーパスを取得します。 |
rally_faction | 書き込み | タップを勢力の戦闘力として消費します。ウォーパスを渡すか、トークンを渡して登録と結集を1回の呼び出しで行います。 |
読み取りではリアルタイムのデータが返されます。呼び出しの間に力や順位が変化するため、どちらも冪等ではありません。書き込みはウォレットごとに管理され、資金が移動することはありません(ウォーパスは署名された証明であり、トランザクションではありません)。そのため、どちらも破壊的ではありません。enlist_factionは冪等です(再登録すると同等のウォーパスが発行されます)。rally_factionは冪等ではありません(呼び出すたびに力が加算されます)。
入力パラメーター
get_clash_state — なし。
get_clash_leaderboard — faction(任意のmint。指定すると、その勢力の今ラウンドのトップ兵士も返します)。
enlist_faction — token(必須の勢力mint)、secret(任意のbase58形式のSolanaシークレット。省略した場合はSOLANA_SECRET_KEYを使用します)。
rally_faction — taps(必須、1~50)、およびpass(enlist_factionで取得したウォーパス)、またはtoken(+任意のsecret。最初に自動登録します)。
バトルの仕組み
- 偵察。
get_clash_stateで現在のラウンドを確認できます。対戦中の陣営、各軍の戦力、勢い、msLeftが表示されます。 - 参戦。
enlist_factionはウォレットと陣営に紐づいたチャレンジを発行し、Solana キーで署名します。バックエンドは署名とコインのオンチェーン保有状況(リアルタイム)を検証します。成功するとwarPassが返されます。(コインを保有していない場合は、eligible:false、reason:"not_a_holder"が返されます。) - 結集。
rally_factionはパスからtaps(1 回の呼び出しにつき 1~50)を消費し、バトルの戦力にします。戦力は陣営のリアルタイムの勢いに応じて増幅され、ラウンドごとのウォレット上限が適用されます。msLeft > 0の間、繰り返し呼び出してください。 - 勝利。 ラウンドの残り時間がゼロになると、戦力の多い軍がバトルに勝利し、その結果が各陣営の通算戦績に記録されます(
get_clash_leaderboard)。
例
// get_clash_state
> {}
{
"ok": true,
"epoch": 486231,
"epochMs": 3600000,
"endsAt": 1750000000000,
"msLeft": 1843000,
"factionCount": 16,
"arena": [
{
"id": "486231:…",
// each side also carries image, posts, and priceUsd (elided here)
"a": { "token": "…", "symbol": "ALPHA", "members": 8200, "momentum": 1.31, "power": 940, "record": { "w": 12, "l": 4, "d": 1, "battles": 17, "power": 8100 } },
"b": { "token": "…", "symbol": "BETA", "members": 5100, "momentum": 1.12, "power": 610, "record": { "w": 7, "l": 9, "d": 0, "battles": 16, "power": 5400 } },
"aShare": 0.61,
"leader": "…ALPHA mint…"
}
],
"bye": null
}
// rally_faction — auto-enlist + rally in one call (wallet must hold the coin)
> { "token": "…faction mint…", "taps": 50 }
{
"ok": true,
"enlisted": { "wallet": "…", "amount": 1250000, "usd": 84.20 },
"epoch": 486231,
"mint": "…faction mint…",
"added": 66,
"momentum": 1.31,
"walletPower": 66,
"walletCap": 5000,
"capped": false,
"factionPower": 1005,
"msLeft": 1841000
}
必要条件
- Node.js >= 20。
https://three.ws(または独自のTHREE_WS_BASE)へのネットワークアクセス。- 書き込みを行う場合のみ:参戦する陣営のコインを保有しているウォレットの Base58 形式の Solana シークレット。
SOLANA_SECRET_KEYまたは呼び出しごとのsecret引数で指定します。
環境変数
| 変数 | 必須 | デフォルト | 備考 |
|---|---|---|---|
THREE_WS_BASE | いいえ | https://three.ws | 接続先の API デプロイ先です。 |
THREE_WS_TIMEOUT_MS | いいえ | 20000 | リクエストごとのタイムアウトです。 |
SOLANA_SECRET_KEY | 書き込み時のみ | — | 参戦するウォレットの Base58 形式のシークレットです。呼び出しごとの secret で上書きできます。現金と同様に慎重に扱ってください。 |
CLASH_SOLANA_SECRET | いいえ | — | SOLANA_SECRET_KEY が未設定の場合に読み込まれる代替署名者です。サーバーごとに環境変数のスコープを設定するホスト向けです。同じ形式で、同様の注意が必要です。 |
secretは参戦チャレンジへの署名(チャレンジテキストに対する分離された ed25519 署名)にのみローカルで使用されます。トランザクションへの署名には使用されず、資金も移動しません。それでもウォレットを操作できるため、信頼できるマシンで呼び出しごとにsecretを指定するか、専用の環境変数を使うことをおすすめします。
エラー
ツール呼び出しが失敗すると、MCP エラー結果(isError: true)が返されます。テキストは単一の JSON オブジェクト { "ok": false, "error": "<code>", "message": "…" } で、上流から拒否された場合は status が、失敗の詳細がある場合(保有者ではなかったウォレットなど)は detail が追加されます。
error | 意味 | 対処方法 |
|---|---|---|
validation_error | 引数が不正です。陣営の token が指定されていないか、rally_faction が pass と token のどちらも指定せずに呼び出されました。 | 呼び出しを修正してください。 |
no_signer / invalid_secret | 書き込みツールに Solana キーが指定されていないか、キーが Base58 形式の 64 バイトのシークレットではありません。 | secret を渡すか、SOLANA_SECRET_KEY を設定してください。 |
not_eligible | 自動で参戦するウォレットが陣営のコインを保有していないため、パスが発行されませんでした。detail には wallet、faction、reason が含まれます。 | コインを保有してから再試行してください。 |
upstream_error | API がリクエストを拒否しました。status には HTTP コードが含まれます。主な応答本文には、bad_challenge、bad_signature、pass_invalid(期限切れまたは別のウォーのパス)、balance_unavailable(RPC が保有状況を読み取れない)、cc_unconfigured(デプロイ先に CoinCommunities の設定がない)があります。 | コードに応じて対処してください。pass_invalid の場合は再度参戦してください。 |
timeout | THREE_WS_TIMEOUT_MS 内に応答がありませんでした。 | 再試行するか、タイムアウトを延長してください。 |
network_error | リクエストが API に到達しませんでした(DNS、オフライン、TLS)。 | 接続状況と THREE_WS_BASE を確認してください。 |
bad_config | THREE_WS_TIMEOUT_MS が正の数ではありません(起動時にスローされます)。 | 環境変数を修正してください。 |
リンク
- ホームページ:https://three.ws
- 変更履歴:https://three.ws/changelog
- 課題:https://github.com/nirholas/three.ws/issues
- ライセンス:Apache-2.0。詳細はLICENSEをご覧ください。
three.ws SDK スイートの一部です。3D AI エージェント、オンチェーン ID、エージェント決済を提供します。
ウェブサイト · 変更履歴 · GitHub
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。