# io.tooloracle/predictionguard (remote · feedoracle.io)

Polymarket integrity MCP — 28 tools for wallet risk, whales, UMA scans, SAR/STR reports.

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

## Components

- remote · `feedoracle.io`: 62/100 (this document), [markdown](https://verifymcp.io/servers/io-tooloracle-predictionguard/predictionguard-mcp.md), [page](https://verifymcp.io/servers/io-tooloracle-predictionguard/predictionguard-mcp)

## Channel facts

- Endpoint: `https://feedoracle.io/predictionguard/mcp/`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, 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-04.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 41 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4881 tokens (~119/item across 41 items; 41 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 96/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 88% of tool parameters carry a description.
- **Capabilities**: 40/100
  - Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http io-tooloracle-predictionguard https://feedoracle.io/predictionguard/mcp/
```

### Codex

```toml
[mcp_servers.io-tooloracle-predictionguard]
url = "https://feedoracle.io/predictionguard/mcp/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-tooloracle-predictionguard": {
      "type": "remote",
      "url": "https://feedoracle.io/predictionguard/mcp/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-tooloracle-predictionguard --url https://feedoracle.io/predictionguard/mcp/ --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-tooloracle-predictionguard:
    url: "https://feedoracle.io/predictionguard/mcp/"
```

### Other

```json
{
  "mcpServers": {
    "io-tooloracle-predictionguard": {
      "type": "http",
      "url": "https://feedoracle.io/predictionguard/mcp/"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## 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-03 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 60, 0)

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

### 2026-07-30 (score 60, 0)

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

### 2026-07-29 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 58, 0)

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

### 2026-07-26 (score 58)

First indexed and scored.

## MCP tools (41)

### `pg_overview` (~39 tokens)

PredictionGuard platform overview: covered platforms, tool inventory, Polymarket Gamma API ping, Polygon RPC ping (Ankr-backed), known-case count.

### `pg_market_search` (~87 tokens)

Search Polymarket markets by keyword (e.g. 'election', 'fed', 'bitcoin'). Returns question, slug, 24h volume, liquidity, end date.

Input parameters:

- `active_only` (boolean): Only active / non-closed markets
- `limit` (integer): Max results (default 10, max 50)
- `query` (string, required): Keyword to search

### `pg_market_details` (~64 tokens)

Full market info: outcomes, outcome prices, volume, liquidity, best bid/ask, spread, resolution source, conditionId. Provide 'slug' or 'id'.

Input parameters:

- `id` (string): Market id / conditionId
- `slug` (string): Market slug

### `pg_market_volume_profile` (~60 tokens)

Volume anomaly heuristic: compares 24h volume vs average daily volume since market start (z-like ratio) and flags thin-book situations where 24h volume >> on-book liquidity.

Input parameters:

- `id` (string)
- `slug` (string)

### `pg_market_integrity_scan` (~81 tokens)

Multi-signal integrity scan: combines thin-book flag, spread, low liquidity, geopolitical-term pattern, end-date proximity, and 24h volume concentration. Returns score 0-100, level HIGH/MEDIUM/LOW/CLEAN, triggered signals, and an operational recommendation.

Input parameters:

- `id` (string)
- `slug` (string)

### `pg_trending_markets` (~56 tokens)

Top Polymarket markets by 24h volume. Useful for daily compliance triage / catching news catalysts before they land in mainstream coverage.

Input parameters:

- `limit` (integer): Max results (default 10, max 25)

### `pg_known_cases` (~97 tokens)

Registry of publicly reported prediction-market integrity cases (Théo / French whale, Hyperliquid whale, Venezuela, Iran strikes, Nuclear, UMA Ukraine). Filter by category or minimum AML relevance (low/medium/high). Summaries only — no accusations against named parties.

Input parameters:

- `category` (string): Optional category substring (e.g. 'geopolitical', 'oracle')
- `min_aml_relevance` (string): Minimum AML relevance

### `pg_wallet_lookup` (~72 tokens)

Polygon wallet base profile via JSON-RPC (Ankr-backed when RPC_POLYGON is set, public fallback otherwise). Returns MATIC balance, outbound tx count, contract-vs-EOA detection, and a lightweight risk heuristic.

Input parameters:

- `address` (string, required): Polygon address (0x + 40 hex chars)

### `pg_sanctions_screen_entity` (~103 tokens)

Screen a named entity against global sanctions lists (OFAC SDN, EU FSF, UN SC, Interpol). Delegates to AMLOracle. Use after resolving a wallet/trader to a real name via public reporting or known-case registry.

Input parameters:

- `entity_type` (string): Optional: 'person' or 'organization'
- `name` (string, required): Person or entity name
- `threshold` (number): Optional fuzzy-match threshold (0..1)

### `pg_pep_check_entity` (~63 tokens)

Politically Exposed Person (PEP) check via Wikidata. Delegates to AMLOracle. Relevant for prediction markets where reported traders overlap with political figures.

Input parameters:

- `country` (string): Optional ISO country code
- `name` (string, required): Person name

### `pg_adverse_media_entity` (~98 tokens)

Adverse media scan — negative news on fraud, money laundering, corruption, sanctions. Delegates to AMLOracle. Core building block for evidence chains that link a wallet or trader to publicly reported concerns (always cite the source, never attribute).

Input parameters:

- `lang` (string): Optional language (e.g. en, de)
- `limit` (integer): Max results (default upstream)
- `name` (string, required): Person or entity name

### `pg_kyc_bundle_entity` (~77 tokens)

Full KYC bundle for a named entity: sanctions + PEP + adverse media + country risk in a single call. Delegates to AMLOracle.kyc_bundle.

Input parameters:

- `country` (string): ISO country code
- `entity_type` (string): 'person' or 'organization'
- `name` (string, required)

### `pg_insider_alert_signed` (~139 tokens)

Issue a cryptographically signed, on-chain anchored integrity alert for a Polymarket market. Combines evidence_anchor + get_signed_fact from FeedOracle Trust Layer. Alerts are anchored on Polygon with an ECDSA signature and are externally verifiable via pg_verify_alert and the JWKS at feedoracle.io/.well-known/jwks.json.

Input parameters:

- `claim` (string, required): Short human-readable claim being asserted
- `market_slug` (string, required): Polymarket market slug
- `severity` (string): Alert severity
- `signals` (array): List of integrity signals triggered
- `wallets` (array): Optional list of related wallet addresses

### `pg_evidence_bundle_market` (~78 tokens)

Complete forensic dossier for a single Polymarket market: market details + integrity scan + volume anomaly profile + Trust Layer provenance trace — aggregated into one dossier ready for manual review, press inquiry, or as input to a SAR report.

Input parameters:

- `id` (string): Market id / conditionId
- `slug` (string): Market slug

### `pg_verify_alert` (~83 tokens)

Verify a previously issued signed alert (JWS or content-hash). Delegates to Trust Layer verify_signature. Returns validity, signer, and timestamp. JWKS at feedoracle.io/.well-known/jwks.json.

Input parameters:

- `content_hash` (string): SHA-256 content hash (alternative to JWS)
- `jws` (string): Full JWS string

### `pg_wallet_entity_resolve` (~89 tokens)

Resolve a Polygon address to a known entity via PredictionGuard's Wallet Registry (Polymarket core contracts, major stablecoins, known CEX hot wallets), falling back to on-chain heuristic classification for unknown addresses. Returns entity name, type, category, AML relevance, confidence, and source-of-record URL.

Input parameters:

- `address` (string, required): Polygon address (0x + 40 hex chars)

### `pg_wallet_risk_profile` (~103 tokens)

Aggregated A–F risk profile for a Polygon wallet. Combines on-chain behavior (pg_wallet_lookup), entity resolution (pg_wallet_entity_resolve), and — where the entity can be screened — AML bundle (sanctions + PEP + adverse media via AMLOracle). Grade A = clean, F = blocked. Includes triggered flags with points deductions for full auditability.

Input parameters:

- `address` (string, required): Polygon address (0x + 40 hex chars)

### `pg_whale_add` (~140 tokens)

Add a Polygon wallet to the PredictionGuard watchlist. Takes an initial baseline snapshot so subsequent pg_whale_scan calls can detect movement. Set alert_threshold_matic to tune sensitivity (default 100 MATIC). Tags are free-form.

Input parameters:

- `address` (string, required): Polygon address (0x + 40 hex)
- `alert_threshold_matic` (number): Balance delta threshold in MATIC for alerts (default 100)
- `alias` (string): Optional human-readable label
- `notes` (string): Free-form notes
- `tags` (array): Free-form tags (e.g. ['polymarket','pre-election','whale'])

### `pg_whale_remove` (~64 tokens)

Remove a wallet from the watchlist. By default keeps historical snapshots and alerts (for audit trail). Set keep_history=false to purge everything for this address.

Input parameters:

- `address` (string, required)
- `keep_history` (boolean): Keep snapshot + alert history (default true)

### `pg_whale_list` (~57 tokens)

List all watched wallets with their alias, threshold, tags, notes, and last snapshot. Optionally filter by tag.

Input parameters:

- `limit` (integer): Max results (max 500)
- `tag` (string): Optional tag filter

### `pg_whale_scan` (~110 tokens)

Scan one or all watched wallets against Polygon RPC. Compares current balance + nonce to the last snapshot, writes a new snapshot, and emits an alert when the delta exceeds the wallet's configured threshold. Severity is MEDIUM / HIGH / CRITICAL by delta size. Omit 'address' to scan the entire watchlist. Designed to be called periodically via SchedulerOracle or a systemd timer.

Input parameters:

- `address` (string): Optional — scan a single address. Omit to scan the whole list.

### `pg_whale_alerts` (~114 tokens)

Retrieve alerts from the watchlist audit log. Filter by address, severity (LOW/MEDIUM/HIGH/CRITICAL), and/or ISO timestamp 'since'. Default returns the 50 most recent alerts across the whole watchlist.

Input parameters:

- `address` (string)
- `limit` (integer): Max results (max 500)
- `severity` (string)
- `since` (string): ISO 8601 timestamp (e.g. 2026-04-20T00:00:00Z)

### `pg_uma_status` (~127 tokens)

Global UMA Optimistic Oracle health on Polygon. Scans event logs from OOv2 (and optionally OOv1) over a configurable window, tallies events by type (RequestPrice / ProposePrice / DisputePrice / Settle), computes per-hour rate, and derives a dispute/propose ratio — a leading indicator of oracle-level contention.

Input parameters:

- `blocks_back` (integer): Blocks to scan back (default 5000 ≈ 3h, max 20000)
- `include_v1` (boolean): Also scan UMA OOv1 (legacy, default false)

### `pg_uma_market_resolution` (~92 tokens)

Resolution source and phase for a specific Polymarket market. Fetches market metadata from Gamma, extracts the resolutionSource address, verifies it's a deployed contract on Polygon, and classifies the resolution phase (active_trading / approaching_resolution / imminent_resolution_window / past_end_awaiting_resolution / resolved).

Input parameters:

- `id` (string): Market id / conditionId
- `slug` (string): Market slug

### `pg_resolution_risk_score` (~117 tokens)

Multi-signal resolution-risk score (0–100, CLEAN/LOW/MEDIUM/HIGH/CRITICAL) for a Polymarket market. Combines category priors (geopolitical/election/sanctions patterns from pg_known_cases), resolution-phase proximity, market volume, resolution-source sanity check (is the UMA adapter a real deployed contract), UMA global dispute ratio, and thin-book flag. Returns triggered signals with point deductions for full auditability.

Input parameters:

- `id` (string)
- `slug` (string)

### `pg_sar_report` (~249 tokens)

Generate a draft Suspicious Activity Report (SAR/STR) from structured inputs. Supports EU_GENERIC (FATF-aligned STR, default), US_FINCEN (Form 111 structure), and DE_goAML (German FIU draft). Takes subject, market, activity window, integrity signals, and evidence references — auto-classifies the primary suspicious activity type, generates a narrative, and renders regulator-style markdown. Output is marked draft_for_review; PredictionGuard does not submit SARs directly.

Input parameters:

- `activity` (object): Activity window and amounts.
- `evidence` (object): References to prior evidence.
- `filer` (object): Information about the preparing institution.
- `filing_jurisdiction` (string): Report format. Default EU_GENERIC.
- `market` (object): Optional. Polymarket market context.
- `narrative_addendum` (string): Optional free-text addendum from the analyst.
- `signals` (array): Integrity signals (strings or objects with 'term'/'reason'/'layer'). Pass the 'triggered_signals' array from pg_market_integrity_scan or pg_resolution_risk_score directly.
- `subject` (object, required): Required. The subject of the report.

### `pg_market_trades` (~238 tokens)

Raw trade access for a Polymarket market via the Polymarket Data API. Supports client-side filters: time range (from/to, ISO 8601), side (BUY/SELL), minimum trade size, or a specific wallet. Paginates server-side (max 25 pages × 1000 trades). Returns compact records with wallet, pseudonym, side, size, price, notional USD, outcome, timestamp, tx_hash.

Input parameters:

- `from` (string): Only include trades from this ISO timestamp
- `id` (string): Market id / conditionId
- `limit` (integer): Max trades to return after filtering (default 100, max 5000)
- `max_pages` (integer): How many pages of 1000 to fetch (default 2, max 25)
- `min_size` (number): Minimum trade size (shares)
- `side` (string): Only trades on this side
- `slug` (string): Polymarket market slug
- `to` (string): Only include trades up to this ISO timestamp
- `wallet` (string): Filter to a single wallet address

### `pg_pre_event_flow_analysis` (~176 tokens)

Analyze pre-resolution positioning on a Polymarket market. For the N days before the market's endDate, aggregates trades by wallet, classifies wallets new to the market in that window, detects volume concentration, timing clusters (minutes where ≥5 distinct wallets trade in sync), and pre-event volume spikes vs historical average. Returns a 0–100 risk score (CRITICAL/HIGH/MEDIUM/LOW/CLEAN) with triggered signals, top 10 positioners, and top 10 new wallets. Default window = 7 days.

Input parameters:

- `days_before_end` (number): Pre-event window size in days (1–90, default 7)
- `id` (string)
- `max_pages` (integer): Trade pagination depth (default 10, max 25)
- `slug` (string)

### `pg_insider_signal_scan` (~200 tokens)

Real-time insider-trading signal scan for a single Polymarket market. Aggregates 5 signals: (1) very large pre-event positions, (2) high ratio of wallets new to this market, (3) coordinated minute-bucket timing clusters, (4) one-sided positioning, (5) sensitive-keyword category match (military/regime/intel). Returns a 0-100 score (CLEAN/LOW/MEDIUM/HIGH/CRITICAL), triggered signals with evidence, top 5 positioners with new-wallet flag, and full methodology for audit. Default window = 72h before market end.

Input parameters:

- `id` (string): Market id / conditionId
- `min_position_usd` (number): Min notional to flag (default $1000)
- `slug` (string): Polymarket market slug
- `window_hours` (integer): Pre-event window to analyze (default 72h)

### `pg_wallet_correlation_match` (~142 tokens)

Find wallets that co-trade across multiple sensitive Polymarket markets with a target wallet. Given a wallet and 2-10 market slugs, returns: which markets the target traded, top 20 cotraders ranked by overlap count, and an aggregate severity score (≥3 shared markets = MEDIUM, ≥5 = HIGH). Use case: detect coordinated trading rings, shared-info syndicates, or wallet clusters that consistently bet on the same sensitive events.

Input parameters:

- `markets` (array, required): 2-10 market slugs to check for co-trading overlap
- `wallet` (string, required): Target wallet address (0x + 40 hex)

### `pg_position_timing_anomaly` (~171 tokens)

Statistical timing analysis of a single wallet's position on a specific market. Checks: (1) how close to resolution the wallet entered (<6h=35pts, <24h=25pts, <72h=10pts), (2) position size vs market average (>20× avg=25pts, >5× avg=10pts), (3) single-bet pattern (≤3 trades=10pts, no historical trading rationale). Returns 0-100 score, first-trade timestamp, total notional, and methodology. Pair with pg_information_advantage_score for full assessment.

Input parameters:

- `id` (string): Market id / conditionId
- `slug` (string): Market slug
- `wallet` (string, required): Wallet to analyze (0x + 40 hex)

### `pg_information_advantage_score` (~159 tokens)

Composite A-F rating for whether a wallet appears to have had non-public information on a specific market. Aggregates pg_position_timing_anomaly (50% weight) + pg_insider_signal_scan (30%) plus bonuses for being in top positioners (+10), new to market (+10), and sensitive category (+10). Returns letter grade A-F, composite score 0-100, all component scores, and interpretation guide. Pattern-matches reported cases (Van Dyke, Hyperliquid whale). Statistical signal only — not a legal determination.

Input parameters:

- `id` (string): Market id / conditionId
- `slug` (string): Market slug
- `wallet` (string, required): Wallet to score (0x + 40 hex)

### `pg_classified_keyword_match` (~149 tokens)

Daily compliance triage: scans top Polymarket markets by 24h volume and flags those whose question text matches curated sensitive-keyword categories — military action, regime change, leadership death, diplomacy, intelligence ops, monetary policy, regulatory action. Returns flagged markets with monitoring severity (HIGH/MEDIUM/LOW), matched categories and keywords, and volume. Pair flagged HIGH markets with pg_insider_signal_scan for active surveillance.

Input parameters:

- `category` (string): Optional: filter to one category (military_action, regime_change, leadership_death, diplomacy, intelligence, monetary_policy, regulatory_action)
- `limit` (integer): Max markets to scan (default 25, max 100)

### `pg_kalshi_search` (~144 tokens)

Search Kalshi prediction markets (CFTC-regulated event contracts). Returns events ranked by aggregate 24h volume across all markets in the event. Kalshi categories include Elections, Politics, Economics, Climate, Sports, Entertainment, Financials. Public data, no auth needed. Each event has one or more child markets (mutually exclusive or yes/no).

Input parameters:

- `category` (string): Optional category filter (Elections, Politics, Economics, ...)
- `limit` (integer): Max events to return (default 25, max 100)
- `query` (string): Keyword search in title, sub_title, event_ticker
- `status` (string)

### `pg_kalshi_market_details` (~133 tokens)

Detailed Kalshi market or event info. Pass 'ticker' for a single market (returns yes/no bids+asks, last price, volume, OI, spread, hours until close) or 'event_ticker' for all markets in an event (multi-outcome). Includes the rules_primary text (Kalshi's settlement criteria) which is critical for understanding resolution risk.

Input parameters:

- `event_ticker` (string): Kalshi event ticker (returns all child markets)
- `ticker` (string): Kalshi market ticker (e.g. KXG7LEADEROUT-45JAN01-DJT)

### `pg_kalshi_trending` (~84 tokens)

Top trending Kalshi events ranked by aggregate 24h volume across child markets. Filterable by category. Daily-briefing-ready output. Includes the highest-volume sub-market per event.

Input parameters:

- `category` (string): Optional category filter (Elections, Politics, ...)
- `limit` (integer): Max events to return (default 25, max 50)

### `pg_kalshi_orderbook_analysis` (~142 tokens)

Forensic orderbook analysis for one Kalshi market. Detects manipulation-vulnerable patterns: (1) wide spread (>$0.10), (2) shallow depth (<10 contracts), (3) few price levels, (4) single-order dominance (>80% in top level), (5) penny-wall pattern (large bids at ≤$0.005, commonly used to fake depth). Returns 0-100 score, severity, and full level-by-level data. Kalshi returns bids only — implied asks computed via yes_bid + no_bid = $1 reciprocity.

Input parameters:

- `ticker` (string, required): Kalshi market ticker

### `pg_kalshi_thin_market_alert` (~108 tokens)

Scan all open Kalshi markets and flag those that are manipulation-vulnerable: closing soon (<24h), low open interest, low liquidity, wide spread, low volume. Daily triage tool. Returns markets ranked by risk_score (≥30 threshold). Best paired with pg_kalshi_resolution_calendar for full compliance briefing.

Input parameters:

- `category` (string): Optional category filter
- `max_results` (integer): Max flagged markets (default 25, max 50)

### `pg_kalshi_resolution_calendar` (~125 tokens)

Compliance briefing: which Kalshi markets resolve in the next N hours? Bucketed by 6h, 24h, 48h, 1 week. Flags markets in CFTC-sensitive categories (Elections, Politics). Use for daily surveillance prep — markets near resolution have highest insider-trading risk window.

Input parameters:

- `category` (string): Optional category filter
- `hours_ahead` (integer): Look-ahead window (default 48h, max 168h)
- `min_open_interest` (number): Only markets with at least this OI

### `pg_kalshi_conflict_of_interest_check` (~196 tokens)

CFTC Rule 5.17(z) conflict-of-interest pre-trade check. Analyzes a Kalshi market's metadata to detect whether trading it would expose decision-makers (election candidates, government officials, athletes, regulators) to insider-trading liability. Pattern-matches against the Kalshi April 2026 disciplinary cases (Moran/Klein/Enriquez) and the CFTC Van Dyke complaint. Returns ALLOW/MONITOR/WARN/BLOCK recommendation + 0-100 score + reference cases. Cannot identify actual trader identity (Kalshi public API anonymizes users) — pair with internal surveillance for full enforcement.

Input parameters:

- `candidate_name` (string): Optional: specific person's name to match against title (e.g. 'Mark Moran')
- `event_ticker` (string): Or event_ticker for the whole event
- `ticker` (string): Kalshi market ticker

### `pg_prediction_market_integrity_gate` (~255 tokens)

Pre-trade integrity gate for AI agents and compliance teams. ONE call returns ALLOW/WARN/BLOCK decision + risk_level (0-100) + signed evidence receipt. Aggregates orderbook analysis, resolution-window risk, CFTC Rule 5.17(z) conflict-of-interest check, and (Polymarket) insider signal scan. Supports both Polymarket (slug) and Kalshi (ticker). Optional inputs: wallet (Polymarket-side checks), candidate name (Kalshi Rule 5.17(z) name match), amount_usd (amplifies risk for large bets on thin markets). Returns hashable + ECDSA-signed receipt for audit. Designed for x402 paywall pre-trade calls — agent pays once, gets binary go/no-go.

Input parameters:

- `amount_usd` (number): Optional: bet size for risk amplification
- `candidate` (string): Optional: candidate name for Kalshi Rule 5.17(z) name match
- `market_id` (string, required): Polymarket slug or Kalshi ticker/event_ticker
- `platform` (string, required): Which prediction market
- `wallet` (string): Optional: Polygon wallet address (Polymarket only)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-tooloracle-predictionguard/predictionguard-mcp#diagnostics

## Score history

- 2026-08-04: 62
- 2026-08-03: 62
- 2026-08-02: 61
- 2026-08-01: 61
- 2026-07-31: 60
- 2026-07-30: 60
- 2026-07-29: 60
- 2026-07-28: 59
- 2026-07-27: 58
- 2026-07-26: 58

## Links

- Remote endpoint: https://feedoracle.io/predictionguard/mcp/
- Repository: https://github.com/ToolOracle/predictionguard
- Changelog RSS feed: https://verifymcp.io/servers/io-tooloracle-predictionguard/predictionguard-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-tooloracle-predictionguard/predictionguard-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/io-tooloracle-predictionguard/predictionguard-mcp
