Skip to main content
Glama

Polymarket Arbitrage

polymarket_arbitrage
Read-onlyIdempotent

Find arbitrage opportunities on Polymarket via monotonicity violations + partition-sum checks. Call with NO args for a trending_scan of the top ~200 markets by weekly volume; pass event for the strongest per-event partition_check, or topic for a themed cross-event scan. event (recommended for a specific market): pass a Polymarket event slug like "fed-decision-may-2026" or "when-will-bitcoin-hit-150k"; walks child markets, checks date-axis / threshold-axis ordering AND computes the partition_check (sum of YES prices across mutually-exclusive legs — should ≈1; deviations >3pp emit a BUY/SELL EVERY LEG signal). topic (for cross-event scanning): pass a seed question like "Strait of Hormuz traffic returns to normal" or "Fed rate decision"; searches related events across the platform, flattens markets, runs the comparator on the union. Cross-event mode catches "...by May 31" vs "...by Jun 30" patterns that single-event misses. SEMANTIC ANCHOR: cross-event pairs require ≥0.30 Jaccard similarity on question tokens (prevents Powell-Fed-Pause being paired with Powell-DOJ-probe); skipped_low_similarity surfaces the rejected pair count. PARTITION FILTER: drops will-person-X / will-manager-Y / will-someone-else- placeholder slugs; partitions with >20% placeholder fraction return null arb signal. Response: opportunities[] (gap_pp, suggested_trade, reasoning, monotonicity violation context), and in event mode partition_check{sum_yes_prices, gap_from_1, placeholders_filtered, suggested_trade}. FILL CHECK: when the partition signal fires, arbitrage.fill_check prices it against live CLOB depth (theoretical_edge_pp_at_book vs realizable_edge_pp at 1000 shares/leg, thin_legs[]) — realizable_edge_pp ≤ 0 means the overround exists only at last-trade, not in the book; do not trade it. For custom sizing use polymarket_fill_risk.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
eventNoSingle-event mode (use this if you know the specific Polymarket event): event slug like "fed-decision-may-2026" or "when-will-bitcoin-hit-150k". Full Polymarket URLs also accepted.
topicNoCross-event mode (use this if you want to scan related events across the platform): a topic or seed question like "Fed rate decision" or "Strait of Hormuz traffic returns to normal". Tool searches Polymarket for related events and checks monotonicity across them.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only, open-world, idempotent, non-destructive. Description adds significant behavioral context: Jaccard similarity threshold (≥0.30), partition placeholder filter (>20% placeholder returns null), live CLOB depth fill check (realizable_edge_pp ≤ 0 means don't trade). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections for each mode, but somewhat verbose. Essential information is present and front-loaded, but some redundancy could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description details response structure (opportunities[], partition_check, fill check fields). However, it doesn't list all possible sub-fields comprehensively, leaving minor gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with meaningful descriptions. Description adds rich context: examples of event slugs ('fed-decision-may-2026'), topic seed questions ('Fed rate decision'), and behavior details for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('find') and resource ('arbitrage opportunities on Polymarket') with clear methods ('monotonicity violations + partition-sum checks'). It distinguishes from sibling tools like polymarket_edges and polymarket_fill_risk by focusing on arbitrage detection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly guides when to use each mode: 'Call with NO args for a trending_scan', 'event (recommended for a specific market)', 'topic (for cross-event scanning)'. Also provides when-not-to-trade guidance via fill check and refers to polymarket_fill_risk for custom sizing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation3/5

Most tools have distinct purposes, but several clusters overlap: ask_pipeworx vs ask_pipeworx_beta are currently functionally identical, polymarket_arbitrage / polymarket_edges / polymarket_kalshi_spread all hunt mispricings via different mechanisms, ai_visibility_check is wrapped by scan_competitor_ai_presence, and discover_tools vs suggest_questions both serve tool discovery. The rich descriptions mitigate but do not eliminate misselection risk.

Naming Consistency4/5

Names are all snake_case and follow recognizable conventions: verb_noun for actions (compare_entities, resolve_entity, validate_claim), domain-prefixed families (polymarket_*, pipeworx_*, recent_*, ask_pipeworx_*), and a few bare verbs (remember, recall, query). Minor deviations like bet_research (noun_verb) and noun-only names (datasets, metadata) break the pattern, but the overall scheme is predictable.

Tool Count2/5

At 34 tools, this exceeds the 25+ threshold for 'too many' and bundles several distinct domains — general data querying, prediction markets, AI visibility, memory, subscriptions, open data, and npm auditing — into one server. The breadth is defensible for a data platform, but the agent-facing surface is sprawling and would benefit from splitting into focused servers.

Completeness4/5

The core data workflow is well covered: discover (discover_tools, suggest_questions), resolve (resolve_entity), query (ask_pipeworx), ground (ask_pipeworx_grounded, validate_claim), research (deep_research), compare (compare_entities), profile (entity_profile), and changes (recent_changes). Prediction markets, memory, and subscriptions each have full lifecycles. The main gap is no tool for fetching returned pipeworx:// citation URIs directly, plus a few soft-failing sources.