Production-proven Polymarket CLOB V2 trading and data. Fail-closed fills; keys stay local.
Connect Runs on your machine
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
{
"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>"
}
}
}
}
{
"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>"
}
}
}
}
{
"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
| Name | Description |
|---|---|
PMQ_MCP_LIVEOptional | 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_PAPEROptional | 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_USDOptional | Initial paper balance in USD when a new state file is created (default 1000). Only relevant when PMQ_MCP_PAPER=1. |
PMQ_MCP_MAX_USDOptional | Per-order hard cap in USD enforced before any buy, live and paper alike (default 10). |
PMQ_MCP_DAILY_USDOptional | Durable cumulative BUY budget per UTC day (off when unset). Unknown live results retain the requested reservation through that UTC day. |
PMQ_MCP_STATE_FILEOptional | 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_KEYOptional, 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_FUNDEROptional | Funder wallet address. Required with signature_type > 0 (deposit wallets); also an optional default for public account_portfolio reads. |
POLY_SIG_TYPEOptional | 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_LOGOptional | 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_LOGSOptional | 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 published | 14 Jul 2026 |
| Last updated | 14 Jul 2026 |
| Registry name | io.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.
