{"apiVersion":"v1","directorySlug":"parallel-mcp-98f969adf4","title":"Parallel","description":"USDp is a decentralized, overcollateralized USD stablecoin backed by yield-generating correlated assets. Parallel Protocol's Parallelizer mints it at a 0% fee.","pageUrl":"https://www.mcpbundles.com/skills/parallel-mcp-98f969adf4","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.parallel.best/mcp","hostedMcpUrl":null,"toolCount":36,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"best.parallel/parallel-mcp-98f969adf4","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_protocol_overview","description":"Returns a complete snapshot of the Parallel Protocol state across all 24 chains.\nIncludes: totalTVL, totalUSDpSupply, totalSUSDpSupply, savingsRate (APY), susdpExchangeRate, activeChains, proofOfSolvency, backingComposition[].\nTVL uses fetchAllChainCollaterals + getCollateralRatio() as override — two-source aggregation for resilience.\nproofOfSolvency: { totalBacking, totalSupply, ratio, lastVerified }.\nbackingComposition: flat array of { chain, collateral, symbol, amount, usdValue, percentage }","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_protocol_overview","displayName":"get_protocol_overview","title":"get_protocol_overview"},{"name":"get_supply","description":"Returns total and circulating supply of a Parallel Protocol token.\nTokens: usdp, susdp, prl, sprl1, sprl2.\nIf chain is omitted: returns aggregate across all chains + per-chain breakdown.\nIf chain is specified: returns supply on that chain only.\nsprl1 aggregates its deployments (Ethereum, Polygon, Base, Sonic). sprl2 aggregates the v2 vaults of Ethereum and Base, served in PRL (the PRL side of each chain's pool, at that pool's ratio) with the BPT count per chain beside it (bptSupply); the BPT of","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["token"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"token":{"enum":["usdp","susdp","prl","sprl1","sprl2"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_supply","displayName":"get_supply","title":"get_supply"},{"name":"get_tvl","description":"Returns Total Value Locked in the Parallelizer across all chains or a specific chain.\nIncludes per-collateral breakdown with USD values. The per-chain tvl figure comes from getCollateralRatio() and includes retired collaterals, while the breakdown lists active collaterals only — so tvl can slightly exceed the sum of its breakdown.\nfailedChains/partial report any chain that could not be read — the total then EXCLUDES those chains (lower bound, never a silent amputation).\nUse get_proof_of_solvency","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_tvl","displayName":"get_tvl","title":"get_tvl"},{"name":"get_backing_composition","description":"Returns detailed breakdown of collateral backing USDp.\nPer collateral: address, symbol, decimals, amountDeposited, usdValue, percentage, oraclePrice, oracleType, isYieldBearing.\nCache TTL: 60s.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_backing_composition","displayName":"get_backing_composition","title":"get_backing_composition"},{"name":"get_supported_chains","description":"Returns all 24 chains supported by the Parallel Protocol with their status and contract addresses.\nStatus: active | paused | sunset.\nNote: Sonic is sunset (PIP-64) — the Parallelizer and Savings Module are wound down there: mint, redeem, deposit, withdraw AND Parallelizer collateral reads (get_supported_collaterals, get_fee_rates, get_tvl per-chain) return CHAIN_SUNSET. USDp bridging and token balance reads remain active.\npauseReason is non-null only when status is paused (Hypernative auto-pause","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_supported_chains","displayName":"get_supported_chains","title":"get_supported_chains"},{"name":"get_supported_collaterals","description":"Returns all whitelisted collaterals on a given chain with their parameters.\nPer collateral: address, symbol, decimals, mintFeeRate, redeemFeeRate, mintCap, currentDeposited, utilizationRate, isActive.\nCache TTL: 120s.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_supported_collaterals","displayName":"get_supported_collaterals","title":"get_supported_collaterals"},{"name":"get_fee_rates","description":"Returns adaptive fee schedule for mint/redeem operations.\nFees are dynamic: increase as collateral approaches exposure cap, can go negative as incentive.\nIf no params: returns complete matrix (all collaterals × all chains).\nCache TTL: 120s.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"collateral":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_fee_rates","displayName":"get_fee_rates","title":"get_fee_rates"},{"name":"get_savings_rate","description":"Returns current sUSDp savings rate (APY), exchange rate, and historical rates.\nIncludes: currentAPY, exchangeRate, totalDeposited, feeShare (the share of the protocol surplus not kept by the DAO treasury, read on-chain from the Parallelizer payees; null when that read fails) with surplusSplit, history over 7d/30d/90d.\nAPY is protocol-wide — generated by fees across ALL chains, not per-chain. A user holding sUSDp on any chain earns the same global rate.\nNote: historical rates are sourced from eve","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_savings_rate","displayName":"get_savings_rate","title":"get_savings_rate"},{"name":"get_proof_of_solvency","description":"Proves that total collateral backing >= total USDp supply across all chains.\nReturns: totalBacking (USD), totalUSDpSupply, ratio (must be >= 1.0), surplus, isSolvent, lastVerifiedAt, perChainBreakdown.\nThis is the primary trust verification tool for agents holding USDp.\nCache TTL: 60s (reuses getTvl + getSupply caches).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_proof_of_solvency","displayName":"get_proof_of_solvency","title":"get_proof_of_solvency"},{"name":"get_susdp_exchange_rate","description":"Returns the current sUSDp/USDp conversion rate. Rate increases monotonically as yield accrues.\nSource: convertToAssets(1e18) on ERC-4626 vault.\nIf chain is omitted: returns rates for all active chains.\nCache TTL: 30s.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_susdp_exchange_rate","displayName":"get_susdp_exchange_rate","title":"get_susdp_exchange_rate"},{"name":"estimate_savings_yield","description":"Projects yield for a given USDp deposit over a time period based on current APY.\nReturns: depositAmount, projectedYield, projectedTotal, apy, disclaimer.\nAPY used is the protocol-wide rate (fees from all chains), not per-chain — the same rate applies regardless of which chain sUSDp is held on.\nThis is a pure calculation — does not submit any transaction.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amount","durationDays"],"properties":{"amount":{"type":"string"},"durationDays":{"type":"integer","maximum":3650,"exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"estimate_savings_yield","displayName":"estimate_savings_yield","title":"estimate_savings_yield"},{"name":"deposit_savings","description":"Deposits USDp into the Savings Module (ERC-4626), receives sUSDp in return.\nReturns unsigned transaction data — the agent must sign and submit.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amount","chain","receiver"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"amount":{"type":"string"},"method":{"enum":["standard","eip3009"],"type":"string","default":"standard"},"receiver":{"type":"string"}}},"logicalName":"deposit_savings","displayName":"deposit_savings","title":"deposit_savings","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"withdraw_savings","description":"Withdraws from the Savings Module, burns sUSDp and returns USDp.\nReturns unsigned transaction data — the agent must sign and submit.\nReturns: tx, estimatedUSDp, exchangeRate.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amount","chain","receiver"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"amount":{"type":"string"},"receiver":{"type":"string"}}},"logicalName":"withdraw_savings","displayName":"withdraw_savings","title":"withdraw_savings","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_quote","description":"Simulates a mint or redeem operation without executing it. Read-only — no transaction.\nUses staticCall on Swapper facet of the Parallelizer Diamond.\nReturns: operation, collateral, inputToken, inputAmount, outputAmount, oraclePrice, feeAmount, feeRate.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["operation","chain","collateral","amount"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"amount":{"type":"string"},"operation":{"enum":["mint","redeem"],"type":"string"},"collateral":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_quote","displayName":"get_quote","title":"get_quote"},{"name":"mint","description":"Builds unsigned calldata to deposit collateral into the Parallelizer and mint USDp.\nThe agent must sign and submit the transaction(s).\nIf approvalTx is present, submit it first (ERC-20 approve to parallelizer), then the main tx.\nDefault slippageTolerance: 50 bps (0.5%). Deadline: now + 20 min.\nReturns: { to, data, value, chainId, collateral, amountIn, expectedUsdpOut, minUsdpOut, slippageBps, approvalTx? }","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["collateral","amount","chain","receiver"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"amount":{"type":"string"},"receiver":{"type":"string"},"collateral":{"type":"string"},"slippageTolerance":{"type":"integer","maximum":500,"minimum":1}}},"logicalName":"mint","displayName":"mint","title":"mint","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"redeem","description":"Builds unsigned calldata to burn USDp and receive the specified collateral from the Parallelizer.\nThe agent must sign and submit the transaction(s).\nIf approvalTx is present, submit it first (ERC-20 approve USDp to parallelizer), then the main tx.\nNote: Redeeming to USDC has 0% fee on most chains.\nDefault slippageTolerance: 50 bps (0.5%). Deadline: now + 20 min.\nReturns: { to, data, value, chainId, collateral, usdpIn, expectedCollateralOut, minCollateralOut, slippageBps, approvalTx? }","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["collateral","amount","chain","receiver"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"amount":{"type":"string"},"receiver":{"type":"string"},"collateral":{"type":"string"},"slippageTolerance":{"type":"integer","maximum":500,"minimum":1}}},"logicalName":"redeem","displayName":"redeem","title":"redeem","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"redeem_proportional","description":"Builds unsigned calldata to burn USDp and receive a proportional share of ALL collateral in the backing basket.\nUseful for market-neutral exits. Calls quoteRedemptionCurve to compute expected amounts per collateral.\nIf approvalTx is present, submit it first (ERC-20 approve USDp to parallelizer), then the main tx.\nDefault slippageTolerance: 50 bps (0.5%). Deadline: now + 20 min.\nReturns: { to, data, value, chainId, usdpIn, collaterals: [{ address, symbol, decimals, expectedAmount, minAmount }], s","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amount","chain","receiver"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"amount":{"type":"string"},"receiver":{"type":"string"},"slippageTolerance":{"type":"integer","maximum":500,"minimum":1}}},"logicalName":"redeem_proportional","displayName":"redeem_proportional","title":"redeem_proportional","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_bridge_quote","description":"Returns the LayerZero bridge fee and estimated delivery time for a cross-chain USDp transfer.\nOnly USDp is bridgeable (sUSDp is a yield-bearing vault — withdraw to USDp first, then bridge).\nSource: quoteSend() on BridgeableTokenP contract.\nReturns: nativeFee (in source chain native token), nativeFeeWei, amountReceived (= amount, OFT has no bridge fee), estimatedTime (seconds).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["token","fromChain","toChain","amount"],"properties":{"token":{"type":"string","const":"usdp"},"amount":{"type":"string"},"toChain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"fromChain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_bridge_quote","displayName":"get_bridge_quote","title":"get_bridge_quote"},{"name":"bridge","description":"Builds unsigned calldata for a cross-chain USDp transfer via LayerZero OFT.\nBurns USDp on source chain, mints on destination chain.\nIMPORTANT: Always call get_bridge_limits before this tool to verify remaining daily/global capacity, and report it to the user before building the transaction.\nInternally checks burn limits — returns EXCEEDS_BRIDGE_LIMIT or EXCEEDS_GLOBAL_LIMIT error if exceeded.\nvalue field is the LayerZero native fee in wei (MUST be included when submitting the transaction).\nrecip","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["token","fromChain","toChain","amount","recipientAddress"],"properties":{"token":{"type":"string","const":"usdp"},"amount":{"type":"string"},"toChain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"fromChain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"recipientAddress":{"type":"string"}}},"logicalName":"bridge","displayName":"bridge","title":"bridge","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_bridge_status","description":"Returns the current status of a LayerZero cross-chain USDp transfer.\nSource: LayerZero Scan API — NOT cached (real-time).\nStatus values: pending | confirming | delivered | failed.\nReturns: status, sourceTxHash, destTxHash, confirmations, requiredConfirmations, estimatedRemaining (seconds).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["txHash","fromChain"],"properties":{"txHash":{"type":"string"},"fromChain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_bridge_status","displayName":"get_bridge_status","title":"get_bridge_status"},{"name":"get_bridge_limits","description":"Returns DAO-configured mint/burn limits for USDp on a SINGLE specific chain.\nUse this only when checking limits for one specific chain before a bridge operation.\nIf the user asks for bridge limits across ALL chains or as part of protocol parameters, use get_protocol_parameters instead — it returns all chains in one call.\nReturns: dailyMintLimit, dailyMintUsed, remainingMintCapacity, dailyBurnLimit, dailyBurnUsed, remainingBurnCapacity, globalMintLimit, globalBurnLimit.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["token","chain"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"token":{"type":"string","const":"usdp"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_bridge_limits","displayName":"get_bridge_limits","title":"get_bridge_limits"},{"name":"get_bridge_history","description":"Returns paginated history of cross-chain USDp transfers for a given address.\nSource: LayerZero Scan API.\nReturns array of { txHash, fromChain, toChain, token, amount, status, timestamp }.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["address"],"properties":{"limit":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"address":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_bridge_history","displayName":"get_bridge_history","title":"get_bridge_history"},{"name":"get_staking_overview","description":"Returns aggregated staking statistics for PRL.\nIncludes: totalPRLStakedSPRL1 (+ totalPRLStakedSPRL1ByChain), totalBPTStakedSPRL2 (+ totalBPTStakedSPRL2ByChain), equivalentPRLInSPRL2 (+ equivalentPRLInSPRL2ByChain), totalStakedPRL, prlTotalSupply, stakingRatio, sprl1TotalVotingPower, sprl2TotalSupply.\nsPRL1: single staking (1x voting power), deployed on Ethereum, Polygon, Base and Sonic — totalPRLStakedSPRL1 aggregates all four chains, totalPRLStakedSPRL1ByChain splits them; Polygon and Sonic are","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_staking_overview","displayName":"get_staking_overview","title":"get_staking_overview"},{"name":"get_staking_info","description":"Returns the complete staking position of an address across every chain with a vault (sPRL1: Ethereum, Polygon, Base, Sonic; sPRL2 v2: Ethereum, Base).\nReturns: prlBalance (Ethereum), sprl1 { balance, balanceByChain, votingPower, withdrawalRequests (every chain, each tagged with its chain), timeLockDurationDays, startPenaltyPercentage }, sprl2 { bptBalance, bptBalanceByChain, votingPower, votingPowerByChain, prlEquivalent, prlEquivalentByChain, v1Balance }, totalVotingPower, legacyPendingRewards,","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["address"],"properties":{"address":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_staking_info","displayName":"get_staking_info","title":"get_staking_info"},{"name":"get_cooldown_status","description":"Returns unstake cooldown status for an address, across BOTH pools (sPRL1 and sPRL2) and every chain of their vaults (sPRL1: Ethereum, Polygon, Base, Sonic; sPRL2 v2: Ethereum, Base; plus the paused sPRL2 v1 vault on Ethereum).\nReturns: isActive (true only while a request is still locked/\"pending\"), pendingCount, readyCount,\nsprl1PendingAmount/sprl1ReadyAmount (PRL), sprl2PendingAmount/sprl2ReadyAmount (Balancer BPT — different token, never summed with sPRL1),\nstartedAt/endsAt/remainingTime/estim","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["address"],"properties":{"address":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_cooldown_status","displayName":"get_cooldown_status","title":"get_cooldown_status"},{"name":"stake","description":"USE THIS TOOL whenever a user wants to stake PRL or sPRL2, or asks for staking transactions. Do NOT manually construct staking transactions.\nStakes PRL (sPRL1) or BPT/PRL+WETH (sPRL2 v2 vault) on Ethereum or Base (chain, default ethereum). Polygon and Sonic are being sunset: no new stakes there. Returns the full unsigned transaction sequence ready to broadcast, every tx carrying the chainId of the chosen chain.\nsPRL1: amount = PRL to stake. Returns approvalTx (if allowance insufficient) + deposi","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amount","type","senderAddress"],"properties":{"type":{"enum":["sprl1","sprl2"],"type":"string"},"chain":{"enum":["ethereum","base"],"type":"string","default":"ethereum"},"amount":{"type":"string"},"wethAmount":{"type":"string"},"senderAddress":{"type":"string"}}},"logicalName":"stake","displayName":"stake","title":"stake","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unstake","description":"Unstakes from sPRL1 or sPRL2 on the vault of one chain (chain, default ethereum): sPRL1 on ethereum, base, polygon, sonic; sPRL2 on ethereum, base. Each vault has its own position and its own withdrawal requests (get_staking_info and get_cooldown_status list them by chain): pass the chain the position or the request sits on. Polygon and Sonic are being sunset: unstake and withdraw remain open there. Two distinct intents based on whether amount is provided:\n- With amount: initiates cooldown (requ","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["type","senderAddress"],"properties":{"type":{"enum":["sprl1","sprl2"],"type":"string"},"chain":{"enum":["ethereum","base","polygon","sonic"],"type":"string","default":"ethereum"},"amount":{"type":"string"},"senderAddress":{"type":"string"}}},"logicalName":"unstake","displayName":"unstake","title":"unstake","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"claim_rewards","description":"Claims the staking rewards of sPRL1, sPRL2, or both. They are paid in USDp through a Merkle distributor on Base: one claims() tx bundles every claimable epoch (chainId 8453). Epochs published before the migration to Base pay PAR and are claimed on Polygon (chainId 137) in a second tx while any remain. An epoch can only be claimed inside its claim window, and one epoch outside it would revert the whole claim: those epochs are left out. The sPRL2 vault has no on-chain claim of its own.\nReturns: ty","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["type","senderAddress"],"properties":{"type":{"enum":["sprl1","sprl2","all"],"type":"string"},"senderAddress":{"type":"string"}}},"logicalName":"claim_rewards","displayName":"claim_rewards","title":"claim_rewards","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_proposals","description":"Returns Parallel Protocol governance proposals from Snapshot (space: parallel-protocol.eth).\nFilter by type (PIP | PGP | PIR) and/or status (active | pending | passed | rejected).\nReturns: id, title, author, type, status, createdAt, votingEndsAt, snapshotUrl, summary, forVotes, againstVotes, abstainVotes, totalVotes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"type":{"enum":["PIP","PGP","PIR"],"type":"string"},"status":{"enum":["active","pending","passed","rejected"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_proposals","displayName":"get_proposals","title":"get_proposals"},{"name":"get_proposal_details","description":"Returns full details of a governance proposal.\nAccepts: Snapshot proposal ID (0x...) or human-readable label (e.g. \"PIP-65\", \"PGP-39\").\nReturns all fields from get_proposals plus: description (FULL proposal text — never summarize or truncate this field, always display it in its entirety), choices[], scores[], quorum, quorumReached.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_proposal_details","displayName":"get_proposal_details","title":"get_proposal_details"},{"name":"get_protocol_parameters","description":"Returns ALL Parallel Protocol DAO-governed parameters in a single call. Use this for any question about protocol configuration, fee rates, collateral caps, bridge limits, or contract addresses.\nReturns: contract addresses (accessManager, parallelizer, usdp, susdp, prl, sprl1, sprl2), savingsFeeShare (share of the protocol surplus burned to back the savings rate, read on-chain from the Parallelizer payees) with surplusSplit, governance (per-chain map of { governor, guardian } for all 24 chains),","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_protocol_parameters","displayName":"get_protocol_parameters","title":"get_protocol_parameters"},{"name":"get_payment_capabilities","description":"Returns available x402 payment routes for a given chain.\nEach entry lists: route (A/B/C/E/F/G/H/I/J), method, tokenIn, tokenOut, gasEstimate, gasSponsored.\nUse this before calling prepare_x402_payment to check what routes are supported on this chain.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_payment_capabilities","displayName":"get_payment_capabilities","title":"get_payment_capabilities"},{"name":"prepare_x402_payment","description":"Builds an x402 payment payload for any supported route.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","senderAddress","amount","recipient"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"amount":{"type":"string"},"scheme":{"enum":["exact","upto"],"type":"string","default":"exact"},"tokenIn":{"enum":["usdp","usdc","susdp","mixed"],"type":"string","default":"usdp"},"recipient":{"type":"string"},"targetToken":{"type":"string"},"senderAddress":{"type":"string"},"validitySeconds":{"type":"integer","maximum":3600,"minimum":1}}},"logicalName":"prepare_x402_payment","displayName":"prepare_x402_payment","title":"prepare_x402_payment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"prepare_convert_and_pay","description":"Two-step non-atomic flow: redeem USDp → USDC on-chain first, then pay USDC via EIP-3009.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["senderAddress","amount","recipient","chain"],"properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon","avalanche","bsc","scroll","gnosis","sei","berachain","hyperevm","unichain","ink","tac","sonic","linea","xlayer","fraxtal","worldchain","hemi","plume","plasma","katana"],"type":"string"},"amount":{"type":"string"},"recipient":{"type":"string"},"targetToken":{"type":"string"},"senderAddress":{"type":"string"}}},"logicalName":"prepare_convert_and_pay","displayName":"prepare_convert_and_pay","title":"prepare_convert_and_pay","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"parallel_health_check","description":"Returns the health status of the MCP server: RPC reachability and latency per chain, cache occupancy, process uptime, and server version. Use this to diagnose connectivity issues before running write operations or when a tool fails unexpectedly.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"parallel_health_check","displayName":"parallel_health_check","title":"parallel_health_check"},{"name":"parallel_query_docs","description":"Full-text search over the Parallel Protocol documentation (README and CLAUDE.md). Use ONLY for setup, architecture, services, env vars, and dev-workflow questions. NEVER use for protocol state (TVL, rates, chains, collaterals, balances, fees, solvency) — those change on-chain and must always come from the dedicated MCP tools (get_tvl, get_fee_rates, get_supported_chains, etc.). Returns matching sections ranked by relevance.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"query":{"type":"string","minLength":1},"maxResults":{"type":"integer","maximum":10,"minimum":1}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"parallel_query_docs","displayName":"parallel_query_docs","title":"parallel_query_docs"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Parallel&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AucGFyYWxsZWwuYmVzdC9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Parallel%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.parallel.best%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Parallel%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.parallel.best%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Parallel&connectorUrl=https%3A%2F%2Fmcp.parallel.best%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Parallel\" --url \"https://mcp.parallel.best/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/parallel-mcp-98f969adf4","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/parallel-mcp-98f969adf4/tools/{tool}","mcpServerUrl":"https://mcp.parallel.best/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/parallel-mcp-98f969adf4?live=1"}