three.ws Coin Clash
io.github.nirholasPublished by GitHub account nirholasv0.1.3Updated Oct 24, 2026
Play three.ws Coin Clash — read the faction battle board and leaderboard, enlist, and rally.
Overview
A local MCP server that lets an assistant read the live three.ws Coin Clash faction battle board and leaderboard, and enlist or rally a Solana wallet for a side
- What you can do
- Read the live battle board: matchups, army power and momentum, round clock and tug-of-war share, and who is leading. Read all-time faction war records (wins, losses, draws, win rate, power) and a faction's top soldiers this round. Enlist a wallet by signing a challenge and proving an on-chain holding of the faction coin, receiving a war pass. Rally battle power for a faction by spending taps, either with a war pass or by auto-enlisting with a token in one call.
- When to use it
- Use it when you want an assistant to follow or take part in the three.ws Coin Clash community faction war: scouting the current round, checking standings, or enlisting and rallying a wallet that holds a faction coin. Reads alone are enough for tracking; writes need a funded holding.
- Requirements
- Node.js 20 or newer, run locally via npx or npm. Network access to the three.ws API, configurable with THREE_WS_BASE and THREE_WS_TIMEOUT_MS. Writes need a base58 Solana secret key for a wallet that holds the faction coin, supplied through SOLANA_SECRET_KEY, the CLASH_SOLANA_SECRET fallback, or a per-call secret argument.
Installation
In SourceWeft
- Open three.ws Coin Clash in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@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.
[npm] [license] [node] [MCP Registry] [three.ws]
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.
Install
Or run with npx (no install):
Quick start
Claude Code, one line:
Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):
Inspect the surface with the MCP Inspector:
Tools
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).
Input parameters
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.
How a battle works
- Scout.
get_clash_stateshows the current round: who's matched, each army's power, momentum, andmsLeft. - Enlist.
enlist_factionissues 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 awarPass. (No holding →eligible:false,reason:"not_a_holder".) - Rally.
rally_factionspendstaps(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 whilemsLeft > 0. - Win. When the round clock hits zero, the army with more power takes the battle and the result is written to each faction's all-time war record (
get_clash_leaderboard).
Example
Requirements
- Node.js >= 20.
- Network access to
https://three.ws(or your ownTHREE_WS_BASE). - For writes only: a base58 Solana secret whose wallet holds the faction coin it enlists for, via
SOLANA_SECRET_KEYor the per-callsecretarg.
Environment variables
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.
Errors
A failed tool call returns an MCP error result (isError: true) whose text is a single JSON object: { "ok": false, "error": "<code>", "message": "…" }, plus status on upstream rejections and detail where the failure carries context (e.g. which wallet was not a holder):
Links
- Homepage: https://three.ws
- Changelog: https://three.ws/changelog
- Issues: https://github.com/nirholas/three.ws/issues
- License: Apache-2.0, see LICENSE
Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub
Source: packages/clash-mcp/README.md at commit c8f2cde
Tools
0Version history
2- v0.1.3LatestOct 10, 2026
- v0.1.2Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts