Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Play three.ws Coin Clash — read the faction battle board and leaderboard, enlist, and rally.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
THREE_WS_BASE, THREE_WS_TIMEOUT_MS, SOLANA_SECRET_KEY「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"clash": {
"command": "npx",
"args": [
"-y",
"@three-ws/clash-mcp"
],
"env": {
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value",
"SOLANA_SECRET_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add clash --env THREE_WS_BASE=your-value --env THREE_WS_TIMEOUT_MS=your-value --env SOLANA_SECRET_KEY=your-value -- npx -y @three-ws/clash-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"clash": {
"command": "npx",
"args": [
"-y",
"@three-ws/clash-mcp"
],
"env": {
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value",
"SOLANA_SECRET_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"clash": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/clash-mcp"
],
"env": {
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value",
"SOLANA_SECRET_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
THREE_WS_BASE envTHREE_WS_TIMEOUT_MS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント nirholas で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:SOLANA_SECRET_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.3)がレジストリに届いたのは27 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Whisper
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
One routable IPv6 per AI agent, verifiable from the DNS root. Keyless tools need no signup.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
@three-ws/clash-mcp
Play three.ws Coin Clash — the community faction war backed by real holdings + pump.fun data — from any AI agent. Read the live battle board, enlist your wallet, and rally power for a faction.
A Model Context Protocol server that puts Coin Clash — three.ws's community faction war — in reach of any AI agent over stdio. Every community is a faction, its holders are its army; two factions are matched each round, and whichever army rallies more power before the clock runs out wins. Read the live board and leaderboard, then enlist (prove you hold the coin) and rally for your side.
Reads are public — point THREE_WS_BASE at a deployment and go. Writes are wallet-scoped: enlisting signs a challenge with your Solana key and the backend confirms a live on-chain holding of the faction coin before issuing a war pass. Factions, members, and momentum come from CoinCommunities + pump.fun; rally power is persisted and ranked server-side. Nothing is mocked.
npm install @three-ws/clash-mcp
Or run with npx (no install):
npx @three-ws/clash-mcp
Claude Code, one line:
claude mcp add clash -- npx -y @three-ws/clash-mcp
Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):
{
"mcpServers": { "clash": { "command": "npx", "args": ["-y", "@three-ws/clash-mcp"], "env": { "SOLANA_SECRET_KEY": " " } } } }
Inspect the surface with the MCP Inspector:
npx -y @modelcontextprotocol/inspector npx @three-ws/clash-mcp
| Tool | Type | What it does |
|---|---|---|
get_clash_state | read-only | The live battle board: matchups, each army's power + momentum, the round clock, the tug-of-war share, who's leading. |
get_clash_leaderboard | read-only | All-time faction war records (W/L/D, win rate, power), optionally a single faction's top soldiers this round. |
enlist_faction | write | Prove the signer's wallet holds a faction coin (Solana-signed) and get a war pass. |
rally_faction | write | Spend taps as battle power for your faction — pass a war pass, or a token to auto-enlist and rally in one call. |
The reads return live data — power and standings move between calls, so neither is idempotent. The writes are wallet-scoped: no funds ever move (a war pass is a signed proof, not a transaction), so neither is destructive. enlist_faction is idempotent (re-enlisting mints an equivalent pass); rally_faction is not (each call appends power).
`get_clash_state` — none.
`get_clash_leaderboard` — faction (optional mint; also returns that faction's top soldiers this round).
`enlist_faction` — token (required faction mint), secret (optional base58 Solana secret; falls back to SOLANA_SECRET_KEY).
`rally_faction` — taps (required, 1–50), and either pass (a war pass from enlist_faction) or token (+ optional secret) to auto-enlist first.
get_clash_state shows the current round: who's matched, each army's power, momentum, and msLeft.enlist_faction issues a challenge bound to your wallet + faction, signs it with your Solana key, and the backend verifies the signature and a live on-chain holding of the coin. You get back a warPass. (No holding → eligible:false, reason:"not_a_holder".)rally_faction spends taps (1–50 per call) from the pass as battle power — multiplied by the faction's live momentum, capped per wallet per round. Call it repeatedly while 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 }
https://three.ws (or your own THREE_WS_BASE).SOLANA_SECRET_KEY or the per-call secret arg.| Variable | Required | Default | Notes |
|---|---|---|---|
THREE_WS_BASE | no | https://three.ws | API deployment to talk to. |
THREE_WS_TIMEOUT_MS | no | 20000 | Per-request timeout. |
SOLANA_SECRET_KEY | writes only | — | Base58 secret of the enlisting wallet. Per-call secret overrides it. Treat like cash. |
CLASH_SOLANA_SECRET | no | — | Fallback signer read when SOLANA_SECRET_KEY is unset, for hosts that scope env vars per server. Same format and the same care. |
The
secretis only ever used to sign the enlist challenge locally — a detached ed25519 signature over the challenge text. It never signs a transaction and no funds move. Still, it controls a wallet: prefer a per-callsecretor a dedicated env on a machine you trust.
A failed tool call returns an MCP error result (isError: true) whose text is a single JSON object: { "ok": false, "error": " ", "message": "…" }, plus status on upstream rejections and detail where the failure carries context (e.g. which wallet was not a holder):
error | Meaning | Recovery |
|---|---|---|
validation_error | Bad arguments: a missing faction token, or rally_faction called with neither a pass nor a token. | Fix the call. |
no_signer / invalid_secret | A write tool had no Solana key, or the key was not a base58 64-byte secret. | Pass secret or set SOLANA_SECRET_KEY. |
not_eligible | The auto-enlisting wallet does not hold the faction coin, so no pass was issued. detail carries wallet, faction, and reason. | Hold the coin, then retry. |
upstream_error | The API rejected the request. status carries the HTTP code; notable bodies include bad_challenge, bad_signature, pass_invalid (expired or foreign war pass), balance_unavailable (RPC could not read the holding), and cc_unconfigured (the deployment has no CoinCommunities config). | Act on the code; re-enlist on pass_invalid. |
timeout | No response within THREE_WS_TIMEOUT_MS. | Retry or raise the timeout. |
network_error | The request never reached the API (DNS, offline, TLS). | Check connectivity / THREE_WS_BASE. |
bad_config | THREE_WS_TIMEOUT_MS is not a positive number (thrown at startup). | Fix the env var. |
Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub