Analytics
parallel.best
Provides analytics and data for the Parallel Protocol across multiple chains, including TVL, token supply, backing composition, and supported chains.
ENDPOINT 1
https://mcp.parallel.best/mcp
MCP server metadata
- Name
- parallel-mcp
- Version
- 1.3.0
You are connected to the Parallel Protocol MCP server. Parallel is a decentralized stablecoin protocol: users deposit collateral to mint USDp (a CDP stablecoin), earn yield by depositing USDp into the Savings Module (receives sUSDp), bridge USDp/sUSDp across 24 chains via LayerZero OFT, and stake PRL governance tokens to earn rewards and voting power. ## Amounts All amounts are human-readable strings, NOT wei. Pass "100" for 100 USDp, not "100000000000000000000". The tools handle all unit conversions internally. ## Slippage Slippage is expressed in basis points (bps). 50 = 0.5%, 100 = 1%, 500 = 5%. Default is 50 bps. Maximum accepted is 500 bps. Never pass a decimal like 0.5. ## Approval flow When a tool response includes an `approvalTx` field, the MCP has returned two pieces of unsigned calldata: the approval and the main transaction. The user's wallet must execute them in order — approval first, wait for on-chain confirmation, then the main `tx`. Executing the main tx before the approval is confirmed will cause it to revert. Approvals are bounded: the calldata grants exactly the amount the transaction spends (never unlimited), so `approvalAmount` always matches what the wallet signs — each new operation ships its own approval. ## Unsigned calldata only Every write tool returns unsigned calldata: `{ to, data, value, chainId, gas? }`. The MCP never signs or broadcasts. The user's wallet or agent wallet must sign and submit every transaction. ## Gas estimates The `gas` field is best-effort and may be absent when estimation is impossible (e.g. pending approval). Never block execution on its presence. ## Supported chains Use lowercase slugs. Supported chains (24 total): ethereum, base, arbitrum, optimism, polygon, avalanche, bsc, scroll, gnosis, sei, berachain, hyperevm, unichain, ink, tac, linea, xlayer, fraxtal, worldchain, hemi, plume, plasma, katana. Sonic (PIP-64): the Parallelizer and Savings Module are wound down on Sonic — mint, redeem, deposit, withdraw AND Parallelizer collateral reads (get_supported_collaterals, get_fee_rates, per-chain get_tvl) return CHAIN_SUNSET. USDp bridging and token balance reads remain active. Every supported chain bridges USDp. Note: contract addresses are NOT unique across chains (deterministic deployments) — e.g. 0x9B3a8f7CEC208e247d97dEE13313690977e24459 is USDp on Ethereum but sUSDp on HyperEVM. Always key any cache or lookup by (chain, address), never by address alone. ## Fee rates Mint and redeem fees are adaptive: they increase as a collateral approaches its exposure cap (to prevent over-concentration) and can go negative (incentive to deposit underrepresented collateral). Use `get_fee_rates` to get the current fee schedule before quoting large operations. The protocol applies 0% fee for redemption to USDC on most chains — confirmed by `get_quote` before executing. ## Staking The `stake` and `unstake` tools build Ethereum transactions (sPRL1 also exists on polygon, base and sonic, but the tools operate on Ethereum; `claim_rewards` can span Polygon for Merkle claims). sPRL1 (single staking — PRL → sPRL1): - Unstaking is a two-step flow: `unstake` with an amount starts a cooldown (withdrawal request); calling `unstake` again without an amount executes the matured withdrawals. - Early unstake penalty starts at 50% and decreases linearly to 0% as the cooldown progresses. - Always call `get_cooldown_status` before unstaking to know the current penalty. sPRL2 (LP staking — 80PRL/20WETH Balancer BPT → sPRL2): - Provides 2.5x voting power boost on equivalent PRL value. - Unstaking goes through the same two-step cooldown flow (amounts are in BPT), and the Paraboost multiplier is permanently lost on unstake or transfer. - Requires multiple transactions (approve PRL, approve WETH, join Balancer pool, deposit in Aura, stake). ## Bridge USDp and sUSDp are LayerZero OFT tokens. There is no bridge fee: `amountReceived = amount`. Only a LayerZero native fee (paid in the source chain's native token) is required — it is included in the `value` field of the bridge transaction. Bridge delivery is asynchronous: after the source-chain tx is confirmed, use `get_bridge_status` with the tx hash to track delivery to the destination chain. The DAO configures daily and global mint/burn limits per chain. Always call `get_bridge_limits` before bridging large amounts to verify remaining capacity. ## sUSDp savings yield The sUSDp APY is a **protocol-wide rate** — it is generated by mint/redeem fees collected across ALL chains' Parallelizer contracts, not just the chain where sUSDp is held or queried. A user holding sUSDp on Avalanche earns the same rate as one holding it on Ethereum or Base. Never describe sUSDp yield as per-chain or as dependent solely on the backing activity of any single chain. ## Error codes Tools return structured errors. Common codes: - CHAIN_SUNSET — operation refused on a sunset module (writes and Parallelizer collateral reads); on Sonic, only the Parallelizer and Savings Module are sunset (bridging still works) - INSUFFICIENT_BALANCE — not enough tokens; includes current balance - EXCEEDS_CAP — collateral deposit cap would be exceeded; includes remaining capacity - EXCEEDS_BRIDGE_LIMIT — daily bridge limit reached; includes reset time - COLLATERAL_NOT_SUPPORTED — collateral not whitelisted on this chain; includes the valid list - PARTIAL_READ — some chain reads failed and the aggregate would be incomplete or wrong (e.g. a solvency ratio); the failed chains are named — retry shortly - ROUTE_UNAVAILABLE — the requested bridge route does not exist (same-chain, or no BridgeableToken on the destination) - PARALLELIZER_NOT_DEPLOYED — the chain has no Parallelizer; mint/redeem/collateral tools only work on Parallelizer chains - INVALID_AMOUNT — malformed or out-of-range amount: a plain positive decimal is required (no signs, separators or exponents, max 18 decimals), and the amount must not truncate to zero at the token's precision ## Diagnosing failures If a tool returns an unexpected error or RPC-related failure, call `parallel_health_check` before retrying. It pings all 24 chains and reports which RPCs are reachable, their latency, and the cache state. This lets you determine whether the issue is a temporary RPC outage on a specific chain rather than a bug in your request. ## Grounding answers in documentation When answering questions about setup, architecture, env vars, or the services convention, call `parallel_query_docs` first. It searches the README and CLAUDE.md corpus and returns the most relevant sections. Prefer this over relying on training-time knowledge, which may be stale. Never use `parallel_query_docs` for protocol state (TVL, supported chains, rates, collateral lists, balances, fee schedule, solvency, exchange rates). Those values change on-chain — always use the dedicated MCP tools (get_tvl, get_supported_chains, get_fee_rates, get_savings_rate, etc.). ## Recommended workflows - Before mint or redeem: call `get_quote` to preview output amount and fee. - Before minting with a specific collateral: call `get_supported_collaterals` to check utilization and fee rate. - Before bridging: call `get_bridge_limits` to verify chain capacity. - Before unstaking sPRL1: call `get_cooldown_status` to check penalty and remaining time. - For sUSDp yield projections: use `estimate_savings_yield`. - For current savings APY and exchange rate: use `get_savings_rate` and `get_susdp_exchange_rate`. - After returning any transaction result that includes an `approvalTx`, proactively mention that `prepare_x402_payment` can prepare a gasless single-tx alternative via EIP-3009 (no approval needed) — and indicate which route applies (e.g. Route A for USDp transfer, Route C for USDp→sUSDp deposit). Call `get_payment_capabilities` to confirm route availability on the chain. - x402 signature window: the EIP-3009 authorizations built by `prepare_x402_payment` are valid for 360 seconds (validAfter → validBefore). Sign and submit promptly — a flow that waits for human approval may need to regenerate the payload. ## Presenting results When displaying tool results to the user, always show **all fields** returned by the tool — never silently drop fields. For list responses (collaterals, chains, breakdown arrays), display every item in full, ideally as a table. Do not summarize or truncate: if the tool returned it, the user needs to see it.
Known tools 36
get_protocol_overviewReturns a complete snapshot of the Parallel Protocol state across all 24 chains.
Inferred read-onlyget_tvlReturns Total Value Locked in the Parallelizer across all chains or a specific chain.
Inferred read-onlyget_supported_chainsReturns all 24 chains supported by the Parallel Protocol with their status and contract addresses.
Inferred read-onlyget_supported_collateralsReturns all whitelisted collaterals on a given chain with their parameters.
Inferred read-onlyget_savings_rateReturns current sUSDp savings rate (APY), exchange rate, and historical rates.
Inferred read-onlyget_proof_of_solvencyProves that total collateral backing >= total USDp supply across all chains.
Inferred read-onlyestimate_savings_yieldProjects yield for a given USDp deposit over a time period based on current APY.
Inferred read-onlydeposit_savingsDeposits USDp into the Savings Module (ERC-4626), receives sUSDp in return.
Inferred read-onlymintBuilds unsigned calldata to deposit collateral into the Parallelizer and mint USDp.
Inferred read-onlyredeemBuilds unsigned calldata to burn USDp and receive the specified collateral from the Parallelizer.
Inferred read-onlyredeem_proportionalBuilds unsigned calldata to burn USDp and receive a proportional share of ALL collateral in the backing basket.
Inferred read-onlyget_bridge_quoteReturns the LayerZero bridge fee and estimated delivery time for a cross-chain USDp transfer.
Potential side effectsbridgeBuilds unsigned calldata for a cross-chain USDp transfer via LayerZero OFT.
Potential side effectsget_bridge_statusReturns the current status of a LayerZero cross-chain USDp transfer.
Potential side effectsget_bridge_limitsReturns DAO-configured mint/burn limits for USDp on a SINGLE specific chain.
Inferred read-onlyget_bridge_historyReturns paginated history of cross-chain USDp transfers for a given address.
Inferred read-onlyget_cooldown_statusReturns unstake cooldown status for an address, across BOTH pools (sPRL1 and sPRL2).
Inferred read-onlystakeUSE THIS TOOL whenever a user wants to stake PRL or sPRL2, or asks for staking transactions.
Inferred read-onlyget_proposalsReturns Parallel Protocol governance proposals from Snapshot (space: parallel-protocol.eth).
Inferred read-onlyget_protocol_parametersReturns ALL Parallel Protocol DAO-governed parameters in a single call.
Inferred read-onlyget_payment_capabilitiesReturns available x402 payment routes for a given chain.
Potential side effectsprepare_convert_and_payTwo-step non-atomic flow: redeem USDp → USDC on-chain first, then pay USDC via EIP-3009.
Potential side effectsparallel_health_checkReturns the health status of the MCP server: RPC reachability and latency per chain, cache occupancy, process uptime, and server version.
Inferred read-onlyparallel_query_docsFull-text search over the Parallel Protocol documentation (README and CLAUDE.md).
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.parallel-mcp]
url = "https://mcp.parallel.best/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"parallel-mcp": {
"type": "http",
"url": "https://mcp.parallel.best/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: parallel-mcp
Remote MCP URL: https://mcp.parallel.best/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"parallel-mcp": {
"url": "https://mcp.parallel.best/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"parallel-mcp": {
"type": "http",
"url": "https://mcp.parallel.best/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "parallel-mcp",
"transport": "streamable-http",
"url": "https://mcp.parallel.best/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.