NestDaddy

pmq (Polymarket CLOB V2)

io.github.crp4222/pmq ยท v0.7.1

Production-proven Polymarket CLOB V2 trading and data. Fail-closed fills; keys stay local.

Connect Runs on your machine

Terminal
claude mcp add pmq -e PMQ_MCP_LIVE=<PMQ_MCP_LIVE> -e PMQ_MCP_PAPER=<PMQ_MCP_PAPER> -e PMQ_MCP_PAPER_USD=<PMQ_MCP_PAPER_USD> -e PMQ_MCP_MAX_USD=<PMQ_MCP_MAX_USD> -e PMQ_MCP_DAILY_USD=<PMQ_MCP_DAILY_USD> -e PMQ_MCP_STATE_FILE=<PMQ_MCP_STATE_FILE> -e POLY_PRIVATE_KEY=<POLY_PRIVATE_KEY> -e POLY_FUNDER=<POLY_FUNDER> -e POLY_SIG_TYPE=<POLY_SIG_TYPE> -e POLY_ORDER_LOG=<POLY_ORDER_LOG> -e POLY_FOREIGN_ORDER_LOGS=<POLY_FOREIGN_ORDER_LOGS> -- uvx pmquant==0.7.1
claude_desktop_config.json
{
  "mcpServers": {
    "pmq": {
      "command": "uvx",
      "args": [
        "pmquant==0.7.1"
      ],
      "env": {
        "PMQ_MCP_LIVE": "<PMQ_MCP_LIVE>",
        "PMQ_MCP_PAPER": "<PMQ_MCP_PAPER>",
        "PMQ_MCP_PAPER_USD": "<PMQ_MCP_PAPER_USD>",
        "PMQ_MCP_MAX_USD": "<PMQ_MCP_MAX_USD>",
        "PMQ_MCP_DAILY_USD": "<PMQ_MCP_DAILY_USD>",
        "PMQ_MCP_STATE_FILE": "<PMQ_MCP_STATE_FILE>",
        "POLY_PRIVATE_KEY": "<POLY_PRIVATE_KEY>",
        "POLY_FUNDER": "<POLY_FUNDER>",
        "POLY_SIG_TYPE": "<POLY_SIG_TYPE>",
        "POLY_ORDER_LOG": "<POLY_ORDER_LOG>",
        "POLY_FOREIGN_ORDER_LOGS": "<POLY_FOREIGN_ORDER_LOGS>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "pmq": {
      "command": "uvx",
      "args": [
        "pmquant==0.7.1"
      ],
      "env": {
        "PMQ_MCP_LIVE": "<PMQ_MCP_LIVE>",
        "PMQ_MCP_PAPER": "<PMQ_MCP_PAPER>",
        "PMQ_MCP_PAPER_USD": "<PMQ_MCP_PAPER_USD>",
        "PMQ_MCP_MAX_USD": "<PMQ_MCP_MAX_USD>",
        "PMQ_MCP_DAILY_USD": "<PMQ_MCP_DAILY_USD>",
        "PMQ_MCP_STATE_FILE": "<PMQ_MCP_STATE_FILE>",
        "POLY_PRIVATE_KEY": "<POLY_PRIVATE_KEY>",
        "POLY_FUNDER": "<POLY_FUNDER>",
        "POLY_SIG_TYPE": "<POLY_SIG_TYPE>",
        "POLY_ORDER_LOG": "<POLY_ORDER_LOG>",
        "POLY_FOREIGN_ORDER_LOGS": "<POLY_FOREIGN_ORDER_LOGS>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "pmq": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "pmquant==0.7.1"
      ],
      "env": {
        "PMQ_MCP_LIVE": "<PMQ_MCP_LIVE>",
        "PMQ_MCP_PAPER": "<PMQ_MCP_PAPER>",
        "PMQ_MCP_PAPER_USD": "<PMQ_MCP_PAPER_USD>",
        "PMQ_MCP_MAX_USD": "<PMQ_MCP_MAX_USD>",
        "PMQ_MCP_DAILY_USD": "<PMQ_MCP_DAILY_USD>",
        "PMQ_MCP_STATE_FILE": "<PMQ_MCP_STATE_FILE>",
        "POLY_PRIVATE_KEY": "<POLY_PRIVATE_KEY>",
        "POLY_FUNDER": "<POLY_FUNDER>",
        "POLY_SIG_TYPE": "<POLY_SIG_TYPE>",
        "POLY_ORDER_LOG": "<POLY_ORDER_LOG>",
        "POLY_FOREIGN_ORDER_LOGS": "<POLY_FOREIGN_ORDER_LOGS>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
PMQ_MCP_LIVE
Optional
Set to 1 to register the LIVE trading tools (fak_buy, fak_sell, cancel_and_reconcile). Overridden by PMQ_MCP_PAPER=1; with neither set the server is read-only.
PMQ_MCP_PAPER
Optional
Set to 1 for paper trading: trading tools simulate displayed top-of-book fills against real books. No keys or exchange orders. Wins over PMQ_MCP_LIVE.
PMQ_MCP_PAPER_USD
Optional
Initial paper balance in USD when a new state file is created (default 1000). Only relevant when PMQ_MCP_PAPER=1.
PMQ_MCP_MAX_USD
Optional
Per-order hard cap in USD enforced before any buy, live and paper alike (default 10).
PMQ_MCP_DAILY_USD
Optional
Durable cumulative BUY budget per UTC day (off when unset). Unknown live results retain the requested reservation through that UTC day.
PMQ_MCP_STATE_FILE
Optional
Local durable paper-ledger and daily-budget file. Defaults to $XDG_STATE_HOME/pmq or ~/.local/state/pmq; it contains no key material.
POLY_PRIVATE_KEY
Optional, secret
EOA private key used only to sign orders locally when trading tools are enabled. Never printed or transmitted. Not needed for the read-only tools.
POLY_FUNDER
Optional
Funder wallet address. Required with signature_type > 0 (deposit wallets); also an optional default for public account_portfolio reads.
POLY_SIG_TYPE
Optional
Polymarket signature type: 0 EOA, 1 POLY_PROXY, 2 POLY_GNOSIS_SAFE, 3 POLY_1271 (app deposit wallet). Run pmq-doctor if unsure.
POLY_ORDER_LOG
Optional
Append-only file of this server's own order ids. Enables order attribution when several senders share one wallet: account totals then count only orders placed through this server. Optional; without it behavior is unchanged.
POLY_FOREIGN_ORDER_LOGS
Optional
Colon-separated registry files of the wallet's other order-senders. Reconciliation claims trades unknown to every registry. Sound only if every sender on the wallet keeps a registry.

Details

Package[email protected] (PYPI, stdio)
First published14 Jul 2026
Last updated14 Jul 2026
Registry nameio.github.crp4222/pmq

More finance and crypto servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.