Skip to main content

MCP server for the Paradigm trading platform (DRFQv2 + FSPD)

Project description

mcp-paradigm-py

MCP server for the Paradigm trading platform. Exposes the REST surface as typed tools to any MCP client (Claude Code, Claude Desktop, any IDE with MCP support).

Covers the active Paradigm products:

  • DRFQv2 — bilateral RFQ (request-for-quote)
  • OBv1 — Unified Markets order books (long-lived multi-counterparty auctions; maker quotes, taker fills, block trades, trade tape)
  • FSPD — Future Spread Direct (orderbook for future spreads with market/limit orders, post-only, IOC, order replace)
  • Firm — identity credentials, positions, cross-firm leaderboards

GRFQ is being deprecated in favour of OBv1; VRFQ is niche. Neither is covered.

See DESIGN.md for the full design — tool surface, auth model, signing layer, deployment posture.

Install

# from PyPI
pip install mcp-paradigm

# or one-shot via uvx (no install)
uvx mcp-paradigm

# or for local development
git clone https://github.com/tradeparadigm/mcp-paradigm-py.git
cd mcp-paradigm-py
just install-dev

Claude Desktop users: install the prebuilt .mcpb bundle from the latest GitHub release — double-click to install, then enter your access key + signing key when prompted.

Configure

Set your Paradigm access key and signing key. The signing key is base64-encoded as issued by Paradigm.

export PARADIGM_ACCESS_KEY="..."         # bearer token (access key id)
export PARADIGM_SIGNING_KEY="..."        # base64-encoded HMAC key
export PARADIGM_ENVIRONMENT="testnet"    # or "prod"
# Optional overrides:
# export PARADIGM_BASE_URL="https://api.test.paradigm.co"
# export PARADIGM_WS_URL="wss://ws.api.test.paradigm.trade/v2/drfq/"
# export PARADIGM_ACCOUNT="my-desk"      # if running multi-desk

Run

# stdio transport — for Claude Desktop / Claude Code
mcp-paradigm

# streamable-http — for remote agents
mcp-paradigm --transport streamable-http --port 3000

Wiring into Claude Code / Desktop

{
  "mcpServers": {
    "paradigm": {
      "command": "mcp-paradigm",
      "env": {
        "PARADIGM_ACCESS_KEY": "...",
        "PARADIGM_SIGNING_KEY": "...",
        "PARADIGM_ENVIRONMENT": "testnet"
      }
    }
  }
}

Smoke test

After wiring up the server, call paradigm_echo first. A 200 response confirms your access key, signing key, and environment are all correct. If signing is broken you'll see a 401 with Invalid signature.

Tool surface

39 tools, workflow-oriented. Full mapping in DESIGN.md.

Start here

Tool What it does
paradigm_echo Signing self-test — first call after wiring.
paradigm_desk_overview Positions + MMP + platform state across all products in one call.
paradigm_drfqv2_rfq_snapshot(rfq_id) RFQ + BBO + order book for a DRFQv2 RFQ.
paradigm_obv1_market_snapshot(ob_id) OB + BBO + quotes book for an OBv1 market.
paradigm_kill_switch Cancel all orders/quotes across all products. Destructive.

Per-product (granular)

Product Tools
DRFQv2 paradigm_drfqv2_{rfqs, create_rfq, orders, post_order, cancel, trades, instruments, counterparties, price_legs, mmp}
OBv1 paradigm_obv1_{obs, create_ob, quotes, post_quote, cancel, orders, trades, instruments, price_legs, mmp}
FSPD paradigm_fspd_{instruments, strategies, orderbook, orders, post_order, cancel, trades, venues, system, mmp}
Firm paradigm_identity_credentials, paradigm_positions, paradigm_leaderboard, paradigm_leaderboard_preferences

Conventions

  • List and single-fetch share one tool — pass {resource}_id to fetch one.
  • MMP status + reset share one tool — action='status'|'reset'.
  • Post and amend share one tool — pass *_id to switch to PUT/replace.
  • Cancel is unified per product (single id or batch by filter).
  • Destructive tools (*_post_order, *_post_quote, *_create_*, *_cancel, *_mmp(action='reset'), paradigm_kill_switch) are annotated destructiveHint=true so MCP clients prompt for approval.

Development

just check       # format + lint + test
just test        # pytest only
just mcpb        # build .mcpb bundle for Claude Desktop
just build       # sdist + wheel
just docker      # docker build

See CONTRIBUTING.md for the full dev loop.

Signing is verified by tests/test_signing.py against the canonical Paradigm message layout (<timestamp>\n<METHOD>\n<path-with-query>\n<body>).

Status

Alpha. The REST surface is complete; WebSocket subscription tools (paradigm_subscribe / paradigm_poll / paradigm_unsubscribe) and production signers (Vault Transit, AWS KMS) are tracked in DESIGN.md.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_paradigm-0.1.1.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_paradigm-0.1.1-py3-none-any.whl (44.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_paradigm-0.1.1.tar.gz.

File metadata

  • Download URL: mcp_paradigm-0.1.1.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mcp_paradigm-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6c343965e2768656c5f255a4b00e0aa47c1dfa64b4f22c844e410bec518de6e6
MD5 cd4037ba5d919f9722dc94ae1e1f8366
BLAKE2b-256 dc73de09622c02757c67bd5121260feaa943ab858b3b511117ffac0abcac1904

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_paradigm-0.1.1.tar.gz:

Publisher: publish.yml on tradeparadigm/mcp-paradigm-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_paradigm-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mcp_paradigm-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 44.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mcp_paradigm-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fedbf4a3c53b370976a488640fc9bcf60bccce3c9a7d47701e6db3c75a5896a2
MD5 d16dbf44a0943b806211ceb794045d08
BLAKE2b-256 fa73ddf495510cf1df117e658ab3f1881f33996e3700c160b0ed2d5f0b802d25

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_paradigm-0.1.1-py3-none-any.whl:

Publisher: publish.yml on tradeparadigm/mcp-paradigm-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page