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.0.tar.gz (29.7 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.0-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_paradigm-0.1.0.tar.gz
  • Upload date:
  • Size: 29.7 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.0.tar.gz
Algorithm Hash digest
SHA256 29aa2915d7311a19e601f3380f2022791de62a06b9ea7c2bd370687872ced089
MD5 e45b078ea90a881cbf7ea7e59cd181a4
BLAKE2b-256 83480b76515a9733d1af9d723657325ede096f8736ea528c032178aed0381c15

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_paradigm-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_paradigm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 44.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cdea4769d01459eca8f73b6b90d554369ed5809c79afe62b761c20e6e0d40ffe
MD5 599337622904af7e64d25955c1cb79db
BLAKE2b-256 bd138fbddc35b919249a81ad67081f0726fb55933831a95a319a9c1c036b30ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_paradigm-0.1.0-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