# polymarket_fill_risk

Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of market (single-market mode) or event (basket/partition mode). SINGLE-MARKET: pass a market slug/URL + side (buy_yes|sell_yes|buy_no|sell_no, default buy_yes) + size_usd (default 1000 — max spend on buys, target proceeds on sells); walks the ladder and returns top_of_book, vwap_fill_price, slippage_pp, shares_filled, max_fillable_usd, and a verdict (clean|degraded|cannot_fill). BASKET: pass an event slug/URL + side (sell_yes = capture overround by selling every leg, buy_yes = capture underround; default auto from partition sum) + size_usd interpreted as settlement notional S (shares per leg; each share pays $1); returns theoretical_sum vs realizable_sum (top-of-book vs VWAP across all legs), capture_ratio, profit_usd at executed size, per-leg fill detail, thin_legs[], max_clean_notional_usd, and forced_directional_risk naming the legs most likely to strand you unhedged. USE THIS before acting on any polymarket_arbitrage SELL/BUY-EVERY-LEG signal or any polymarket_edges trade above ~$500 — theoretical overround on thin books is not capturable, and partial basket fills convert an arb into an unhedged directional position (the dominant loss mode in real arb-bot P&L).

Agent View of the PolicyLayer registry record for `polymarket_fill_risk`. HTML page: https://policylayer.com/tools/io-github-pipeworx-io-19hz/polymarket-fill-risk

## Facts

- Tool: `polymarket_fill_risk`
- Server: 19hz (`https://gateway.pipeworx.io/19hz/mcp`) — https://policylayer.com/tools/io-github-pipeworx-io-19hz.md
- Homepage: https://github.com/pipeworx-io/mcp-19hz
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: yes
- Parameters: 4
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `side` | string | no | Single-market: buy_yes \| sell_yes \| buy_no \| sell_no (default buy_yes). Basket: sell_yes \| buy_yes (default auto — sell if partition sum > 1, buy if < 1). |
| `event` | string | no | Basket mode: event slug or full polymarket.com URL — checks every leg of the partition. |
| `market` | string | no | Single-market mode: market slug or full polymarket.com URL. |
| `size_usd` | number | no | Single-market: USD to spend (buys) or target proceeds (sells). Basket: settlement notional — shares per leg, each paying $1 at resolution. Default 1000, clamp 1 |

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": "polymarket_fill_risk",
    "arguments": {}
  }
}
```

## Why polymarket_fill_risk is rated Medium

An AI agent can call polymarket_fill_risk faster than any human can review: one bad instruction and it creates or modifies resources in 19hz by the hundred, each call as confident as the last.

Risk signals: Bulk/mass operation — affects multiple targets

## Use case

AI agents use polymarket_fill_risk to create or update resources in 19hz, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your 19hz environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches 19hz:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "polymarket_fill_risk": {
      "limits": [
        {
          "counter": "polymarket_fill_risk_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on 19hz (31)

- `forget` — Destructive — https://policylayer.com/tools/io-github-pipeworx-io-19hz/forget.md
- `polymarket_arbitrage` — Financial — https://policylayer.com/tools/io-github-pipeworx-io-19hz/polymarket-arbitrage.md
- `polymarket_edges` — Financial — https://policylayer.com/tools/io-github-pipeworx-io-19hz/polymarket-edges.md
- `ai_visibility_check` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/ai-visibility-check.md
- `ask_pipeworx` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/ask-pipeworx.md
- `ask_pipeworx_grounded` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/ask-pipeworx-grounded.md
- `bet_research` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/bet-research.md
- `compare_entities` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/compare-entities.md
- `deep_research` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/deep-research.md
- `discover_tools` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/discover-tools.md
- `entity_profile` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/entity-profile.md
- `events` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/events.md
- `list_subscriptions` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/list-subscriptions.md
- `pipeworx_trending` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/pipeworx-trending.md
- `polymarket_edge_tracker` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/polymarket-edge-tracker.md
- `polymarket_kalshi_spread` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/polymarket-kalshi-spread.md
- `recall` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/recall.md
- `recent_alerts` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/recent-alerts.md
- `recent_changes` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/recent-changes.md
- `regions` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/regions.md
- `resolve_entity` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/resolve-entity.md
- `scan_competitor_ai_presence` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/scan-competitor-ai-presence.md
- `scan_dependency` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/scan-dependency.md
- `search_within` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/search-within.md
- `suggest_questions` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/suggest-questions.md
- `validate_claim` — Read — https://policylayer.com/tools/io-github-pipeworx-io-19hz/validate-claim.md
- `generate_llms_txt` — Write — https://policylayer.com/tools/io-github-pipeworx-io-19hz/generate-llms-txt.md
- `pipeworx_feedback` — Write — https://policylayer.com/tools/io-github-pipeworx-io-19hz/pipeworx-feedback.md
- `remember` — Write — https://policylayer.com/tools/io-github-pipeworx-io-19hz/remember.md
- `subscribe` — Write — https://policylayer.com/tools/io-github-pipeworx-io-19hz/subscribe.md
- …and 1 more: https://policylayer.com/tools/io-github-pipeworx-io-19hz.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-19hz · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-pipeworx-io-19hz
