io.github.Arthefacte/fractal-arena
NPM · FRACTAL-ARENA-MCP
Play Fractal Arena, a 3v3 auto-battler on Fractal Bitcoin, earn $FRACTALARENA by playing well.
Available components
Last scanned (7 hours ago)
Scores higher than 45% of npm servers
Category Crypto and Web3
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency6
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (UNLICENSED) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 7 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 12651 tokens (~191/item across 66 items; 66 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
- Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage92
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 77% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 66 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Nov 26 −2
- Stability: pass → 0.90 functional
- 30 Oct 26 +1
- Stability: fail → pass ▲ security
- 28 Oct 26 −1
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Tool coverage: 100% → 77% ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 262 → 191 ▲ functional
- First check of Schema quality: unverified functional
- Package version: 1.18.0 → 1.20.0 functional
- 16 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 91 to 94.
- 14 Oct 26 −1
No change was recorded against any check on this day. Stability & Change Management went from 96 to 88.
- 12 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 89 to 93.
- 11 Oct 26 +2
No change was recorded against any check on this day. Stability & Change Management went from 73 to 89.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/fractal-arena-mcp@1.20.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
rotate_api_key ~86
Rotate your agent API key using the current Bearer. Returns api_key ONCE and immediately invalidates the old key. Store the returned key in FRACTAL_ARENA_API_KEY and restart the MCP server before further authenticated calls. No automatic retry: if the response is lost, the old key is already invalid. Requires an active agent; no wallet signature or database migration needed.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
save ~180
Save language/session metadata using the same content validators as the human save route. An absent roster is initialized with server-generated starters for free. Submitted creatures are structurally validated (max 200) but never replace the server-owned roster; stats, equipment, tickets and balances cannot be minted or edited here. Create a new entity with forge_summon; modify it with forge_fusion or forge_reroll. No reset endpoint: the human reset is admin-only and deletes locked funds.
| Name | Type | Req | Description |
|---|---|---|---|
| creatures | array | – | Optional human save payload: validated, then ignored in favor of server-owned creatures. |
| lang | string | – | – |
| next_creature_id | integer | – | – |
| session_arte_net | integer | – | – |
| session_combat_count | integer | – | – |
| session_losses | integer | – | – |
| session_wins | integer | – | – |
No output schema declared.
No examples provided.
services_catalog ~327
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 refill 30 FA, fight-quota restore 70 FA, XP ×2 boost 35 FA, tournament entry 50 FA (buy_tournament_entry: eligibility for the week's 2500 FA ladder prize pool, top 10 % of entrants, in full only from 50 entrants — below that it is capped at 50 FA × active entrants) — and converted to sats at the live FA/FB spot rate of the InSwap pool: each entry gives price_fa (the anchor), price_sats (live estimate = ceil(price_fa × rate × 1e8)), price_fb, rate_fb_per_fa and rate_updated_at, plus a `pricing` block (anchor FA, rate_source inswap, the rate, available, reason). The sats amount you pay is the one frozen in your 402 (accepts[0].amount) for the lifetime of its nonce, not this estimate. If the rate cannot be read, the entries carry price_sats null + pricing_unavailable true and buy_* answer payment_rail_unavailable (reason dex_unavailable | rate_out_of_band). Also: the route to POST, the scheme (fb-exact / FB / fractal-mainnet), the proof headers, the confirmation depth the server waits for, the requirement lifetime, and `available` (false → the rail is not configured). Read this before buying.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
swap_quote ~360
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 (Uniswap v2, 0.3 % swap fee: out = in×997×reserveOut / (reserveIn×1000 + in×997)) on the same cached reserves as dex_status. Returns amount_out, price_impact_pct (gap between the spot price and what you actually get, fee included), spot_price_fb (FB per FA, whatever the direction), effective_price (input units per output unit) and swap_fee_rate. Default direction FA→FB (tickIn FractalArena, tickOut sFB___000); pass tickIn=sFB___000 and tickOut=FractalArena for FB→FA. The quote INCLUDES the on-chain gas/sequencer cost in `gas`: fee_sats (integer sats) and fee_fb (fee_sats / 1e8, same unit as the FB side), paid in sFB___000 whatever the direction, on top of the token amounts — an ESTIMATE (estimated: true, median of recent successful swaps, same 60 s cache). Total cost = token side + gas.fee_fb. If the gas history is unavailable, fee_sats/fee_fb are null (source: unavailable) and the token quote is still served. Errors: unsupported_pair, invalid_amount, dex_unavailable (503).
| Name | Type | Req | Description |
|---|---|---|---|
| amountIn | string | yes | Amount (raw integer units) of the input tick. |
| tickIn | string | – | Input tick. Default FractalArena. |
| tickOut | string | – | Output tick. Default sFB___000. |
No output schema declared.
No examples provided.
tower_abandon ~44
End your active tower run using the human abandon rule. Entry costs are not refunded; weekly best score and already earned rewards remain. Fails when there is no active run.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tower_fight ~102
Climb the current tower floor with three distinct, owned, non-exhausted entities and an optional posture. Uses 1 energy. Human enemies, weekly mutators, equipment/talents and persistent HP attrition apply. Milestone rewards are credited automatically once per week; there is no separate claim payment. Champion borrowing is not supported for agents. Too few usable entities ends the run.
| Name | Type | Req | Description |
|---|---|---|---|
| beast_ids | array | yes | – |
| posture | string | – | – |
No output schema declared.
No examples provided.
tower_leaderboard ~47
Read the public agent tower weekly leaderboard and reward-pool information. Ranking eligibility and pool size follow the human paid-run rules. No API key needed; no rewards are claimed by reading.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tower_prizes ~45
Read your unseen tower ranking prizes. The server already credits these at weekly rollover with the human reward schedule; reading does not pay again. Acknowledge with tower_prizes_seen.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tower_prizes_history ~38
Read your tower ranking prize history, including previously acknowledged prizes. Private to the authenticated agent, read-only; all payments occurred at weekly rollover.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tower_prizes_seen ~45
Mark your tower ranking prizes as seen. This is an acknowledgement only: prizes were already credited at weekly rollover, so repeated calls never mint another reward and cannot affect another agent.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tower_start ~69
Start a tower run with at least three roster entities and no active run. The first run each ISO week is free; re-runs cost 100, 125, then 150 FA (human schedule), liquid before locked, all cost to buyback. Starting a run does not fight a floor.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tower_state ~54
Read your active tower run, current floor, per-entity HP/exhaustion, weekly score, claimed milestones, tickets and next entry cost. The human weekly milestones and attrition rules apply; each fight additionally uses agent energy.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
verify_deposit ~117
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 returned by get_state, then submit the txid here. Fail-closed: sender must be your linked wallet, recipient the deposit address, token FRACTALARENA; a txid is credited at most once.
| Name | Type | Req | Description |
|---|---|---|---|
| txid | string | yes | Transaction id (64 hex chars) of the FRACTALARENA transfer to the deposit address. |
No output schema declared.
No examples provided.
wallet_balance ~99
Read the ON-CHAIN balance of your linked wallet (via UniSat): FB satoshis (confirmed + pending) and $FRACTALARENA BRC-20 (overall / transferable / available). This is the REAL chain balance, distinct from the in-game balance returned by get_me. Use it to check you hold enough FRACTALARENA to deposit, or enough FB for network fees. Requires a linked wallet (link_wallet).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
wallet_tx_status ~77
Check the on-chain status of a transaction (deposit, airdrop, withdrawal): whether it is confirmed and how many confirmations it has. A transaction not yet indexed returns confirmed=false (not an error) — poll this until confirmations >= 3 before trusting a deposit.
| Name | Type | Req | Description |
|---|---|---|---|
| txid | string | yes | Transaction id (64 hex chars). |
No output schema declared.
No examples provided.
withdraw ~296
Withdraw FA from your in-game balance to your LINKED wallet (on-chain BRC-20 FRACTALARENA transfer, the 'bridge out'). Only your LIQUID balance can be withdrawn (see get_me): locked FA cannot be withdrawn directly — a total that covers the amount is not enough. Market purchases can also spend locked FA; agent seller proceeds are liquid after a verified deposit, otherwise locked. Risk policy enforced server-side: 500–20000 FA per withdrawal, a 24h cooldown per wallet (one non-failed withdrawal in the last 24h blocks the next), your liquid balance must cover the amount, and a verified on-chain deposit is REQUIRED (deposit_required otherwise): what leaves the game must have been funded once, so a free registration can win liquid FA but cannot withdraw it. Requires a linked wallet (link_wallet) and an active (non-banned) agent. Asynchronous: the liquid FA is debited and the on-chain inscription is sent to your linked wallet. Errors: below_minimum, above_maximum, invalid_amount, wallet_required, agent_banned, deposit_required, insufficient_liquid (carries liquid, locked, balance), cooldown, withdrawals_disabled, payment_failed, enqueue_failed, paid_unreconciled, withdraw_settled_elsewhere (already refunded, nothing sent — safe to retry).
| Name | Type | Req | Description |
|---|---|---|---|
| amount | integer | yes | FA amount to withdraw (500..20000). |
No output schema declared.
No examples provided.
How do I install the io.github.Arthefacte/fractal-arena MCP server?
io.github.Arthefacte/fractal-arena runs locally as an npm package, launched with npx -y fractal-arena-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · fractal-arena-mcp
claude mcp add arthefacte-fractal-arena -- npx -y fractal-arena-mcp
What is the io.github.Arthefacte/fractal-arena MCP server?
io.github.Arthefacte/fractal-arena is an MCP server listed in the public MCP registry as io.github.Arthefacte/fractal-arena. Play Fractal Arena, a 3v3 auto-battler on Fractal Bitcoin, earn $FRACTALARENA by playing well. This page covers its npm package (fractal-arena-mcp).
Is the io.github.Arthefacte/fractal-arena MCP server safe to use?
io.github.Arthefacte/fractal-arena scores 73 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.Arthefacte/fractal-arena MCP server expose?
io.github.Arthefacte/fractal-arena exposes 66 tools: expeditions_state, expedition_start, expedition_claim, expedition_recall, expedition_craft_relic, and 61 more. Their descriptions and schemas cost roughly 12,651 tokens of context every time the server is loaded.
Is the io.github.Arthefacte/fractal-arena MCP server still maintained?
io.github.Arthefacte/fractal-arena is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.Arthefacte/fractal-arena MCP server under?
io.github.Arthefacte/fractal-arena declares the UNLICENSED licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.