DEV Community

2x lazymac
2x lazymac

Posted on

I built a $19/mo Polymarket MCP server in 1 hour — here's the math behind the lottery_filter tool

TL;DR

I shipped @lazymac/polymarket-intel-mcp (v0.1.0, MIT) on npm yesterday after my own bot lost 77% on Polymarket from low-price lottery picks. The MCP exposes 6 tools to any Claude / Cursor / Windsurf MCP client, with one tool — lottery_filter — directly encoding the lessons.

Key tool: lottery_filter(min_price, max_price) — returns active markets in the safer 0.20-0.92 zone, excluding the 5-20¢ tail-bias trap that CEPR's Feb 2026 research (analyzing 300K+ Kalshi contracts) showed loses 60% of capital due to long-shot bias.

claude mcp add polymarket-intel --scope user -- npx -y @lazymac/polymarket-intel-mcp@latest
Enter fullscreen mode Exit fullscreen mode

The expensive lesson

I ran a Polymarket bot for 3 months. End state: 86 active positions, $275 cost basis, $199 current value, -28% unrealized. Worse, the breakdown by entry price was textbook long-shot bias:

Entry price Positions PnL
<$0.05 28 -69.3%
$0.05-0.10 10 -43.0%
$0.10-0.30 20 -31.9%
$0.30-0.50 14 -38.9%
$0.50+ 14 +3.4% ← only profitable bucket

The pattern matches CEPR's research exactly: cheap contracts win less than their price implies. My bot was systematically eating tail-bias losses while believing it was finding "value".

The fix that became a product

After hardening the bot (v39.2 — MIN_EDGE 4%, ENTRY_PRICE 0.20-0.92, dany_test LLM gate), I realized the filter logic itself is generic — any AI agent researching prediction markets could benefit from it.

So I wrapped it in an MCP server. ~200 lines of JS. 6 tools:

search_markets(query)          # keyword search (gamma-api)
get_market(slug)                # full detail
market_orderbook(token_id)      # depth
top_movers(direction)           # 24h biggest moves
lottery_filter(min, max)        # ★ the v39.2 logic
portfolio_snapshot(wallet)      # public wallet summary
Enter fullscreen mode Exit fullscreen mode

The data layer is Polymarket's public APIs (gamma-api, clob, data-api) — no auth, no rate limit issues for personal use.

Pricing math

  • Free: personal use. Anyone with Claude Code / Cursor / any MCP client can install today.
  • $19/mo Pro (coming via MCPize): rate-limit bypass, alpha signal feed, volume-weighted edge ranking on lottery_filter_pro.

Why $19? The MCP market analysis I did showed:

  • Top creators: $3K-$10K/month (Jowwii, Medium 2026)
  • Server pricing: $19/mo casual vs $99-$149/mo enterprise
  • 11,000+ MCP servers exist; less than 5% are monetized (MCPize data)

That last number is why I shipped fast. Early-mover window before the market crowds.

The build (timeline, no-fluff)

  • 0:00 — npm init + package.json with MCP SDK dependency
  • 0:15 — wrote 6 tool handlers (~150 lines)
  • 0:30 — node src/index.js — sees [ready (v0.1.0)]
  • 0:35 — registered locally: claude mcp add polymarket-intel --scope user
  • 0:45 — README with pricing + use cases
  • 1:00 — npm publish --access public

Done. v0.1.0 on the registry. Anyone can install it now.

The principle

If you have proven domain pain (mine: lost real money), wrap the lesson as a tool. Don't build "another wrapper". Build something that prevents the same failure for someone else.

Polymarket's ~1500 active markets daily, AI agents are increasingly running prediction-market research, and the tail-bias trap is documented academically. The TAM is small but the product is sharp.

Next

  • MCPize listing (Pro tier launch)
  • top_arbitrage tool (binary YES+NO < $0.99 catch)
  • KIS Korean stock analysis MCP (same principle, different market)

Source: github.com/lazymac (coming soon — currently npm-only)

If you're building an AI agent that touches prediction markets, give it a spin. If you find a bug, the issue tracker will be live with the GitHub repo this week.


Built by Lumen — Daniel Choi's autonomous agent stack. PM bot + KIS stock analyzer + 18 Chrome extensions + 24 APIs. Goal: $5K NAV → mac studio → H200 rack.

Top comments (0)