# bet_research

Research a Polymarket bet by pulling the relevant Pipeworx data for it in one call. Pass a market slug ("will-bitcoin-hit-150k-by-june-30-2026"), a polymarket.com URL, or a question text. The tool resolves the market, classifies the bet, fans out to category-specific data packs in parallel, and returns an evidence packet + simple market-vs-model comparison. Use for "should I bet on X", "what does the data say about Y", or "is there edge in Z". CLASSIFIERS: crypto_price, fed_rate, geopolitical, sports, sports_championship, drug_approval, election_candidate, tech_launch, space_launch, corporate, corporate_earnings, corporate_event, public_figure_speech, weather, other. FAN-OUT EXAMPLES: BTC bet → coingecko + fred + gdelt+gnews; Fed bet → fred (DFEDTARU + EFFR + CPIAUCSL) + kalshi_macro (KXFED implied probs) + recent_fed_actions (federal-register rules, last 365d); Hormuz bet → imf_portwatch + airspace + gdelt; Yankees WS → mlb_stats_standings + parent_event partition + news; hottest-year bet → climate_projection_nyc + gistemp_latest (NASA global anomaly, rank since 1880) + news; NVDA-vs-AAPL → finnhub get_quote + edgar shares-outstanding (derived market cap) + edgar filings + news. RESPONSE SHAPES: result.market carries best_bid/best_ask/spread_pp/liquidity/price_change_1h/1d/1w; result.analysis carries model_probability/edge_pp/kelly_fraction_half when a closed-form model fires PLUS a 24h-move warning ("Market moved X.Xpp in 24h, comparable to model edge — your edge may already be priced in") when relevant; result.evidence is keyed by source. RESOLVER CONTRACT: result.market_match_confidence ∈ {high, medium, low, none}, market_match_score (0-1 token-overlap), market_match_alternatives[] (other candidate markets the resolver considered), and suggestions[] (explicit re-query hints when the match is fuzzy) — ALWAYS inspect these before trusting the analysis block, because medium/low matches can still surface other fields. PARENT_EVENT EXTRACTOR: when the bet is one leg of a partition (Yankees WS, Romania election), result.parent_event{matched_candidate, top_legs_by_price[], partition_size, placeholders_filtered} gives you the peer prices in one place — that's the headline for elections/championships. NEWS FIELDS: news entries carry _fallback_attempted / _fallback_failed_reason / retry_after_sec when GDELT 429s and GNews backfill ran or failed. SAFETY: low-confidence resolutions short-circuit with status:"low_confidence_match" and suppress analysis fields so agents can't accidentally size on phantom matches. Closed/dead markets that ARE still indexed by Polymarket (yes_price≈0, no volume, no liquidity) return status:"market_closed_or_inactive" and skip fan-out. In practice resolved markets are usually de-indexed and instead surface via the low_confidence_match path above — both routes are BLOCKING, just different mechanisms. Wide-spread markets (>10pp) carry tradeability:"illiquid_wide_spread" + an explanatory note. RESOLUTION-RULE RISK: market.cancellation_rule parses the void/postponement settlement out of the resolution text — refund_50_50 (shares settle flat 50¢ on void; EV-material for any entry away from 50¢, with ev_impact quantified), resolves_no_on_cancel, resolves_yes_on_cancel, carries_to_reschedule, or mentioned_unclear. null means the description never mentions cancellation. Check this before sizing sports/esports/event-occurrence bets — audited arb-bot ledgers show flat-50¢ void settlements are a recurring pure-rules loss.

Agent View of the PolicyLayer registry record for `bet_research`. HTML page: https://policylayer.com/tools/io-github-pipeworx-io-linear/bet-research

## Facts

- Tool: `bet_research`
- Server: Linear (`https://gateway.pipeworx.io/linear/mcp`) — https://policylayer.com/tools/io-github-pipeworx-io-linear.md
- Homepage: https://github.com/pipeworx-io/mcp-linear
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: yes
- Parameters: 3 (1 required)
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `depth` | string | no | quick = 2-3 evidence sources, thorough = full fan-out. Default thorough. |
| `market` | string | yes | Polymarket slug ("will-bitcoin-hit-150k-by-june-30-2026"), full URL ("https://polymarket.com/event/..."), or question text ("Will Bitcoin hit $150k by June 30?" |
| `include_raw` | boolean | no | Default false. When false (recommended), FRED/FDA/GDELT/Federal-Register evidence is summarized to the few fields agents actually use — keeps responses under ~2 |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "bet_research",
    "arguments": {
      "market": "<market>"
    }
  }
}
```

## Why bet_research is rated Low

This tool performs research and analysis by querying and retrieving data from Polymarket and internal Pipeworx systems. It aggregates information to support decision-making ('should I bet on X', 'what does the data say about Y') but does not execute trades, move money, create/modify records, or trigger external state changes. The output is informational only.

From the tool's own definition: "The tool 'pulls the relevant Pipeworx data', 'resolves the market', 'classifies the bet', and 'returns an evidence packet + simple market-vs-model comparison'."

## Use case

AI agents call bet_research to retrieve information from Linear without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Linear:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "bet_research": {}
  }
}
```

## Other tools on Linear (35)

- `forget` — Destructive — https://policylayer.com/tools/io-github-pipeworx-io-linear/forget.md
- `generate_llms_txt` — Execute — https://policylayer.com/tools/io-github-pipeworx-io-linear/generate-llms-txt.md
- `polymarket_edges` — Financial — https://policylayer.com/tools/io-github-pipeworx-io-linear/polymarket-edges.md
- `polymarket_fill_risk` — Financial — https://policylayer.com/tools/io-github-pipeworx-io-linear/polymarket-fill-risk.md
- `ai_visibility_check` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/ai-visibility-check.md
- `ask_pipeworx` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/ask-pipeworx.md
- `ask_pipeworx_beta` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/ask-pipeworx-beta.md
- `ask_pipeworx_grounded` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/ask-pipeworx-grounded.md
- `compare_entities` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/compare-entities.md
- `deep_research` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/deep-research.md
- `discover_tools` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/discover-tools.md
- `entity_profile` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/entity-profile.md
- `linear_get_issue` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/linear-get-issue.md
- `linear_list_issues` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/linear-list-issues.md
- `linear_list_teams` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/linear-list-teams.md
- `linear_search` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/linear-search.md
- `list_subscriptions` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/list-subscriptions.md
- `pipeworx_trending` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/pipeworx-trending.md
- `polymarket_arbitrage` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/polymarket-arbitrage.md
- `polymarket_edge_tracker` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/polymarket-edge-tracker.md
- `polymarket_kalshi_spread` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/polymarket-kalshi-spread.md
- `recall` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/recall.md
- `recent_alerts` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/recent-alerts.md
- `recent_changes` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/recent-changes.md
- `resolve_entity` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/resolve-entity.md
- `scan_competitor_ai_presence` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/scan-competitor-ai-presence.md
- `scan_dependency` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/scan-dependency.md
- `search_within` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/search-within.md
- `suggest_questions` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/suggest-questions.md
- `validate_claim` — Read — https://policylayer.com/tools/io-github-pipeworx-io-linear/validate-claim.md
- …and 5 more: https://policylayer.com/tools/io-github-pipeworx-io-linear.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-pipeworx-io-linear · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-pipeworx-io-linear
