# fi.zxoar/zxoar (npm · zxoar-mcp)

Agent-first trading on the ZXOAR launchpad (Uniswap V4): scan, vet, guarded buy/sell, atomic launch

- Trust score: 63/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `zxoar-mcp`: 63/100 (this document), [markdown](https://verifymcp.io/servers/fi-zxoar-zxoar/zxoar-mcp.md), [page](https://verifymcp.io/servers/fi-zxoar-zxoar/zxoar-mcp)

## Channel facts

- Registry: `npm`
- Package: `zxoar-mcp`
- Version: `0.2.2`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (109 of 113), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (109 of 113), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 9 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 73/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1532 tokens (~117/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 97/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 90% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add fi-zxoar-zxoar -- npx -y zxoar-mcp
```

### Codex

```bash
codex mcp add fi-zxoar-zxoar -- npx -y zxoar-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "fi-zxoar-zxoar": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "zxoar-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add fi-zxoar-zxoar --command npx --arg -y --arg zxoar-mcp
```

### Hermes

```yaml
mcp_servers:
  fi-zxoar-zxoar:
    command: "npx"
    args: ["-y", "zxoar-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "fi-zxoar-zxoar": {
      "command": "npx",
      "args": [
        "-y",
        "zxoar-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 63, +63)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 0, −21)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 21, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 39)

First indexed and scored.

## MCP tools (13)

### `scan` (~81 tokens)

List tokens on the ZXOAR launchpad, newest first: price in ETH, market cap, % of the bonding curve sold, graduation status, and whether the anti-snipe guard fee is still active (fee decays 50%→1% over 3 minutes after launch).

Input parameters:

- `limit` (integer): Max tokens to return (default 25)

### `vet` (~140 tokens)

Safety check for one launchpad token before trading it — the same ladder the ZXOAR site runs, sized for agents: launcher-registry membership (pins the factory bytecode, locked liquidity, and the SnipeGuard hook), guard/graduation state, and a REAL simulated buy→approve→sell round-trip through the actual router (0.01 ETH probe via eth_simulateV1 — an eth_call, spends nothing). Returns a plain verdict: CLEAR / WAIT (guard active) / CAUTION / UNPROBEABLE. Call this before the first buy of any token.

Input parameters:

- `token` (string, required): Ticker or 0x address

### `token_info` (~53 tokens)

Detailed live state for one token: price, market cap, band progress, guard fee, creator, metadata.

Input parameters:

- `token` (string, required): Ticker symbol (e.g. DEER) or 0x token address

### `wallet` (~34 tokens)

The connected wallet's address, ETH balance, and holdings across Lockwood tokens with ETH valuations. Read-only servers report readOnly:true.

### `buy` (~180 tokens)

Buy a ZXOAR token with ETH via the pool's locked concentrated liquidity. Simulates first, applies slippage protection, and refuses amounts above the server's MAX_ETH_PER_TX guardrail. REFUSES while a token's anti-snipe guard fee is still decaying (first ~3 minutes — a fill then burns up to 50% in fees); pass allowGuardFee:true only if speed genuinely matters more than price.

Input parameters:

- `allowGuardFee` (boolean): Explicitly accept buying during the anti-snipe window at up to 50% fee (default false)
- `ethAmount` (number, required): ETH to spend, e.g. 0.05
- `slippageBps` (integer): Slippage tolerance in bps (default 300 = 3%)
- `token` (string, required): Ticker or 0x address

### `sell` (~98 tokens)

Sell a Lockwood token back into its pool for ETH. Provide tokenAmount (whole tokens) or percent of current holding. Handles approval automatically; simulates and applies slippage protection.

Input parameters:

- `percent` (number): Percent of holding to sell (used if tokenAmount omitted)
- `slippageBps` (integer)
- `token` (string, required): Ticker or 0x address
- `tokenAmount` (number): Whole tokens to sell

### `launch` (~267 tokens)

Launch a new token: deploys a fixed 1B-supply ERC-20, initializes a Uniswap V4 pool with the anti-snipe hook, deposits 95% of supply as a locked single-sided bonding curve, and escrows the 5% graduation reserve (deployed as locked liquidity above the band when the curve fills, ~20.6 ETH FDV). Launching is free, forever. No presale, no team allocation; principal liquidity is never withdrawable by anyone. The anti-snipe guard (50%→1% over 3 min) starts immediately. If firstBuyEth is provided the launch uses the ATOMIC launchAndBuy path — launch + creator buy in ONE transaction, guaranteed first position, nothing can front-run between them (the creator's buy still pays the t=0 guard fee — no creator privilege). Caller becomes the creator and earns 50% of all swap fees forever via collect_fees.

Input parameters:

- `firstBuyEth` (number): Optional creator buy in ETH — atomic with the launch (guaranteed first position)
- `metadataURI` (string): Optional URI to JSON metadata (image, description, links)
- `name` (string, required)
- `symbol` (string, required): Ticker, e.g. DEER

### `collect_fees` (~69 tokens)

Claim swap fees accrued to a token's locked liquidity position. Anyone may trigger it; proceeds always split 50% to the token's creator and 50% to the protocol. Principal liquidity cannot be withdrawn by anyone, ever.

Input parameters:

- `token` (string, required): Ticker or 0x address

### `get_activity` (~95 tokens)

Recent on-chain activity across the whole market (launches, trades, fee collections), newest first — the event feed agents should read instead of repeatedly polling scan. Optionally filter to one token. Each trade includes the exact fee it paid, so guard-window activity is visible.

Input parameters:

- `limit` (integer): Max events (default 20)
- `token` (string): Ticker or 0x address to filter to one token

### `get_token_history` (~84 tokens)

Full history for one token: price series, per-trade fee paid (shows the snipe-guard decay in the data), total volume, fees collected, and recent trades. This is the memory agents lack when polling — and the audit trail humans need.

Input parameters:

- `token` (string, required): Ticker or 0x address
- `tradeLimit` (integer)

### `get_market_stats` (~47 tokens)

Whole-market rollup: pool count, total trades, total volume, total fees paid (creator+protocol), most-active tokens, and newest launches. For dashboards and agent market-scanning.

### `build_metadata` (~240 tokens)

Build a token metadata data URI from structured input. Returns the complete metadataURI for the launch tool, the normalized manifest (as renderers see it), byte size, warnings (e.g. invalid schemes, oversized URI). Social handles are normalized to full URLs. Max URI size: 32768 bytes.

Input parameters:

- `description` (string): Brief token description
- `discord` (string): Discord invite code or URL (e.g. abc123 or https://discord.gg/abc123)
- `image` (string): Token image: data:image/* (base64), ipfs://, or https://
- `name` (string, required): Token display name
- `nsfw` (boolean): Mark the logo NSFW (renderers blur it). Usually set from set_image's returned nsfw flag.
- `symbol` (string): Token symbol/ticker
- `telegram` (string): Telegram handle or URL (e.g. groupname or https://t.me/group)
- `twitter` (string): Twitter/X handle or URL (e.g. @handle or https://twitter.com/handle)
- `website` (string): Project website (https:// only)

### `set_image` (~144 tokens)

Upload a token logo through Lockwood's moderation gate (the SAME gate the UI uses — no bypass). Give a local image file path (PNG/JPEG/WebP/GIF); it is re-encoded, screened, and either rejected (explicit/illegal content) or stored. Returns { url, nsfw }. Then pass url as build_metadata's `image` and nsfw as build_metadata's `nsfw`, and launch with the resulting metadataURI. Requires the image service (IMAGE_SERVICE_URL, default http://127.0.0.1:3000).

Input parameters:

- `imagePath` (string, required): Local path to a PNG/JPEG/WebP/GIF logo file

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/fi-zxoar-zxoar/zxoar-mcp#diagnostics

## Score history

- 2026-08-03: 63
- 2026-08-02: 63
- 2026-08-01: 0
- 2026-07-31: 21
- 2026-07-30: 39
- 2026-07-28: 39
- 2026-07-27: 39

## Links

- npm package: https://www.npmjs.com/package/zxoar-mcp
- Socket report: https://socket.dev/npm/package/zxoar-mcp
- Website: https://zxoar.fi/
- Changelog RSS feed: https://verifymcp.io/servers/fi-zxoar-zxoar/zxoar-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/fi-zxoar-zxoar/zxoar-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/fi-zxoar-zxoar/zxoar-mcp
