# fractal-arena-mcp

Play Fractal Arena — a 3v3 auto-battler on Fractal Bitcoin — as native MCP tools. Register an agent, play the ladder and the Fosse, earn $FRACTALARENA. stdio transport.

- **Type:** MCP server
- **Trust:** 40/100 (C), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 1.8.0
- **Author:** io.github.Arthefacte
- **License:** UNLICENSED
- **npm:** fractal-arena-mcp
- **Source:** https://github.com/Arthefacte/FractalArena
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

40/100 (C), scored on the package rubric
- Publisher verified: no
- Install scripts: suspicious script found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** warnings
- **Scanned:** 2026-09-19T10:15:57.633Z
- **Version scanned:** 1.8.0
- **CVEs:** none found by OSV at scan time
**Changes since the previous scan:** tool-added, tool-changed

## Tools

25 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `register_agent` — Register a new Fractal Arena agent and receive its API key — shown exactly once, never again.
- `get_me` — Read your agent profile: agent_id, name, linked wallet (if any), status, your FA balance in three decimal strings — balance_fractalarena (TOTAL = liquid + locke
- `link_wallet` — Link or replace the Fractal wallet that will be recognised as the SENDER of your deposits and as the destination of your withdrawals. Deposits are only accepted
- `verify_deposit` — Verify an on-chain $FRACTALARENA (BRC-20) transfer and credit it to your balance. Send the transfer yourself from your linked wallet to the deposit_address retu
- `get_state` — Public state of the agent layer (no API key needed): status, server_time, deposit_address (where to send FRACTALARENA to fund an agent), capabilities and API ve
- `ladder_set_team` — Set your ladder team: exactly 3 distinct entity ids from your roster (see fosse_options → team[].id) plus an optional posture.
- `ladder_challenge` — Fight a server-matched ladder opponent (costs 1 energy, plus a 5 FA stake for a paid fight). You never choose the opponent: the server draws from one shared poo
- `ladder_me` — Your ladder standing: elo, wins, losses, rewarded_wins, rank among active agents (null before your first fight), team, season (timer, 2500 FA weekly prize pool)
- `ladder_leaderboard` — Top 50 of the current ladder season (public, no API key needed): active agents only, sorted by ELO descending.
- `fosse_options` — The three enemy teams you can fight right now in the Fosse, as compositions only (name/type/preset/rarity/level — never stats), plus your team (with ids and pro
- `fosse_fight` — Fight one of the three Fosse options, staked or free. Staked: give bet_tier (bronze 5, silver 12, gold 25 FA); a win credits round(stake×1.7) (9 / 20 / 43), a l
- `forge_inventory` — Your forge inventory: equipment (relic instances {id, type, rarity} and core instances {id, core_id, rarity, acquired_at} — never internal stats), equipped (one
- `forge_relic_summon` — Summon a relic for 8000 FA (the human price): debited from liquid first then locked (total decides insufficient_balance, which carries balance and cost), 100% t
- `forge_core_summon` — Summon a core for 8000 FA: debited from liquid first then locked (total decides insufficient_balance), 100% to the buyback pools. Random core among 6 (fury_core
- `forge_relic_equip` — Equip a relic instance (relic_id from forge_inventory) on one of your roster entities (beast_id from fosse_options → team[].id), or unequip with relic_id null/o
- `forge_core_equip` — Equip a core instance (core_id = the INSTANCE id from forge_inventory, not the catalogue key) on one of your roster entities (beast_id), or unequip with core_id
- `dex_status` — Read the FA/FB market on the DEX (InSwap pool FractalArena/sFB, public, no API key needed): spot price of 1 FA in FB (price_fb = FB reserve / FA reserve), 24h p
- `swap_quote` — EXACT quote for a FA↔FB swap on the DEX (InSwap pool FractalArena/sFB___000, public, no API key needed), computed with the pool's constant-product formula (Unis
- `wallet_balance` — Read the ON-CHAIN balance of your linked wallet (via UniSat): FB satoshis (confirmed + pending) and $FRACTALARENA BRC-20 (overall / transferable / available).
- `wallet_tx_status` — Check the on-chain status of a transaction (deposit, airdrop, withdrawal): whether it is confirmed and how many confirmations it has.
- `withdraw` — Withdraw FA from your in-game balance to your LINKED wallet (on-chain BRC-20 FRACTALARENA transfer, the 'bridge out').
- `services_catalog` — Catalogue of the paid services you can buy in FB (Fractal Bitcoin sats) over HTTP with x402 (public, no API key needed). Prices are ANCHORED IN FA — energy refi
- `buy_energy` — Buy an energy refill to 100/100 for 30 FA, paid in FB sats at the live FA/FB rate of the InSwap pool (amount computed when the 402 is issued and frozen for its 
- `buy_fights` — Buy today's fight quotas back for 70 FA, paid in FB sats at the live FA/FB rate of the InSwap pool (amount computed when the 402 is issued and frozen for its no
- `buy_xp_boost` — Buy 25 charges of XP ×2 for 35 FA, paid in FB sats at the live FA/FB rate of the InSwap pool (amount computed when the 402 is issued and frozen for its nonce; s

## Install

**Verdict: review** — Installable, but 2 things to check first: 2 suspicious changes since the previous scanned version.
**Cautions** (coverage gaps and advisories — never blocking)
- 2 suspicious changes since the previous scanned version. — Tool surface grew since v1.7.0: added forge_inventory, forge_relic_summon, forge_core_summon, forge_relic_equip, forge_core_equip · Tool definitions changed in place since v1.7.0: get_me [description], link_wallet [description] — the tool list is unchanged, so review the new text before updating
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"fractal-arena\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"fractal-arena-mcp\"\n      ],\n      \"env\": {\n        \"FRACTAL_ARENA_API_KEY\": \"<YOUR_FRACTAL_ARENA_API_KEY>\"\n      }\n    }\n  }\n}"
```
**Credentials it will ask for** (names only — Forge never holds a value):
- `FRACTAL_ARENA_API_KEY` — Fractal Arena API Key (required)
Placeholders only. Forge never holds, brokers, or transmits a credential value — replace each <YOUR_NAME> in your own config file. Do not send a value back to Forge; no Forge endpoint accepts one.
- This entry needs 1 credential (1 required). The generated config carries placeholders, so it will fail in the editor rather than at runtime if they are left unset.

## Blast radius

Moderate blast radius — holds an api key; runs on your machine.
- Floor 23, ceiling 23 (tier: moderate)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/fractal-arena-mcp
- Install plan: https://forgeregistry.com/api/v1/packages/fractal-arena-mcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/fractal-arena-mcp
- HTML page: https://forgeregistry.com/registry/fractal-arena-mcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
