PolymarketCAUTION
🤖 AI-Powered MCP Server for Polymarket - Enable Claude to trade prediction markets with 45 tools, real-time monitoring, and enterprise-grade safety features
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.python.org/downloads/) [](LICENSE) [](https://modelcontextprotocol.io) [](#testing) [](https://agentseal.org/mcp/polymarket-mcp)
Complete AI-Powered Trading Platform for Polymarket Prediction Markets
Enable Claude to autonomously trade, analyze, and manage positions on Polymarket with 45 comprehensive tools, real-time WebSocket monitoring, and enterprise-grade safety features.
👨💻 Created By
[Caio Vicentino](https://github.com/caiovicentino)
Developed in collaboration with:
- 🌾 [Yield Hacker](https://opensea.io/collection/yield-hacker-pass-yhp) - DeFi Innovation Community
- 💰 [Renda Cripto](https://rendacripto.com.br/) - Crypto Trading Community
- 🏗️ [Cultura Builder](https://culturabuilder.com/) - Builder Culture Community
Powered by [Claude Code](https://claude.ai/code) from Anthropic
⭐ Key Features
🎯 45 Comprehensive Tools Across 5 Categories
🔍Market Discovery8 tools 📊Market Analysis10 tools 💼Trading12 tools 📈Portfolio8 tools ⚡Real-time7 tools
🔍 Market Discovery (8 tools)
- Search and filter markets by keywords, categories, events
- Trending markets by volume (24h, 7d, 30d)
- Category-specific markets (Politics, Sports, Crypto)
- Markets closing soon alerts
- Featured and promoted markets
- Sports markets (NBA, NFL, etc.)
- Crypto prediction marke
e670de3259e8OBSERVED · 2026-09-28Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add polymarket-mcp --env POLYGON_PRIVATE_KEY=${POLYGON_PRIVATE_KEY} --env POLYMARKET_API_KEY=${POLYMARKET_API_KEY} --env POLYMARKET_PASSPHRASE=${POLYMARKET_PASSPHRASE} -- uvx polymarket-mcp{
"mcpServers": {
"polymarket-mcp": {
"command": "uvx",
"args": [
"polymarket-mcp"
],
"env": {
"POLYGON_PRIVATE_KEY": "${POLYGON_PRIVATE_KEY}",
"POLYMARKET_API_KEY": "${POLYMARKET_API_KEY}",
"POLYMARKET_PASSPHRASE": "${POLYMARKET_PASSPHRASE}"
}
}
}
}Exposed tools (24)
20 read · 4 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
analyze_market_opportunity | read | AI-powered market analysis with trading recommendation, risk assessment, and confidence score. |
cancel_all_orders | read | Cancel all open orders across all markets. Use with caution. |
cancel_market_orders | read | Cancel all open orders in a specific market. |
cancel_order | write | Cancel a specific open order by ID. |
compare_markets | read | Compare multiple markets side-by-side with key metrics (volume, liquidity, etc.). |
filter_markets_by_category | read | Filter markets by category or tag (e.g., Politics, Sports, Crypto). Returns markets in the specified category. |
get_closing_soon_markets | read | Get markets closing within specified timeframe. Returns markets sorted by closing time. |
get_crypto_markets | read | Get cryptocurrency-related markets. Optionally filter by specific crypto symbol. |
get_current_price | read | Get current bid/ask prices for a token. Returns PriceData with bid, ask, and mid prices. |
get_event_markets | read | Get all markets for a specific event. Returns all markets belonging to the event. |
get_featured_markets | read | Get featured or promoted markets. Returns curated list of important markets. |
get_liquidity | read | Get available liquidity in USD for a market. |
get_market_details | read | Get complete market information including metadata, tokens, volume, and liquidity. |
get_market_holders | read | Get top position holders for a market. Note: Requires authenticated access. |
get_market_volume | read | Get volume statistics for different timeframes (24h, 7d, 30d, all-time). |
get_open_orders | read | Get all active/open orders, optionally filtered by market. |
get_order_history | write | Get historical orders with optional filters for market and date range. |
get_order_status | write | Check status and fill details of a specific order. |
get_orderbook | write | Get complete order book with bids and asks arrays. |
get_price_history | read | Get historical price data (OHLC). Note: Limited availability via public API. |
get_sports_markets | read | Get sports betting markets. Optionally filter by specific sport type. |
get_spread | read | Get current spread (difference between bid and ask prices). |
get_trending_markets | read | Get markets with highest trading volume in specified timeframe. Returns top markets sorted by volume. |
search_markets | read | Search markets by text query, slug, or keywords. Returns markets matching the search criteria. |
Trust audit
CAUTIONgrade C · trust 71/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (2 observation(s))
- Network
- declared (3 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- found
Findings (25)
logger.info(f"API credentials created: {creds.api_key[:8]}...")logger.debug(f"POLYMARKET_API_KEY={api_key[:8]}...")api_key="0xcreated0000000000000000000000000000000",
api_key="synthetic-key-000000",
api_key="synthetic-key-000000",
.codecov.yml
.pre-commit-config.yaml
.secrets.baseline
__import__(module)
module = importlib.import_module(mod)
".env" ... Websocket
GAMMA_OVERRIDE = "http://127.0.0.1:9999"
CLOB_OVERRIDE = "http://127.0.0.1:8443"
_INOPERATIVE_PROXY = "http://127.0.0.1:1"
_INOPERATIVE_PROXY = "http://127.0.0.1:1"
result = await tools.create_limit_order("m1", "ВUY", 0.5, 10.0)assert result["error"] == "Side must be BUY or SELL, got ВUY"
{"token_id": "t1", "outcome": "Вuy"},2. Variable is set: `cat .env | grep POLYGON`
cat .env | grep DEMO_MODE
cat .env | grep DEMO # DEMO_MODE=true present
cat .env | grep -E "POLYGON_PRIVATE_KEY|POLYGON_ADDRESS"
cat .env | grep DEMO
curl -sSL https://raw.githubusercontent.com/caiovicentino/polymarket-mcp-server/main/quickstart.sh | bash
curl -sSL https://raw.githubusercontent.com/.../quickstart.sh | bash
Gates applied: no_behavioural_pass.
e670de3259e8full audit observations/trust-audit/mcp-server/caiovicentino__polymarket-6.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-28 | e670de3259e8 | CAUTION | C | 71 | first audit |
Questions
What is the Polymarket MCP server?
🤖 AI-Powered MCP Server for Polymarket - Enable Claude to trade prediction markets with 45 tools, real-time monitoring, and enterprise-grade safety features
What tools does Polymarket expose?
24 in total: 20 read-only, 4 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Polymarket safe to connect to an agent?
With care. The audit graded it C (71/100) and found 25 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does Polymarket need?
It reads POLYGON_PRIVATE_KEY, POLYMARKET_API_KEY and POLYMARKET_PASSPHRASE from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Polymarket run?
It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as polymarket-mcp.
How current is this page?
The grade is for one exact copy of the source (e670de3259e8), read on 2026-09-28. The repository is watched and re-audited when it changes.