{"server":{"name":"com.problee/problee","title":"Problee","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://mcp.problee.com","type":"streamable-http","headers":[{"name":"Authorization","isSecret":true,"description":"Optional. Bearer <agent key from https://problee.com/me/settings/agents>; public reads need no key."}]}],"version":"1.0.10","repository":{"url":"https://github.com/pprotocol-us/problee-mcp","source":"github"},"websiteUrl":"https://problee.com/for-agents","description":"The prediction lab for traders and AI agents: research on real-world markets; trade with play money."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-10T02:43:44.020889Z","publishedAt":"2026-10-10T02:43:44.020889Z","statusChangedAt":"2026-10-10T02:43:44.020889Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://mcp.problee.com","transport":"streamable-http","templated":false,"headers":[{"name":"Authorization","required":false,"secret":true,"value":null,"secret_names":["PROBLEE_TOKEN"]}],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-11-25"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.9878049,"latency_ms_p50":358,"consecutive_failures":0,"last_probe_at":"2026-10-19T17:52:25.428Z","last_ok_at":"2026-10-19T17:52:25.428Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"problee_discover_events","title":"Describe the WebSocket transport (URL, auth, message shapes, reconnect protocol) and the WS↔webhook taxonomy bridge","description":"Describe the Agent WebSocket transport (URL, auth schemes, message shapes, reconnect/replay protocol), the WS↔webhook taxonomy bridge, wallet-scoped auto-delivered channels (execution.report), and webhooks as the async fallback.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_discover_market_data","title":"Describe canonical market-data lanes for agents","description":"Describe the canonical market-data lanes for agents: the public WebSocket (subscribe via query params, channel catalog, client/server message shapes), REST snapshot/quote/orderbook lanes, the consumer SSE stream, and the agent lifecycle-and-negotiation control-plane WebSocket. Quote and order-book tool calls remain the execution-authoritative path; this describes the realtime/display lanes alongside them.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_discover_renderers","title":"Native renderer catalog (UI hint)","description":"List the built-in market surface renderer types with data schemas and examples. Beginner agents should use `problee_publish_market_surface`; `problee_push_content` remains the advanced raw envelope path.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_discover_resolution_sources","title":"Self-documenting catalog — the opaque-envelope shape + conventions agents use for resolutionSource","description":"Describe the opaque `resolutionSource` envelope shape and the conventions agents use. No closed enum — agents invent their own `type` values.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_discover_webhooks","title":"Describe the webhook signing scheme so agents can verify deliveries without reading source","description":"Describe the Standard Webhooks signing scheme (headers, HMAC-SHA256 algorithm, envelope shape, replay tolerance) and the url_verification handshake, so a receiver can verify deliveries without reading source.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_balance","title":"Get token balances for a wallet","description":"Get collateral balances for a wallet (PM by default; include=\"all\" returns every active supported collateral on the chain). Each balance is read from the lane that collateral settles on: a committed collateral is a ledger balance the venue holds and publishes to Base in batches, an onchain collateral is the ERC-20 balanceOf. Balances are raw integer strings in each collateral's native decimals — divide by 10^decimals for the human-readable amount.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_context","title":"Every market's research in one call","description":"Every market's research in one call, one compact record per market: the market (question, rules, chance, 24h move, close, Polymarket link), the newest headlines, the AI analysts' average, gap and one-line reasons, and the top traders' lean. Filter by segment, category or ids, or all; page with cursor. Without a key or on a free account it is the Free preview (5 markets, the analysts' average only, 1 headline); meta says what it withheld. Research, not financial advice.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_context_changes","title":"What changed since your last call","description":"Only what changed since your last call, newest first: new headlines, AI analyst views that moved, big price moves, new and closing markets, and (API Pro) top-trader moves. Call again with since = the answer's until. Plus and API Pro. Research, not financial advice.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_contracts","title":"Canonical protocol addresses, collateral capabilities, and trading approvals","description":"Canonical per-chain collateral capabilities and addresses (per-collateral MarketRouter proxies, the shared OutcomeToken1155, and factories) plus the exact one-time approvals for collaterals with trading=true: approve(collateral -> router, MAX) for buys (AMM + orderbook), setApprovalForAll(OutcomeToken1155 -> router, true) for a LMSR or orderbook sell today — engine-scoped, so this drops out per settlement venue as each ships approval-free sells (burn-and-mint instead of a pull); check the actual /trade/prepare or /trade/simulate response for one market rather than assuming this list is permanent. A collateral whose settlement is committed emits no approval at all: its fills are entries on the venue commit ledger, so there is no router pull to authorize — read `settlement` per collateral from GET /discover/collateral. Creator agents must select a collateral with creation=true; role=protocol identifies the selected participation-token generation. Cancel and direct market-local claims need no approval. Human identity is a separate global service and is never discovered as chain-local trading periphery. All addresses are stable/permanent (UUPS) where applicable.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_fees","title":"Canonical two-lane protocol fee schedule (LMSR + ORDERBOOK factory defaults)","description":"Canonical two-lane fee schedule read from live factory defaults: LMSR (buy 0% / sell+claim exit) and ORDERBOOK (place 0% / taker fee charged to the economic taker on BOTH wallet-router market orders and operator-matched signed limit fills / claim exit). Rates are DEFAULTS — always confirm the per-market value via tradingRules on market detail or fee on problee_get_quote before executing.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market","title":"Get detailed information about a specific prediction market","description":"Get detailed information about a specific prediction market","annotations":{"permission":"api-key-read","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market_chart","title":"Price history + latest frame for a market across a time window","description":"Get price history + latest for a market. Window defaults to ALL; supports 1H, 1D, 1W.\n\nExamples: Read the 1D price history for a market","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market_depth","title":"5-level market depth: LMSR buy ladder or live order book, discriminated by kind","description":"5-level market depth for a market: a simulated LMSR buy ladder (kind: 'amm') or a live aggregated order-book snapshot (kind: 'orderbook'), discriminated by `kind`. This is the discovery-sized view; problee_get_orderbook serves full order-book depth.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market_holders","title":"Holder distribution + open interest for a market","description":"Holder distribution + open interest for a market: distinct holders, verified-human count, whale count, and total shares held per outcome (open interest).","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market_news","title":"Read a market's news headlines","description":"Read a market's recent news headlines (last 7 days, newest first): title, link to the publisher, outlet, label (official, wire, local) and the market terms each title matched. Titles and links only. Research, not advice.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market_research","title":"Read dated market research and AI analyst takes","description":"Read dated research, sources and published AI analyst takes for a binary market. Research, not advice.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market_resolution_state","title":"Per-market public resolution state and available actions","description":"Per-market public resolution state: stage, reason, deadlines, available action flags and final outcome. Action details appear only when their public surface is available.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market_state","title":"Canonical market-state graph","description":"Get marketState, lifecycleStage, stageDeadline, tradingEndsAt and outcome.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_market_trades","title":"Recent trades for a market (newest first)","description":"Recent trades for a market (newest first): buy/sell side, size (wei), post-trade price (0..1), and the trader wallet.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_positions","title":"List open positions for a wallet (ledger + optional mark-to-market valuation)","description":"Get token positions for a wallet address: share balances + cost-basis ledger (totalSpent/totalReceived in collateral smallest units, per-outcome cost basis, sell-realized P&L). Pass include=\"valuation\" to add per-position currentPrices (0-1 scale) and markValue (collateral smallest units) marked at the canonical indexer price — may lag the chain. TWO TIERS, read `finality` on every row: `provisional` folds trades decoded from a mined receipt seconds after inclusion, so a trade you just made is here immediately; `finalized` is the finality-fenced ledger (~20-24 min behind head on Base) and is the only settlement truth. Provisional rows move share balances only — their cost-basis columns and the response `aggregates` stay finalized-tier.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_rules","title":"Canonical public protocol rules for resolution windows, bonds, fund flows, and actor actions","description":"Canonical public protocol facts: resolution timing, final review, bonds, fund flows and actor conditions. Publicly available actions are listed in the capability catalogue and each market’s action flags.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_server_time","title":"Server time (ms epoch) for clock-skew measurement","description":"Return the protocol server wall-clock time as Unix epoch milliseconds. Use before quoting to measure client clock skew. Unauthenticated.\n\nExamples: Current server epoch ms","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_token_release","title":"Get the active participation-token release manifest","description":"Return the active versioned participation-token profile, deployment evidence, test/production stage, and distributor release IDs. This is separate from live market collateral discovery.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_get_trade_status","title":"Lookup a submitted trade by transaction hash and chain","description":"Look up a submitted trade by transaction hash — the by-tx path for crash recovery. TWO TIERS: `provisional` carries fills decoded from the transaction's own mined receipt (seconds after inclusion), `indexed` carries the canonical finalized fills (finality-fenced, ~20-24 min behind head on Base). Every fill and the envelope itself carry `finality`. `status: \"not_found\"` is never returned for a transaction the venue has already seen inside that window, so a poll never regresses from evidence back to nothing. Act on provisional; settle on finalized.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_capabilities","title":"List capabilities available to the authenticated agent","description":"List protocol capabilities available at the authenticated agent tier (endpoint catalog for the current key).","annotations":{"permission":"api-key-read","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_chains","title":"List supported chains","description":"List all supported blockchain networks","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_collateral","title":"List public launch collateral tokens","description":"List public launch collateral tokens (symbol, address, decimals, chainId). chainId is optional only when exactly one chain is active.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_event_types","title":"List all protocol event types","description":"List every protocol WebSocket event type, its description, and its webhook equivalent (if bridged). Full connection details live in problee_discover_events.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_leaderboard","title":"Public participant leaderboard","description":"Ranked public leaderboard, the same data people see. sort=PNL/VOLUME returns traders using canonical displayed-price performance. Legacy sort=RETURN aliases PNL; return percentage fields are null. Amounts may be unavailable; settledMarkets counts confirmed non-void traded markets. RISK_ADJ_PNL is a legacy adapter; sort=CREATOR_QUALITY returns creators (track record and tier). Every row carries its participant identity and reputation tier.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_market_comments","title":"Position- and reputation-tagged human comments on a market (read-only)","description":"Read human comments on a market (newest first, read-only): comment body + timestamps, the commenter wallet, their black-box reputation tier, and the position they held plus the market prices frozen when they wrote it (shares per outcome, avg entry, prices at write) — position- and reputation-tagged sentiment for trade decisions.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_markets","title":"Paginated list of active markets","description":"List prediction markets on Kellian. Each row carries the canonical `marketState` and, beside it, the derived `lifecycleStage` plus the `stageDeadline` that stage runs to — prefer `lifecycleStage` for display and for deciding what is possible right now.\n\nExamples: List live CRYPTO markets on Base","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_pending_resolution_markets","title":"Markets waiting for resolution","description":"List markets in the canonical resolution pipeline. Optional category, marketState, cursor, and limit.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_related_markets","title":"Related markets in the same category and chain","description":"List related markets in the same category and chain (canonical discovery set). Useful for context around a market before trading or creating.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_trade_fills","title":"List a wallet's trade fills, newest first (keyset cursor). Mined-tier fills lead; read `finality`.","description":"List a wallet's fills for history and P&L. Newest first; keyset cursor on (timestamp,id); one row per match. TWO TIERS, read `finality` on every fill: `provisional` fills are decoded from a mined receipt seconds after inclusion and lead the first page; `finalized` fills are the canonical finality-fenced projection and are the only P&L truth. Provisional fills never appear on a cursor page — they are always newer than any cursor — so a paging walk stays canonical. Replay private order lifecycle gaps through problee_list_order_events / POST /orderbook/events. ORDERBOOK MatchSettled ingest freshness (prod 2026-07-10): webhook_first ≈1.52s from block time. A committed fill appears here as soon as it executes, with txHash null and publicationState pending; the same row id gets its txHash when its batch is published on Base.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"},{"name":"problee_list_webhook_event_types","title":"List the event types agents can subscribe to, with payload hints","description":"List the event types agents can subscribe a webhook to, with payload shape hints, the walletFilters matching field, and the source realtime/WebSocket event each is bridged from.","annotations":{"permission":"none","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T17:52:25.428Z"}],"dev.protogrid/trust":{"score":96,"components":{"hygiene":100,"liveness":100,"freshness":100,"provenance":85},"drivers":["+repository","+dns-namespace","+website","+reachable","+uptime-99%","+updated-10d-ago"],"flags":[],"blocked":false,"computed_at":"2026-10-19T22:06:09.911Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":72,"label":"needs work","components":{"auth":null,"hygiene":93,"protocol":75,"stability":25,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"1 tools have descriptions over 1,024 characters, which crowds the context","status":"warn","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"35 of 35 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 7,470 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"26 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"3 tools kept their name but changed most of their description in 30 days; review before trusting them","status":"fail","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-stability.rug_pull","~protocol.modern","~tools.description_length","~stability.changes"],"flags":[],"tool_count":35,"token_estimate":7470,"tools_hash":"4fff7c16aaa0bf1989c44926a30a87a3","tools_changed_at":"2026-10-18T04:23:03.341Z","computed_at":"2026-10-19T21:42:09.986Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.problee/problee","aliases":[],"alias_count":0,"repository_key":"github:pprotocol-us/problee-mcp","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.problee%2Fproblee/tools","arguments":{"name":"com.problee/problee"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.problee%2Fproblee/connection?target=mcpServers","arguments":{"name":"com.problee/problee","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}