Koskamo

Prediction Market Rule Check MCP

An MCP server that risk-scores settlement rules for Polymarket and Kalshi prediction markets, providing flags for discretion, vague sources, and deadline traps. It also offers live market data, weather settlement history, and sports doubles feeds via free or paid tiers.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Prediction Market Rule Check MCP logo, by Donnie MorrisonCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Donnie Morrison
MCP endpoint (Streamable HTTP)
https://prediction-rules-mcp.donniertf.workers.dev/mcp
Vendor documentation

What you can do with it

  • Risk-score Polymarket settlement rules for specific markets
  • Scan live Polymarket markets for risky settlement wording
  • Retrieve Kalshi weather series and settlement data
  • Get daily sports doubles picks and historical records

Source and maintenance

Community listingRegistry 1.3.0
Maintenance checked

Protocol and capabilities

Server
prediction-rules-mcp 1.4.0
MCP protocol
2025-06-18
Tools
12 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Prediction Market Rule Check. rule_check is free. Subscribe (£12/month, cancel anytime) at https://prediction-rules-mcp.donniertf.workers.dev/buy for the paid tools, then pass access_token.

Tools

12 advertised

rule_check
Advertised by the server during the last successful anonymous check.

FREE. Risk-score the settlement rules of a Polymarket market (slug or search words): flags discretion, vague sources, cancellation and deadline traps. Top 2 markets.

rule_check input schema
{
  "type": "object",
  "required": [
    "market"
  ],
  "properties": {
    "market": {
      "type": "string",
      "description": "Polymarket slug or search words"
    }
  }
}
rule_check_full
Advertised by the server during the last successful anonymous check.

PRO. Full rule text + resolution source + all flags for up to 10 Polymarket markets matching a slug or search.

rule_check_full input schema
{
  "type": "object",
  "required": [
    "market"
  ],
  "properties": {
    "market": {
      "type": "string"
    },
    "access_token": {
      "type": "string",
      "description": "Subscriber token from /success (or Authorization: Bearer)"
    }
  }
}
kalshi_check
Advertised by the server during the last successful anonymous check.

PRO. Risk-score a Kalshi market's rules by ticker (rules_primary + rules_secondary).

kalshi_check input schema
{
  "type": "object",
  "required": [
    "ticker"
  ],
  "properties": {
    "ticker": {
      "type": "string"
    },
    "access_token": {
      "type": "string",
      "description": "Subscriber token from /success (or Authorization: Bearer)"
    }
  }
}
scan_risky
Advertised by the server during the last successful anonymous check.

PRO. Scan the top live Polymarket markets by volume and list the ones with the riskiest settlement wording.

scan_risky input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number"
    },
    "min_score": {
      "type": "number"
    },
    "access_token": {
      "type": "string",
      "description": "Subscriber token from /success (or Authorization: Bearer)"
    }
  }
}
market_lookup
Advertised by the server during the last successful anonymous check.

FREE. Live price, volume and close time for ONE prediction market in the normalised Polymarket+Kalshi schema. Give a Polymarket slug or a Kalshi ticker.

market_lookup input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Polymarket market slug (e.g. will-x-happen) or Kalshi market ticker (e.g. KXFEDDECISION-26DEC-H0)"
    }
  }
}
live_markets
Advertised by the server during the last successful anonymous check.

PAID $0.02/call (x402) or subscription. Live open markets from Polymarket and Kalshi in one schema, ranked by 24h volume within each venue (interleaved). Filter by venue or text.

live_markets input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "1-100, default 25"
    },
    "venue": {
      "enum": [
        "all",
        "polymarket",
        "kalshi"
      ],
      "type": "string",
      "description": "Default all"
    },
    "contains": {
      "type": "string",
      "description": "Optional text filter on question"
    },
    "access_token": {
      "type": "string",
      "description": "Subscriber token from /success (or Authorization: Bearer)"
    }
  }
}
search_markets
Advertised by the server during the last successful anonymous check.

PAID $0.02/call (x402) or subscription. Keyword search across live Polymarket and Kalshi markets (e.g. 'fed rate', 'bitcoin', 'election'); normalised prices and volumes.

search_markets input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "description": "1-50, default 20"
    },
    "query": {
      "type": "string"
    },
    "venue": {
      "enum": [
        "all",
        "polymarket",
        "kalshi"
      ],
      "type": "string",
      "description": "Default all"
    },
    "access_token": {
      "type": "string",
      "description": "Subscriber token from /success (or Authorization: Bearer)"
    }
  }
}
top_movers
Advertised by the server during the last successful anonymous check.

PAID $0.02/call (x402) or subscription. Live markets with the biggest 24h price moves on Polymarket and Kalshi, in one schema.

top_movers input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "1-50, default 15"
    },
    "venue": {
      "enum": [
        "all",
        "polymarket",
        "kalshi"
      ],
      "type": "string",
      "description": "Default all"
    },
    "access_token": {
      "type": "string",
      "description": "Subscriber token from /success (or Authorization: Bearer)"
    }
  }
}
doubles_record
Advertised by the server during the last successful anonymous check.

FREE. Sports doubles feed (info only, 18+): the full SETTLED record of Grok Double Bot's daily doubles, every pick including losses, with legs, odds at tip time and result; won/lost/void counts, win rate, average combined odds and running profit on a flat £10 stake. Never shows unsettled picks. Information only, not betting advice. No guaranteed returns. 18+. BeGambleAware.org

doubles_record input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Most recent N settled picks to list (1-500, default all up to 500). Stats always cover the full record."
    }
  }
}
doubles_today
Advertised by the server during the last successful anonymous check.

PAID $1.00/call (x402 USDC on Base; one call returns the whole day's picks, so $1 a day) or the $15/month doubles plan. Not included in the £12/month plan, bundle passes or trial keys. Sports doubles feed (info only, 18+): today's stats-led doubles from Grok Double Bot with legs, kick-off/start times (UK), odds at tip time, combined odds, confidence and rationale. Information only, not betting advice. No guaranteed returns. 18+. BeGambleAware.org

doubles_today input schema
{
  "type": "object",
  "properties": {
    "access_token": {
      "type": "string",
      "description": "$15/month doubles plan token from /success (or Authorization: Bearer)"
    }
  }
}
kalshi_weather_series
Advertised by the server during the last successful anonymous check.

FREE. List Kalshi weather series (daily high/low temperature, rain, snow) by city or keyword, with series ticker, frequency and official settlement source. Use the ticker with kalshi_weather_settlements. Information only, not betting advice. Historical settlements do not predict future results. 18+. BeGambleAware.org

kalshi_weather_series input schema
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City or keyword, e.g. London, NYC, Chicago"
    },
    "kind": {
      "enum": [
        "high",
        "low",
        "rain",
        "snow"
      ],
      "type": "string"
    },
    "limit": {
      "type": "number",
      "description": "default 25, max 100"
    }
  }
}
kalshi_weather_settlements
Advertised by the server during the last successful anonymous check.

PAID $0.02/call (x402) or subscription / bundle pass. Settled Kalshi weather markets for a series (e.g. KXHIGHNY) or city: per market the ticker, close date, exact close_time (ISO 8601 UTC, Z) and close_time_local (ISO with the city's UTC offset; local_tz IANA zone, null if unknown), settlement_time (Kalshi settlement timestamp, ISO UTC; null if Kalshi gives none) and close_to_settlement_seconds / close_to_settlement_minutes (gap from close to settlement, to spot late settlements or revisions), expiration_time, strike/bucket, yes/no result and settlement payout, plus the observed settlement value per day and the official settlement source. Optional date range. Information only, not betting advice. Historical settlements do not predict future results. 18+. BeGambleAware.org

kalshi_weather_settlements input schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "description": "Close date to, YYYY-MM-DD"
    },
    "city": {
      "type": "string",
      "description": "Alternative to series: city/station keyword (e.g. London, Chicago)"
    },
    "from": {
      "type": "string",
      "description": "Close date from, YYYY-MM-DD"
    },
    "kind": {
      "enum": [
        "high",
        "low",
        "rain",
        "snow"
      ],
      "type": "string",
      "description": "With city: which series type (default high)"
    },
    "limit": {
      "type": "number",
      "description": "Max markets, default 100, max 500"
    },
    "series": {
      "type": "string",
      "description": "Series ticker, e.g. KXHIGHNY, KXHIGHTEGLL, KXRAINNYC"
    },
    "access_token": {
      "type": "string",
      "description": "Subscriber token from /success (or Authorization: Bearer)"
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
558 ms
95th percentile latency
558 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 558 ms · metadata changed · 12 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http prediction-market-rule-check-mcp https://prediction-rules-mcp.donniertf.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add prediction-market-rule-check-mcp --url https://prediction-rules-mcp.donniertf.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable prediction-market-rule-check-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "prediction-market-rule-check-mcp": {
      "url": "https://prediction-rules-mcp.donniertf.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "prediction-market-rule-check-mcp": {
      "type": "streamableHttp",
      "url": "https://prediction-rules-mcp.donniertf.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start prediction-market-rule-check-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "prediction-market-rule-check-mcp": {
      "type": "http",
      "url": "https://prediction-rules-mcp.donniertf.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http prediction-market-rule-check-mcp https://prediction-rules-mcp.donniertf.workers.dev/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "prediction-market-rule-check-mcp": {
      "url": "https://prediction-rules-mcp.donniertf.workers.dev/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "prediction-market-rule-check-mcp": {
      "serverUrl": "https://prediction-rules-mcp.donniertf.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Prediction Market Rule Check MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.