Skip to main content
ClaudeWave

Remote MCP server: pre-trade resolution-risk audit for Polymarket/Kalshi prediction-market pairs — safe/caution/block before you execute both legs

MCP ServersRegistry oficial0 estrellas0 forksMITActualizado today
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/NicolasDuarte04/crosswire-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "crosswire-mcp": {
      "command": "node",
      "args": ["/path/to/crosswire-mcp/dist/index.js"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/NicolasDuarte04/crosswire-mcp and follow its README for install instructions.
Casos de uso

Resumen de MCP Servers

# Crosswire — MCP server

**Pre-trade resolution-risk firewall for cross-venue prediction-market arbitrage.**
Before executing a two-leg **Polymarket** + **Kalshi** position, Crosswire flags **resolution
mismatch**, **void risk**, and **settlement divergence** — void-rule asymmetry, settlement-scope
differences (90-minute vs extra-time), settlement-source and -timing gaps, stale data, and thin
liquidity between Polymarket and Kalshi FIFA World Cup 2026 markets — so automated trading agents
don't get blown up by markets that look identical but settle differently. Verdict:
**safe / caution / block**.

It does not predict outcomes and it does not execute trades. It answers one question:
**if I buy this contract on one venue and sell its twin on the other, do they actually settle
on the same thing?** When they don't, it names the exact clause that breaks the hedge.

## Remote MCP endpoint

```
https://api.crosswire-api.com/mcp
```

- Transport: **streamable HTTP**
- The MCP tools are **free — no API key, no signup**
- Website: [crosswire-api.com](https://crosswire-api.com) · Status & track record: [api.crosswire-api.com](https://api.crosswire-api.com/)

### Connect

Generic MCP client config (`mcp.json`):

```json
{
  "mcpServers": {
    "crosswire": {
      "url": "https://api.crosswire-api.com/mcp"
    }
  }
}
```

Claude Code:

```bash
claude mcp add --transport http crosswire https://api.crosswire-api.com/mcp
```

## Tools

### `check_resolution_risk`

Pre-trade safety check for a cross-venue pair. Returns a machine-readable verdict —
`execution_verdict: safe / caution / block` — inside a full Fungibility & Settlement Audit
Object (FSAO) with structured findings, top-level divergence flags, venue rule overrides,
fee-adjusted spread, and verdict reasons.

Identify the pair by **either**:

1. `canonical_event_id` — a pair id from `list_covered_events`,
   e.g. `"wc26:match:MEX-RSA:2026-06-11:result#home"` (`#home` / `#draw` / `#away` selects the outcome leg), **or**
2. `market_a` + `market_b` — one Polymarket `conditionId` (`0x…` hex) and one Kalshi ticker
   (e.g. `KXWCGAME-26JUN11MEXRSA-MEX`), order-insensitive. `outcome` on a ref is optional —
   matching uses only `(venue, market_id)`.

Optional: `notional_usd` (enables the thin-liquidity check at your trade size).

If the pair is not covered, the tool returns a non-error coverage reply (`covered: false`)
naming the covered matches and the coverage cutoff instead of an FSAO.

**Example — real production audit** (World Cup opener, Mexico vs South Africa, home leg):

Request:

```json
{
  "canonical_event_id": "wc26:match:MEX-RSA:2026-06-11:result#home"
}
```

Response (abridged with `…`):

```json
{
  "audit_id": "aud_01KTW2Y7S3Q3JFYJK863FJB66X",
  "canonical_event_id": "wc26:match:MEX-RSA:2026-06-11:result#home",
  "leg_a": { "venue": "polymarket", "market_id": "0x4cd77d45…10ff", "outcome": "Yes" },
  "leg_b": { "venue": "kalshi", "market_id": "KXWCGAME-26JUN11MEXRSA-MEX", "outcome": "yes" },
  "matching_confidence": 0.98,
  "semantically_fungible": false,
  "scope_divergence_flag": false,
  "void_rule_divergence_flag": true,
  "settlement_source_divergence_flag": true,
  "settlement_timing_divergence_flag": true,
  "polymarket_rule_override": "If the game is canceled entirely, with no make-up game, this market will resolve \"No\". …",
  "kalshi_rule_override": "If the game is cancelled or rescheduled to over two weeks away, the market will resolve to a fair price …",
  "findings": [
    { "code": "void_rule", "severity": "fatal",
      "detail": "Void conditions differ … A core void asymmetry can void one leg while the other settles.",
      "affects_fungibility": true },
    { "code": "settlement_source", "severity": "warn",
      "detail": "fifa.com (UMA-adjudicated) vs Kalshi internal …" },
    { "code": "settlement_timing", "severity": "warn",
      "detail": "2h statistics fallback vs unspecified …" }
  ],
  "fee_adjusted_true_spread": 0.0009,
  "snapshot_age_seconds": 61,
  "execution_verdict": "block",
  "verdict_reasons": [ "void_rule: Void conditions differ …", "…" ],
  "ruleset_sha": "…"
}
```

That `block` is the product working as intended: a canceled match pays the Polymarket leg
$0 while Kalshi resolves the same position to "a fair price" — the hedge breaks exactly when
you need it.

### `list_covered_events`

Free discovery of everything `check_resolution_risk` can audit: the covered canonical events,
their per-outcome pair ids (`…#home` / `#draw` / `#away`), the Polymarket conditionIds and
Kalshi tickers with outcome labels for each pair, match dates, the frozen `ruleset_sha`
pinning the identity graph, the coverage kickoff cutoff, and snapshot freshness. Takes no
arguments. Use a returned `pair_id` (or a pair's two market ids) as input to
`check_resolution_risk`.

## Verdict semantics

| Verdict | Meaning | Agent action |
|---|---|---|
| `safe` | No fatal findings, data fresh. The two contracts settle on the same thing. | Proceed; your stack decides. |
| `caution` | Non-fatal divergence or degraded data (e.g. stale snapshot, thin liquidity, source/timing gaps). | Proceed only if your strategy tolerates the named finding. |
| `block` | A fatal divergence (void-rule asymmetry, scope mismatch, granularity mismatch…) can settle the legs differently. | Do not execute the pair as a hedge. |

Every FSAO carries the findings that produced the verdict — the audit is explainable,
append-only logged server-side, and reproducible from
`{ruleset_sha, snapshot_ts, canonical_event_id}`.

## Coverage

FIFA World Cup 2026 match markets listed on both Polymarket and Kalshi, expanding in batches
throughout the tournament. **Current coverage is always live** — query `list_covered_events`,
or [`/v1/events`](https://api.crosswire-api.com/v1/events) and
[`/v1/health`](https://api.crosswire-api.com/v1/health) on the REST API. Listings here are
intentionally coverage-generic; the endpoint is the source of truth.

## Pricing & keys

The MCP tools are **free at launch** — no key. The keyed REST API
(`POST /v1/audit`, same FSAO) issues free opening-weekend keys by mail:
[nicolasduartejaraba@gmail.com](mailto:nicolasduartejaraba@gmail.com?subject=Crosswire%20API%20key).

## What we never do

- **No outcome prediction.** No model probabilities are exposed.
- **No execution.** No order routing or placement. The gate returns a verdict; your stack decides.
- **No custody.** No customer keys, funds, or settlement.
- **No strategy harvesting.** The API sees only the two market references being audited and an optional notional.

Crosswire is an advisory data service. Nothing it returns is financial advice.

## License

[MIT](LICENSE) — covers this repository (listing metadata and documentation). The Crosswire
service itself is proprietary.

Lo que la gente pregunta sobre crosswire-mcp

¿Qué es NicolasDuarte04/crosswire-mcp?

+

NicolasDuarte04/crosswire-mcp es mcp servers para el ecosistema de Claude AI. Remote MCP server: pre-trade resolution-risk audit for Polymarket/Kalshi prediction-market pairs — safe/caution/block before you execute both legs Tiene 0 estrellas en GitHub y se actualizó por última vez today.

¿Cómo se instala crosswire-mcp?

+

Puedes instalar crosswire-mcp clonando el repositorio (https://github.com/NicolasDuarte04/crosswire-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar NicolasDuarte04/crosswire-mcp?

+

NicolasDuarte04/crosswire-mcp aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.

¿Quién mantiene NicolasDuarte04/crosswire-mcp?

+

NicolasDuarte04/crosswire-mcp es mantenido por NicolasDuarte04. La última actividad registrada en GitHub es de today, con 0 issues abiertos.

¿Hay alternativas a crosswire-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega crosswire-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: NicolasDuarte04/crosswire-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/nicolasduarte04-crosswire-mcp)](https://claudewave.com/repo/nicolasduarte04-crosswire-mcp)
<a href="https://claudewave.com/repo/nicolasduarte04-crosswire-mcp"><img src="https://claudewave.com/api/badge/nicolasduarte04-crosswire-mcp" alt="Featured on ClaudeWave: NicolasDuarte04/crosswire-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a crosswire-mcp