Paradex MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Paradex MCP Servershow my current positions and account balance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Paradex Server
Model Context Protocol (MCP) server implementation for the Paradex trading platform.
Quickstart
New here? See the Quickstart Guide for step-by-step setup instructions for Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Claude.ai web, and ChatGPT.
Need a remote HTTP endpoint for ChatGPT or Claude.ai web? See the HTTP Deployment Guide for Railway, Render, Fly.io, AWS Lambda, and Docker/VPS options.
Related MCP server: MCP Paradex Server
Overview
This project provides a bridge between AI assistants (like Claude) and Paradex, a privacy-preserving multi-asset exchange on Starknet with spot, perpetuals, options, and commodity futures. Using the MCP standard, AI assistants can:
Retrieve market data from Paradex
Manage trading accounts and vaults
Place and manage orders
Monitor positions and balance
Prerequisites
Python 3.10+
uv — required for the
uvxrun methodmacOS: Install via
brew install uvso the binary lands in/usr/local/bin, which GUI apps like Claude Desktop can find. The curl-pipe install puts uv in~/.local/bin, which GUI apps cannot see.
Installation
Quick Start
Cursor IDE
Click to automatically configure this MCP server in Cursor:
Claude Code CLI
claude mcp add paradex uvx mcp-paradexSmithery (Claude Desktop)
npx -y @smithery/cli@latest mcp add @tradeparadex/mcp-paradex-py --client claudeStandard Installation
PyPI
pip install mcp-paradexuvx (Recommended)
uvx mcp-paradexDevelopment Setup
Clone the repository:
git clone https://github.com/tradeparadex/mcp-paradex-py.git cd mcp-paradex-pyInstall development dependencies:
uv sync --dev --all-extrasRun locally:
uv run mcp-paradex
Configuration
Environment Variables
Set these environment variables for authentication:
PARADEX_ENVIRONMENT: Set toprod,testnet, ornightly(default:prod)PARADEX_ACCOUNT_PRIVATE_KEY: Your Paradex account private key
Using .env File
cp .env.template .env
# Edit .env with your credentialsClient Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"paradex": {
"command": "uvx",
"args": ["mcp-paradex"],
"env": {
"PARADEX_ENVIRONMENT": "testnet",
"PARADEX_ACCOUNT_PRIVATE_KEY": "your_private_key"
}
}
}
}Docker (local / stdio)
# Build image
docker build . -t tradeparadex/mcp-paradex-py
# Run (public only)
docker run --rm -i tradeparadex/mcp-paradex-py
# Run with trading capabilities
docker run --rm -e PARADEX_ACCOUNT_PRIVATE_KEY=your_key -i tradeparadex/mcp-paradex-pyDocker (AWS Lambda / HTTP)
Use Dockerfile.aws for remote deployments via AWS Lambda with the
Lambda Web Adapter.
The adapter bridges Lambda invocations to the server's HTTP endpoint,
so no Lambda-specific code is needed.
# Build
docker build -f Dockerfile.aws -t tradeparadex/mcp-paradex-py-aws .
# Test locally (mirrors Lambda config)
docker run --rm -p 8080:8080 \
-e MCP_TRANSPORT=streamable-http \
-e MCP_STATELESS=true \
-e MCP_PORT=8080 \
-e PARADEX_ENVIRONMENT=prod \
tradeparadex/mcp-paradex-py-awsThe server will be available at http://localhost:8080/mcp.
Deploying to Lambda:
Push the image to ECR
Create a Lambda function from the container image
Set the Lambda Function URL invoke mode to
RESPONSE_STREAMSet environment variables on the Lambda function:
MCP_TRANSPORT=streamable-httpMCP_STATELESS=truePARADEX_ENVIRONMENT=prod(ortestnet)PARADEX_ACCOUNT_PRIVATE_KEY=your_key(optional, for trading)
Available Resources and Tools
Resources
System Resources
paradex://system/config- Get Paradex system configurationparadex://system/time- Get current system timeparadex://system/state- Get system operational state
Market Resources
paradex://markets- List of available marketsparadex://market/summary/{market_id}- Detailed market information
Vault Resources
paradex://vaults- List all vaultsparadex://vaults/config- Global vault configurationparadex://vaults/balance/{vault_id}- Vault balanceparadex://vaults/summary/{vault_id}- Comprehensive vault summaryparadex://vaults/transfers/{vault_id}- Deposit/withdrawal historyparadex://vaults/positions/{vault_id}- Current trading positionsparadex://vaults/account-summary/{vault_id}- Trading account information
Tools
System Tools
paradex_system_config- Get global system configurationparadex_system_state- Get current system state
Market Tools
paradex_markets- Get detailed market informationparadex_market_summaries- Get market summaries with metricsparadex_funding_data- Get historical funding rate dataparadex_orderbook- Get current orderbook with customizable depthparadex_klines- Get historical candlestick dataparadex_trades- Get recent tradesparadex_bbo- Get best bid and offer
Account Tools
paradex_account_summary- Get account summaryparadex_account_positions- Get current positionsparadex_account_fills- Get trade fillsparadex_account_funding_payments- Get funding paymentsparadex_account_transactions- Get transaction history
Order Tools
paradex_open_orders- Get all open ordersparadex_create_order- Create new orderparadex_cancel_orders- Cancel existing ordersparadex_order_status- Get order statusparadex_orders_history- Get historical orders
Vault Tools
paradex_vaults- Get detailed vault informationparadex_vaults_config- Get global vault configurationparadex_vault_balance- Get vault balanceparadex_vault_summary- Get comprehensive vault summaryparadex_vault_transfers- Get deposit/withdrawal historyparadex_vault_positions- Get current vault positionsparadex_vault_account_summary- Get vault trading account info
Trading Analysis Prompts
Market Analysis
market_overview- Comprehensive crypto market overviewmarket_analysis- Detailed technical and microstructure analysis
Position and Portfolio Management
position_management- Comprehensive position analysiscreate_optimal_order- Design optimal order parametershedging_strategy- Develop effective hedging strategiesportfolio_risk_assessment- Thorough portfolio risk analysisliquidation_protection- Identify and mitigate liquidation risks
Investment Strategies
vault_analysis- Comprehensive vault analysis for investment decisionsfunding_rate_opportunity- Identify funding rate arbitrage opportunitiestrading_consultation- Interactive trading advice and consultation
Documentation MCP
Enhanced results with Paradex documentation access:
"paradex-docs-mcp": {
"command": "uvx",
"args": [
"--from",
"mcpdoc",
"mcpdoc",
"--urls",
"Paradex:https://docs.paradex.trade/llms.txt",
"--transport",
"stdio"
]
}Contributing
Please see CONTRIBUTING.md for information on how to contribute to this project, development setup, and our coding standards.
License
Available Tools
33 toolsparadex_account_balanceAccount BalancesARead-onlyIdempotent
Get token balances for your account (e.g. USDC, DIME).
Use this tool when you need to:
- Check how much of each token you hold
- Verify available USDC balance before depositing or withdrawing
- See all token denominations in your account
Example use cases:
- Checking USDC balance before a deposit/withdrawal
- Viewing DIME or other token holdings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, indicating safe reading. The description adds no additional behavioral traits beyond the obvious (getting balances). For a zero-parameter readonly tool, this is adequate but does not go beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: a single introductory sentence followed by clear bullet points for usage. Every sentence is purposeful and front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an existing output schema, the description fully covers what the tool does and when to use it. It is complete for a simple balance-checking tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters (schema coverage 100%), so no parameter documentation is needed. The description adds context by mentioning token types (USDC, DIME), which helps the agent understand the output. Baseline for zero params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get token balances for your account' with specific examples like USDC and DIME. It distinguishes from sibling tools like account_overview or account_summary by focusing specifically on balances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly lists when to use this tool with bullet points (check holdings, verify USDC before deposit/withdrawal, see all denominations). It provides example use cases but does not explicitly mention when not to use or alternative tools. The context is clear enough for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_account_fillsTrade FillsARead-onlyIdempotent
Analyze your executed trades to evaluate performance and execution quality.
Use this tool when you need to:
- Review your trading history across specific markets
- Calculate your average entry price for multi-fill positions
- Analyze execution quality compared to intended prices
- Track realized PnL from completed trades
- Verify order execution details for reconciliation
Detailed fill information is essential for performance analysis and
understanding how your orders were actually executed.
Example use cases:
- Calculating volume-weighted average price (VWAP) of your entries
- Analyzing execution slippage from your intended prices
- Reviewing trade history for tax or accounting purposes
- Tracking commission costs across different markets
- Identifying which of your strategies produced the best execution
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Filter by market ID. | |
| start_unix_ms | Yes | Start time in unix milliseconds. | |
| end_unix_ms | Yes | End time in unix milliseconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral context about analyzing execution quality, tracking PnL, and verifying order details, which goes beyond the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and examples. It is concise, front-loads the purpose, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers use cases and example scenarios comprehensively. However, it does not mention pagination or rate limits, which could be relevant for large fill histories. Still, with output schema present, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all 3 parameters. The description adds minimal additional meaning beyond the schema, such as explaining why date range matters for analysis, but the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes executed trades, reviews trading history, and calculates average entry price. It distinguishes from siblings like paradex_orders_history and paradex_trades by focusing on account-specific fills for performance analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool with bullet points and example use cases. However, it does not mention when not to use it or compare to alternatives like paradex_orders_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_account_funding_paymentsFunding PaymentsARead-onlyIdempotent
Track your funding payment history to understand its impact on P&L.
Use this tool when you need to:
- Calculate total funding costs or gains for a position
- Analyze how funding has affected your overall performance
- Plan position timing around funding payment schedules
- Compare funding costs across different markets
- Account for funding in your trading strategy profitability
Funding payments can significantly impact trading P&L,
especially for longer-term positions or in markets with volatile funding rates.
Example use cases:
- Calculating the total funding component of your P&L
- Comparing funding costs against trading profits
- Planning position entries/exits around funding payment times
- Identifying markets where funding has been consistently favorable
- Reconciling funding payments for accounting purposes
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | No | Filter by market ID. | |
| start_unix_ms | Yes | Start time in unix milliseconds. | |
| end_unix_ms | Yes | End time in unix milliseconds. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds context about the impact of funding payments on P&L, which is useful but not critical. It does not disclose pagination, rate limits, or output format, which would be needed for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and examples, making it easy to scan. It is front-loaded with the main purpose. However, a few sentences are somewhat repetitive (e.g., 'Funding payments can significantly impact trading P&L') and could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, no output schema, read-only), the description is fairly complete. It explains what the tool does, when to use it, and provides use cases. However, it does not describe the response format or any limitations like historical depth, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the parameters are already well-documented. The description does not add significant meaning beyond the schema; it mentions 'position timing' but that is more about usage than parameter semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Funding Payments' and description clearly state it tracks funding payment history for a specific account. It distinguishes from sibling tools like paradex_funding_data (market-wide rates) by focusing on account-level impact on P&L. The verb 'track' and resource 'funding payment history' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists five scenarios for using the tool (e.g., calculating total funding costs, planning position timing) and provides example use cases. However, it does not explicitly contrast with alternatives like paradex_funding_data for market-level data, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_account_keysAccount Keys & TokensARead-onlyIdempotent
List all credentials registered for this account: Paradex subkeys and API tokens.
Use this tool when you need to:
- Audit which subkeys and API tokens have access to the account
- Verify that a generated subkey was successfully registered on Paradex
- Check token expiry dates or identify revoked tokens
- Confirm key setup before starting agent trading
Returns:
- subkeys: Paradex keypairs registered for on-chain signing (e.g. agent keys)
- tokens: JWT / API key tokens for REST API access
Example use cases:
- After registering a subkey, list keys to confirm it appears as active
- Reviewing active tokens to identify any that are near expiry
- Verifying agent credential setup during onboarding
| Name | Required | Description | Default |
|---|---|---|---|
| include_revoked | No | Include revoked subkeys in results. | |
| with_invalid_tokens | No | Include expired or revoked API tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| subkeys | Yes | Paradex subkeys used for on-chain signing. |
| tokens | Yes | API tokens (JWTs / API keys) for REST access. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, establishing safety. Description adds context about listing credentials and return types but does not disclose additional behavioral traits beyond what annotations convey. Adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose and uses bullet points and examples. It is reasonably concise, though some redundancy exists (e.g., repeated 'subkeys and API tokens'). Overall efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (list with two optional boolean params) and presence of output schema, the description is complete. It covers purpose, usage guidelines, and examples. No additional context is necessary for an agent to correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described clearly in the input schema. The description mentions checking token expiry and revoked tokens, which hints at the parameters but adds no new meaning beyond their schema descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all credentials registered for this account: Paradex subkeys and API tokens.' It uses specific verb+resource and distinguishes from siblings like paradex_generate_subkey (which generates keys) and paradex_account_overview (broader account info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use: audit, verify registration, check expiry, confirm setup. It provides clear context and example use cases. However, it does not explicitly state when not to use or list alternatives, though the sibling tools provide implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_account_overviewAccount OverviewARead-onlyIdempotent
Get a complete snapshot of your account: margin health, token balances,
open positions, fee rates, and margin methodology in a single call.
Use this instead of calling paradex_account_summary, paradex_account_balance,
and paradex_account_positions separately.
Returns:
- summary: account value, free collateral, margin requirements, health status
- balances: token balances (USDC, DIME, etc.)
- positions: all open positions with P&L and liquidation prices
- info: account fees (maker/taker rates for all product types), account kind,
and isolation mode if applicable
- margin: margin methodology (cross_margin or portfolio_margin) and per-market
leverage/margin-type configuration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | Yes | |
| balances | Yes | |
| positions | Yes | |
| info | No | Account fees, kind, and isolation mode. |
| margin | No | Margin methodology and per-market leverage config. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds value by detailing the five return sections (summary, balances, positions, info, margin), giving the agent a concrete picture of what to expect beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one introductory sentence, one usage directive, and a bulleted list of return sections. Every sentence earns its place, and the structure is highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is an output schema (not shown but referenced in context signals), the description need not explain return values beyond listing the sections. It also clarifies that this tool consolidates multiple sibling calls, which is key context. Fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so no additional meaning is needed. Baseline is 4. The description does not need to explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it provides a 'complete snapshot' of account details, listing specific categories (margin health, balances, positions, fees, margin methodology). Explicitly differentiates from sibling tools like paradex_account_summary, paradex_account_balance, and paradex_account_positions by positioning itself as a consolidated alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly advises 'Use this instead of calling paradex_account_summary, paradex_account_balance, and paradex_account_positions separately', providing explicit when-to-use guidance. No when-not-to is needed given it is a comprehensive read-only endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_account_positionsAccount PositionsARead-onlyIdempotent
Analyze your open positions to monitor exposure, profitability, and risk.
Use this tool when you need to:
- Check the status and P&L of all your open positions
- Monitor your liquidation prices and margin requirements
- Assess your exposure across different markets
- Make decisions about position management (scaling, hedging, closing)
Understanding your current positions is fundamental to proper risk management
and is the starting point for many trading decisions.
Example use cases:
- Checking the unrealized P&L of your positions
- Monitoring liquidation prices during market volatility
- Assessing total exposure across related assets
- Verifying entry prices and position sizes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent. Description adds behavioral context: monitors exposure, profitability, risk, liquidation prices, margin requirements. Could mention data freshness or rate limits but overall good.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points and examples. Some redundancy between 'fundamental to risk management' and earlier points, but overall effective and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema, the description fully covers what the tool does and when to use it. No missing information for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Description still adds value by explaining the output context (P&L, liquidation prices, entry prices). No additional param info needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Analyze your open positions' with specific verbs and resources. It distinguishes from siblings like paradex_account_balance and paradex_open_orders by focusing on positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use the tool (check status/P&L, monitor liquidation prices, assess exposure, position management) and provides concrete example use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_account_profileAccount Profile & SettingsARead-onlyIdempotent
Get static account profile and display settings.
Use this tool when you need to:
- Check your username or referral code
- Review per-market max slippage limits
- Inspect referral configuration (commission rate, discount rate, minimum volume)
- Check TAP affiliate status and share rates
- Review notification preferences or linked social accounts
- See the AI agent WebSocket URL for this account
This data changes infrequently. For live financial data (balances, positions,
margin health, fee rates), use paradex_account_overview instead.
Returns:
- profile: username, referral config, market_max_slippage, notifications,
social links, TAP/XP rates, NFT holdings, AI agent URL
- settings: trading_value_display preference (SPOT_NOTIONAL or MARKET_VALUE)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds value by noting 'This data changes infrequently,' which is a behavioral trait beyond what annotations convey. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with clear structure: a one-sentence summary, bullet-pointed use cases, and a separate returns section. Every sentence adds value, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, comprehensive annotations, and an output schema (mentioned), the description fully covers what the tool does, when to use it, and what it returns. It also provides enough context to differentiate from 34 sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, and schema coverage is 100%. The description does not need to elaborate on parameters, and the baseline score of 4 is appropriate as the description adds no parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves static account profile and display settings, lists specific use cases, and distinguishes it from paradex_account_overview for live financial data. The verb 'Get' and resource 'account profile' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use the tool with bullet points ('Use this tool when you need to:') and when not to use it ('For live financial data... use paradex_account_overview instead'). Naming the alternative tool provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_account_summaryAccount SummaryARead-onlyIdempotent
Get a snapshot of your account's current financial status and trading capacity.
Use this tool when you need to:
- Check your current available and total balance
- Understand your margin utilization and remaining trading capacity
- Verify your account health and distance from liquidation
- Get an overview of realized and unrealized P&L
This provides the essential financial information needed to make informed
trading decisions and manage risk appropriately.
Example use cases:
- Checking available balance before placing new orders
- Monitoring account health during volatile market conditions
- Assessing realized and unrealized P&L for performance tracking
- Verifying margin requirements and utilization
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| account | No | User's starknet account |
| account_value | No | Current account value [with unrealized P&Ls] |
| free_collateral | No | Free collateral available (Account value in excess of Initial Margin required) |
| initial_margin_requirement | No | Amount required to open trade for the existing positions |
| maintenance_margin_requirement | No | Amount required to maintain exisiting positions |
| margin_cushion | No | Acc value in excess of maintenance margin required |
| seq_no | No | Unique increasing number (non-sequential) that is assigned to this account update. Can be used to deduplicate multiple feeds |
| settlement_asset | No | Settlement asset for the account |
| status | No | Status of the acc - like ACTIVE, LIQUIDATION |
| total_collateral | No | User's total collateral |
| updated_at | No | Account last updated time |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint, confirming safe, non-destructive behavior. Description adds context that it's a snapshot, no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points, front-loaded main purpose, efficient sentences with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and output schema present, description adequately covers all needed context for a summary tool. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline is 4. Description adds meaning by explaining the tool returns financial status and trading capacity, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves an account snapshot of financial status and trading capacity. It lists specific uses like checking balance, margin utilization, health, and P&L, distinguishing it from siblings like account_balance (specific balance) and account_overview (broader).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use (check balance, understand margin, verify health, get P&L) and gives example use cases. Lacks explicit when-not-to-use but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_account_transactionsAccount TransactionsARead-onlyIdempotent
Get account transaction history.
Retrieves a filtered history of account transactions, including deposits,
withdrawals, trades, funding payments, and other account activities.
Use transaction_type and time filters to limit the results and avoid
overwhelming the client.
This tool is valuable for:
- Reconciliation of account activity
- Auditing trading history
- Tracking deposits and withdrawals
- Analyzing funding payments over time| Name | Required | Description | Default |
|---|---|---|---|
| transaction_type | No | Filter by transaction type. | |
| start_unix_ms | Yes | Start time in unix milliseconds. | |
| end_unix_ms | Yes | End time in unix milliseconds. | |
| limit | No | Maximum number of transactions to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. Description adds value by specifying the scope (all account activities) and the filtering mechanism, which aids understanding without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and front-loaded: purpose first, then details, then use cases. No filler sentences; each sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values are covered. The description adequately covers purpose, filtering guidance, and use cases. Could mention pagination via the limit parameter, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions. The description reinforces the importance of filters to limit results, adding practical context beyond the schema's terse descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get account transaction history' and enumerates specific activity types (deposits, withdrawals, trades, funding payments), distinguishing it from sibling tools like paradex_account_fills (fills only) and paradex_account_funding_payments (funding only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Advises using transaction_type and time filters to avoid overwhelming the client, and lists concrete use cases (reconciliation, auditing, tracking, analyzing). Could explicitly contrast with dedicated sibling tools, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_bboBest Bid/OfferARead-onlyIdempotent
Get the current best available prices for immediate execution decisions.
Use this tool when you need to:
- Make quick trading decisions without full orderbook depth
- Calculate current spread costs before placing orders
- Monitor real-time price changes efficiently
- Get a snapshot of current market conditions
- Determine fair mid-price for calculations
The BBO provides the most essential price information with minimal data,
perfect for quick decisions or when full orderbook depth isn't needed.
Example use cases:
- Calculating current trading spreads before placing orders
- Monitoring real-time price movements efficiently
- Determining execution prices for immediate market orders
- Calculating mid-price for order placement strategies
- Setting appropriate limit order prices to improve fill chances
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market symbol to get BBO for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ask | No | Best ask price |
| ask_size | No | Best ask size |
| bid | No | Best bid price |
| bid_size | No | Best bid size |
| last_updated_at | No | Last update to the orderbook in milliseconds |
| market | No | Symbol of the market |
| seq_no | No | Sequence number of the orderbook |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate `readOnlyHint: true` and `idempotentHint: true`, so the description adds context about data minimality and suitability for quick decisions. No contradictions; however, it does not disclose exact fields returned (handled by output schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a lead sentence followed by bullet points and examples. It is slightly verbose (e.g., 'perfect for quick decisions or when full orderbook depth isn't needed' could be merged), but overall efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, clear annotations, and presence of an output schema, the description covers usage scenarios thoroughly. It explains why and when to use the BBO, which suffices for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter `market_id` has a clear schema description ('Market symbol to get BBO for'). With 100% schema coverage, the description adds no additional semantic meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the best bid/offer prices for immediate execution decisions. It uses specific verbs ('Get', 'Calculate', 'Monitor') and distinguishes from sibling tools like `paradex_orderbook` by emphasizing 'without full orderbook depth'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use (e.g., 'Make quick trading decisions without full orderbook depth', 'Calculate current spread costs') and provides example use cases. It implies alternatives by contrasting with full orderbook depth, helping the agent select the appropriate tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_cancel_ordersCancel OrdersADestructive
Cancel pending orders to manage exposure or adjust your trading strategy.
Use this tool when you need to:
- Remove stale limit orders that are no longer desirable
- Quickly reduce market exposure during volatility
- Update your order strategy by removing existing orders
- Clear your order book before implementing a new strategy
- React to changing market conditions by canceling pending orders
Order cancellation is a critical risk management function and allows you
to quickly adapt to changing market conditions.
Example use cases:
- Canceling limit orders when your outlook changes
- Removing all orders during unexpected market volatility
- Canceling a specific order identified by order ID
- Clearing all orders for a specific market
- Removing stale orders before placing new ones
Calling without any parameters will cancel all orders.
Succesful response indicates that orders were queued for cancellation.
Check order status using order id.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | No | Order id (received from create_order) | |
| client_id | No | Client id (provided by you on create_order) | |
| market_id | No | Market is the market to cancel orders for | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds key behavioral info beyond destructiveHint: 'Calling without any parameters will cancel all orders' and 'successful response indicates queueing for cancellation'. No inconsistency with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Reasonably structured with sections, but includes some redundancy (e.g., reacting to market conditions mentioned twice in usage list). Could be more concise while retaining essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers critical behaviors (all-cancel default, queued response, post-cancel check). Output schema exists so return details not needed. Minor gap: no mention of behavior for non-existent order IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions. Description reinforces but does not add new meaning beyond examples and the all-cancel behavior. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'cancel' and resource 'pending orders' with stated purpose 'manage exposure or adjust strategy'. Distinguishes well from sibling tools like create_order or open_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use (remove stale orders, reduce exposure, etc.) and provides example use cases. Does not explicitly state when not to use or compare to alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_create_orderCreate OrderADestructive
Execute trades on Paradex with precise control over all order parameters.
Use this tool when you need to:
- Enter a new position based on your trading strategy
- Set limit orders at specific price levels
- Create stop-loss or take-profit orders for risk management
- Implement complex trading strategies with conditional orders
This is the primary tool for executing your trading decisions on Paradex,
with full control over order type, size, price, and execution parameters.
Example use cases:
- Setting limit orders at key support/resistance levels
- Placing stop-limit orders to manage risk on existing positions
- Executing market orders for immediate entry or exit
- Creating reduce-only orders to ensure you don't flip position direction
Succesful response indicates that orders were queued for execution.
Check order status using order id.
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market identifier. | |
| order_side | Yes | Order side. | |
| order_type | Yes | Order type. | |
| size | Yes | Order size. | |
| price | Yes | Order price (required for LIMIT orders). | |
| trigger_price | Yes | Trigger price for stop limit orders. | |
| instruction | No | Instruction for order execution. | GTC |
| reduce_only | No | Reduce-only flag. | |
| client_id | Yes | Client-specified order ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account | No | Paradex Account |
| avg_fill_price | No | Average fill price of the order |
| cancel_reason | No | Reason for order cancellation if it was closed by cancel |
| client_id | No | Client order id provided by the client at order creation |
| created_at | No | Order creation time |
| flags | No | Order flags, allow flag: REDUCE_ONLY |
| id | No | Unique order identifier generated by Paradex |
| instruction | No | Execution instruction for order matching |
| last_updated_at | No | Order last update time. No changes once status=CLOSED |
| market | No | Market |
| price | No | Order price. 0 for MARKET orders |
| published_at | No | Timestamp in milliseconds when order was sent to the client |
| received_at | No | Timestamp in milliseconds when order was received by API service |
| remaining_size | No | Remaining size of the order |
| request_info | No | Additional request information for orders |
| seq_no | No | Unique increasing number (non-sequential) that is assigned to this order update and changes on every order update. Can be used to deduplicate multiple feeds. WebSocket and REST responses use independently generated seq_no per event. |
| side | No | Order side |
| size | No | Order size |
| status | No | Order status |
| stp | No | Self Trade Prevention mode |
| timestamp | No | Order signature timestamp |
| trigger_price | No | Trigger price for stop order |
| type | No | Order type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint: true), the description adds valuable behavioral context: successful response means orders are queued for execution, not immediately filled, and recommends checking order status using order ID. It also notes different order types like reduce-only for risk management.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and sections, and it front-loads the main purpose. It is around 150 words; while efficient, some example use cases could be condensed further.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 parameters, 7 required, enums, output schema), the description covers what the agent needs: how to interpret success (queued, not filled), where to check status, and typical use cases. No major gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already documents each parameter. The description adds no extra parameter-specific details beyond the general statement of 'precise control.' Baseline 3 is appropriate as the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute trades on Paradex with precise control over all order parameters.' It distinguishes itself as the primary tool for order execution among many related sibling tools, providing specific use cases and examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use this tool (entering positions, limit orders, stop-loss, etc.) but does not explicitly state when not to use it or suggest alternative tools. This is a minor omission given the clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_filters_modelFilters SchemaARead-onlyIdempotent
Get detailed schema information to build precise data filters.
Use this tool when you need to:
- Understand exactly what fields are available for filtering
- Learn the data types and formats for specific fields
- Build complex JMESPath queries with correct syntax
- Create sophisticated filtering and sorting expressions
Knowing the exact schema helps you construct precise filters that
return exactly the data you need, avoiding trial and error.
Example use cases:
- Learning what fields exist in market data responses
- Finding the correct property names for filtering
- Understanding data types for numerical comparisons
- Building complex multi-criteria filters for large datasets
| Name | Required | Description | Default |
|---|---|---|---|
| tool_name | Yes | The name of the tool to get the filters for. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint and idempotentHint true. The description adds context about the tool's purpose without contradicting annotations. It does not detail behavior beyond schema provision, but with annotations present, the description is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear bullet points and front-loaded overview. While slightly verbose with examples, it efficiently conveys purpose without unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (implied), the description sufficiently covers the tool's role and usage scenarios. It addresses common needs like building complex filters, making it complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'tool_name' is fully described in the schema with 100% coverage. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed schema information for building filters, with specific examples of use cases like understanding fields and data types. It is distinct from sibling tools which focus on data retrieval or account management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool, such as understanding available fields and building JMESPath queries. It provides context for appropriate use, though it does not mention when not to use it or alternatives, which is acceptable given the unique purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_funding_dataFunding DataARead-onlyIdempotent
Analyze funding rates for potential funding arbitrage or to understand holding costs.
Use this tool when you need to:
- Calculate expected funding payments for a position
- Find markets with extreme funding rates for potential arbitrage
- Understand historical funding patterns for a market
- Evaluate the cost of holding a position over time
This data is critical for assessing the carrying cost of positions
and identifying potential funding arbitrage opportunities.
Example use cases:
- Finding markets with negative funding for "paid to hold" opportunities
- Calculating the funding component of a trade's P&L
- Comparing funding rates across different assets for relative value trades
- Analyzing funding rate volatility to predict potential rate changes
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market symbol to get funding data for. | |
| start_unix_ms | Yes | Start time in unix milliseconds. | |
| end_unix_ms | Yes | End time in unix milliseconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds context about the importance of funding data but does not disclose additional behavioral traits such as data freshness, pagination, or rate limits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and front-loaded purpose. Some redundancy exists (e.g., 'critical' repeated), but it remains efficient for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description appropriately focuses on use cases and when to use the tool. It covers common scenarios but lacks details on data frequency or limitations, which is acceptable for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are clear. The tool description does not add new meaning to the parameters beyond what is in the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states analyzing funding rates for arbitrage or holding costs, with specific use cases and examples. It distinguishes its purpose from sibling tools by focusing on funding data rather than account data or market summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool with bullet points and example use cases. However, it does not mention when not to use this tool or suggest alternatives like paradex_klines for historical data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_generate_subkeyGenerate SubkeyA
Generate a Paradex keypair for use as a subkey.
The private key is persisted locally and never leaves the machine.
Only the public key is returned so the frontend can register it on
Paradex on behalf of the agent.
Use this tool when you need to:
- Provision a new subkey for agent trading
- Create a keypair before registering the public key on Paradex
Example use cases:
- Setting up a new agent with its own trading subkey
- Rotating to a fresh subkey for an existing account
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional label for the key. Must contain only alphanumeric characters, hyphens, or underscores. If omitted, a default name is generated from the current timestamp. | |
| path | No | Optional absolute directory path where the key file will be stored. If omitted, defaults to ~/.mcp-paradex/keys/. The directory must exist and be writable. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | Label for the generated key |
| public_key | Yes | Paradex public key in hex format (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations: private key is persisted locally and never leaves the machine, only public key is returned. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with bullets, and every sentence adds value. It is front-loaded with the main action and avoids unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers key behavioral aspects and provides context about registration on Paradex as a next step. Given that an output schema exists, it is very complete, though it does not address duplicate keys or error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters are already described in the schema. The description does not add extra parameter information, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it generates a Paradex keypair as a subkey, explains where the private key stays and what is returned, and is clearly differentiated from sibling tools as no other tool generates keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists specific use cases and example scenarios, but does not explicitly state when NOT to use the tool or mention alternatives. However, the context is clear and no competing sibling tools exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_klinesCandlestick DataARead-onlyIdempotent
Analyze historical price patterns for technical analysis and trading decisions.
Use this tool when you need to:
- Perform technical analysis on historical price data
- Identify support and resistance levels from price history
- Calculate indicators like moving averages, RSI, or MACD
- Backtest trading strategies on historical data
- Visualize price action over specific timeframes
Candlestick data is fundamental for most technical analysis and trading decisions,
providing structured price and volume information over time.
Example use cases:
- Identifying chart patterns for potential entries or exits
- Calculating technical indicators for trading signals
- Determining volatility by analyzing price ranges
- Finding significant price levels from historical support/resistance
- Measuring volume patterns to confirm price movements
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market symbol to get klines for. | |
| resolution | No | The time resolution of the klines. | |
| start_unix_ms | Yes | Start time in unix milliseconds. | |
| end_unix_ms | Yes | End time in unix milliseconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. Description adds value by explaining the data is historical, structured, and used for technical analysis, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections but somewhat verbose; some repetition (e.g., 'technical analysis' appears multiple times). Could be trimmed while retaining key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description adequately covers usage, examples, and context. Does not detail return fields, which is acceptable given output schema availability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description does not add further parameter-level detail beyond the schema, so it meets baseline but doesn't exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool provides historical candlestick data for technical analysis, with a specific verb 'analyze' and resource 'historical price patterns'. It distinguishes from sibling tools like paradex_bbo (real-time BBO) and paradex_orderbook (order book) by emphasizing historical analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit bullet list of when to use the tool and example use cases. Lacks explicit when-not-to-use or alternatives, but the list implicitly guides appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_marketsMarketsARead-onlyIdempotent
Find markets that match your trading criteria or get detailed market specifications.
Use this tool when you need to:
- Understand exact tick sizes and minimum order sizes before placing trades
- Find all markets for a specific asset (e.g., all BTC-based markets)
- Compare contract specifications across different markets
- Identify markets with specific characteristics for your trading strategy
Retrieves comprehensive details about specified markets, including
base and quote assets, tick size, minimum order size, and other
trading parameters. If "ALL" is specified or no market IDs are provided,
returns details for all available markets.
Example use cases:
- Finding the minimum order size for a new trade
- Identifying markets with the smallest tick size for precise entries
- Checking which assets are available for trading
`asset_kind` is the type of asset in the market: `PERP` (perpetual futures),
`PERP_OPTION` (perpetual options), `SPOT` (spot markets), `OPTION` (dated/expiring options),
or `FUTURE` (dated futures).
You can use JMESPath expressions (https://jmespath.org/specification.html) to filter, sort, or limit the results.
Use the `paradex_filters_model` tool to get the filters for a tool.
Examples:
- Filter by base asset: "[?base_asset=='BTC']"
- Sort by 24h volume: "sort_by([*], &volume_24h)"
- Limit to top 5 by volume: "[sort_by([*], &to_number(volume_24h))[-5:]]"
| Name | Required | Description | Default |
|---|---|---|---|
| market_ids | No | Market symbols to get details for. | |
| jmespath_filter | No | JMESPath expression to filter, sort, or limit the results. | |
| limit | No | Limit the number of results to the specified number. | |
| offset | No | Offset the results to the specified number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| total | Yes | |
| limit | Yes | |
| offset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent. The description adds context about default behavior when no market IDs are given, how limit/offset work, and that JMESPath filtering is supported. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear beginning, bulleted use cases, parameter explanations, and examples. It is slightly verbose but each sentence adds value. The asset_kind paragraph may be marginally misplaced but does not detract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (JMESPath, filtering, multiple parameters) and presence of an output schema, the description adequately covers purpose, parameters, and usage patterns. It could mention rate limits or result ordering but is otherwise comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions, but the description adds substantial value: explains the 'ALL' default for market_ids, provides JMESPath examples, and clarifies limit/offset usage. This enriches the parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves market specifications and lists specific use cases like finding tick sizes and comparing contracts. It effectively distinguishes from sibling tools by focusing on detailed market data rather than summaries or order books.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete scenarios for when to use the tool (e.g., understanding tick sizes, finding all BTC markets). It references the paradex_filters_model tool but does not explicitly exclude other market tools like paradex_market_summaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_market_summariesMarket SummariesARead-onlyIdempotent
Identify the most active or volatile markets and get current market conditions.
Use this tool when you need to:
- Find the most active markets by volume for liquidity analysis
- Discover markets with significant price movements for momentum strategies
- Compare current prices across multiple assets
- Identify markets with unusual behavior for potential opportunities
- Get the best bid/ask (BBO) for a market — the summary includes bid and ask fields
- Get the current funding rate — the summary includes funding_rate
Retrieves current market summary information including mark price, best bid/ask,
last traded price, 24h volume and price change, funding rate, open interest, and
underlying spot price. If "ALL" is specified or no market IDs are provided,
returns summaries for all available markets.
Prefer this tool over separate paradex_bbo or paradex_funding_data calls when you
need price context before making a trading recommendation — all that data is here.
Example use cases:
- Finding high-volatility markets for short-term trading
- Identifying top gainers and losers for the day
- Comparing volume across different markets to find liquidity
- Getting the current price and 24-hour range for price analysis
- Checking bid/ask spread and funding rate before placing an order
You can use JMESPath expressions (https://jmespath.org/specification.html) to filter, sort, or limit the results.
Use the `paradex_filters_model` tool to get the filters for a tool.
Examples:
- Filter by high price: "[?high_price > `10000`]"
- Sort by volume: "sort_by([*], &volume)"
- Get top 3 by price change: "[sort_by([*], &to_number(price_change_percent))[-3:]]"
| Name | Required | Description | Default |
|---|---|---|---|
| market_ids | No | Market symbols to get summaries for. | |
| jmespath_filter | No | JMESPath expression to filter, sort, or limit the results. | |
| limit | No | Limit the number of results to the specified number. | |
| offset | No | Offset the results to the specified number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| total | Yes | |
| limit | Yes | |
| offset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint true. The description reinforces read-only nature and adds detail: returns all markets if 'ALL' or no IDs, supports JMESPath filtering, and includes limit/offset. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structure is clear with bullet points and examples, front-loading purpose and use cases. Slightly verbose but each sentence adds value; no redundant fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, full schema coverage, and output schema exists, the description is remarkably complete. It covers behavior with 'ALL', JMESPath filtering, typical use cases, and data fields included.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. The description adds value by explaining default behavior for market_ids, demonstrating JMESPath expressions, and clarifying limit/offset usage. Examples enrich understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Identify the most active or volatile markets and get current market conditions.' It lists specific use cases and distinguishes from sibling tools like paradex_bbo and paradex_funding_data by advising preference when price context is needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use (e.g., finding active markets, comparing prices, getting BBO/funding rate) and provides examples. Does not explicitly state when not to use, but gives strong contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_open_ordersOpen OrdersARead-onlyIdempotent
Monitor your active orders to track execution status and manage your trading strategy.
Use this tool when you need to:
- Check which of your orders are still pending execution
- Verify limit order prices and remaining quantities
- Determine which orders might need cancellation or modification
- Get a complete picture of your current market exposure
Keeping track of your open orders is essential for effective order management
and avoiding duplicate or conflicting trades.
Example use cases:
- Checking if your limit orders have been partially filled
- Verifying that a recently placed order was accepted by the exchange
- Identifying stale orders that should be canceled or modified
- Getting a consolidated view of all pending orders across markets
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | No | Filter by market. | ALL |
| limit | No | Limit the number of results to the specified number. | |
| offset | No | Offset the results to the specified number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| total | Yes | |
| limit | Yes | |
| offset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds that the tool is for monitoring and managing orders, which aligns but does not significantly expand beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and example use cases, but it is slightly verbose. It could be more concise without losing clarity, but it is not overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage, informative annotations, and presence of an output schema, the description covers the purpose and usage adequately. Example use cases add completeness, though it could benefit from mentioning the default market_id behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully documented in the schema. The description does not add parameter-specific details beyond what is already in the schema, earning a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs like 'monitor', 'check', 'verify', 'determine', and 'get' tied to a clear resource ('active orders'). It distinguishes from siblings such as paradex_order_status and paradex_orders_history by focusing on pending orders across markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use: checking pending orders, verifying prices/quantities, determining cancellation need, and getting market exposure. It does not mention when not to use or explicitly name alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_orderbookOrder BookARead-onlyIdempotent
Analyze market depth and liquidity to optimize order entry and execution.
Use this tool when you need to:
- Assess true liquidity before placing large orders
- Identify potential support/resistance levels from order clusters
- Determine optimal limit order prices for higher fill probability
- Detect order imbalances that might signal price direction
Understanding the orderbook is essential for effective trade execution,
especially for larger orders or in less liquid markets.
Example use cases:
- Finding the optimal limit price to ensure your order gets filled
- Estimating potential slippage for market orders of different sizes
- Identifying large resting orders that might act as support/resistance
- Detecting order book imbalances that could predict short-term price moves
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market symbol to get orderbook for. | |
| depth | No | The depth of the orderbook to retrieve. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the tool is safe and idempotent. The description adds valuable behavioral context, such as the importance for trade execution and examples of real-world applications, going beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a clear opener, a bullet list of use cases, a general statement, and example use cases. Every sentence adds value, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, output schema present), the description thoroughly covers purpose, usage scenarios, and practical examples. It does not need to explain return values because an output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with both parameters described. The description does not add additional parameter-specific semantics beyond what the schema provides; the use cases imply how parameters are used but do not explicitly elaborate on depth or market_id behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyze market depth and liquidity to optimize order entry and execution.' It uses a specific verb ('analyze') and resource (order book depth/liquidity), and the listed use cases differentiate it from sibling tools like paradex_bbo, paradex_klines, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists specific scenarios for use (e.g., assessing liquidity, identifying support/resistance, determining optimal prices, detecting imbalances). It provides clear contextual guidance, though it does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_orders_historyOrders HistoryARead-onlyIdempotent
Get historical orders.
Retrieves the history of orders for the account, including filled, canceled, and expired orders. This is useful for analyzing past trading activity and performance.
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Filter by market. | |
| start_unix_ms | Yes | Start time in unix milliseconds. | |
| end_unix_ms | Yes | End time in unix milliseconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations by specifying the types of orders retrieved, enhancing the agent's understanding of the operation's scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words, front-loaded with the core action, each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations and existence of an output schema, the description sufficiently explains the tool's purpose and coverage without requiring additional return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions; the description does not add extra parameter insights, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get' and resource 'historical orders', specifying included statuses (filled, canceled, expired), which distinguishes it from sibling tools like paradex_open_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies a use case for analyzing past trading activity but does not explicitly guide when to use this tool over alternatives or provide when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_order_statusOrder StatusARead-onlyIdempotent
Check the detailed status of a specific order for execution monitoring.
Use this tool when you need to:
- Confirm if a particular order was accepted and is active
- Check if an order has been filled, partially filled, or canceled
- Get execution details for a specific order
- Diagnose issues with order placement
- Track the status of important orders individually
Order status tracking is essential for verifying execution status
and troubleshooting any issues with specific orders.
Example use cases:
- Checking if a recently placed limit order is active in the book
- Verifying fill details of a specific order
- Determining why an order might have been rejected
- Confirming cancellation status of an order you attempted to cancel
- Getting execution timestamps for order lifecycle analysis
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order identifier. | |
| client_id | Yes | Client-specified order ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account | No | Paradex Account |
| avg_fill_price | No | Average fill price of the order |
| cancel_reason | No | Reason for order cancellation if it was closed by cancel |
| client_id | No | Client order id provided by the client at order creation |
| created_at | No | Order creation time |
| flags | No | Order flags, allow flag: REDUCE_ONLY |
| id | No | Unique order identifier generated by Paradex |
| instruction | No | Execution instruction for order matching |
| last_updated_at | No | Order last update time. No changes once status=CLOSED |
| market | No | Market |
| price | No | Order price. 0 for MARKET orders |
| published_at | No | Timestamp in milliseconds when order was sent to the client |
| received_at | No | Timestamp in milliseconds when order was received by API service |
| remaining_size | No | Remaining size of the order |
| request_info | No | Additional request information for orders |
| seq_no | No | Unique increasing number (non-sequential) that is assigned to this order update and changes on every order update. Can be used to deduplicate multiple feeds. WebSocket and REST responses use independently generated seq_no per event. |
| side | No | Order side |
| size | No | Order size |
| status | No | Order status |
| stp | No | Self Trade Prevention mode |
| timestamp | No | Order signature timestamp |
| trigger_price | No | Trigger price for stop order |
| type | No | Order type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds value by elaborating on behavioral details like execution monitoring, timestamps, and lifecycle analysis, which go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear main sentence followed by bullet-like use cases. It is not overly verbose and each sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 required params and an output schema, the description fully covers the tool's purpose, usage context, and examples. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both order_id and client_id. The description does not add new parameter information beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the detailed status of a specific order for execution monitoring. It distinguishes from siblings like paradex_open_orders (list) and paradex_orders_history (history) by focusing on individual order lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases (confirm acceptance, check fill status, diagnose issues) and example use cases. It does not explicitly state when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_pre_trade_checkPre-Trade CheckARead-onlyIdempotent
Validate a trade idea before submitting an order.
Use this tool when you need to:
- Confirm your account has sufficient free collateral for a trade
- Check whether a given order size is within market limits
- Get current bid/ask and existing position in one call
- Receive a single ready_to_trade flag with human-readable reasons if not ready
Use this instead of calling paradex_account_summary, paradex_account_positions,
paradex_market_summaries, and paradex_markets separately before placing an order.
Returns:
- account_status: account health (ACTIVE, LIQUIDATION, etc.)
- free_collateral: available collateral for new positions
- current_position: existing open position in this market, if any
- bbo: best bid/ask, mark price, and current funding rate
- market_constraints: tick size, min notional, position limit, order size increment
- estimates: fee, slippage, funding cost, and break-even using the account's actual fee tier
- ready_to_trade: True when account is healthy, collateral is positive,
and size is within market limits
- not_ready_reasons: list of reasons why ready_to_trade is False (empty when True)
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market symbol, e.g. 'BTC-USD-PERP'. | |
| side | Yes | Order side: 'BUY' or 'SELL'. | |
| size | Yes | Desired order size in base asset units. |
Output Schema
| Name | Required | Description |
|---|---|---|
| market_id | Yes | |
| side | Yes | |
| size | Yes | |
| account_status | Yes | |
| free_collateral | Yes | |
| current_position | Yes | |
| bbo | Yes | |
| market_constraints | Yes | |
| estimates | Yes | |
| ready_to_trade | Yes | |
| not_ready_reasons | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint and idempotentHint are true. The description confirms this is a validation check (not a mutation) and adds detailed behavioral context: returns account status, free collateral, current position, bbo, market constraints, estimates, ready flag, and reasons. There is no contradiction with annotations, and the description provides rich behavioral details beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, using bullet points for usage scenarios and return fields. Every sentence adds value, and the layout makes it easy to scan. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 required params, no nested objects, presence of output schema), the description provides a thorough overview of all return fields (account_status, free_collateral, current_position, bbo, market_constraints, estimates, ready_to_trade, not_ready_reasons). This fully informs the agent about what to expect and how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description mentions the three parameters (market_id, side, size) but does not add new semantic information beyond what is already in the schema (e.g., 'Market symbol, e.g. BTC-USD-PERP' is already in schema). It reinforces the context but does not enhance meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Validate a trade idea before submitting an order.' It lists specific use cases (confirming collateral, checking market limits, getting bid/ask and position) and clearly distinguishes from sibling tools by suggesting it replaces multiple separate calls. The verb-resource combination is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: to confirm sufficient free collateral, check order size within market limits, get current bid/ask and position, and receive a ready_to_trade flag. It also directs users to use this instead of calling other tools like paradex_account_summary, etc., clearly indicating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_system_configSystem ConfigurationARead-onlyIdempotent
Understand the exchange's global parameters and portfolio margin risk factors.
Use this tool when you need to:
- Check fee schedules before placing trades
- Verify trading limits and restrictions
- Understand exchange-wide parameters that affect your trading
- Review portfolio margin factors (hedged/unhedged margin, vol-shock params) per asset
Returns:
- config: raw system configuration (contract addresses, chain IDs, fee tiers, etc.)
- portfolio_margin: per-asset portfolio margin parameters used in PM calculations
Example use cases:
- Checking current fee tiers for different markets
- Verifying maximum leverage available for specific markets
- Reviewing portfolio margin risk factors before switching margin methodology
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| config | Yes | |
| portfolio_margin | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent and read-only hints. The description goes beyond by naming the two returned objects (config, portfolio_margin) and giving example fields (contract addresses, chain IDs, margin parameters), so the agent understands what to expect without requiring a separate call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (under 15 lines), with clear sections, bullet points, and a 'Returns' block. Every sentence adds value, and important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, high schema coverage, presence of annotations, and an output schema, the description fully covers what the agent needs: what the tool does, when to use it, and the structure of its output. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so description does not need to explain parameter meaning. Baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves exchange's global parameters and portfolio margin risk factors, using specific nouns like 'fee schedules', 'trading limits', and 'portfolio margin factors', distinguishing it from sibling tools like paradex_system_state or paradex_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit bullet points on when to use the tool, such as checking fee schedules, verifying trading limits, and reviewing portfolio margin factors. It includes example use cases. However, it does not explicitly state when not to use it or suggest alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_system_stateSystem StateARead-onlyIdempotent
Verify the exchange is fully operational before executing trades.
Use this tool when you need to:
- Check if Paradex is functioning normally before placing important orders
- Verify system status if you encounter unexpected behavior
- Confirm that maintenance periods are not in effect
- Check exchange clock synchronization with your own systems
This is especially important before executing critical trades or when
experiencing unexpected behavior from other API calls.
Example use cases:
- Verifying the exchange is operational before executing a trading strategy
- Checking if maintenance mode is active when experiencing delays
- Confirming exchange status during periods of market volatility
- Diagnosing API issues by checking system health
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| timestamp | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent. Description adds transparency about what it checks (maintenance, clock sync) without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points and examples, concise yet thorough. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, rich annotations, and output schema, the description fully covers when and why to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. Description adds no parameter info, but baseline is 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool verifies exchange operational status, with specific verb 'verify' and resource 'exchange'. It distinguishes from siblings as the only health check tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use scenarios are provided, including before critical trades, during unexpected behavior, maintenance checks, and clock sync. Example use cases add practical context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_tradesMarket TradesARead-onlyIdempotent
Analyze actual market transactions to understand market sentiment and liquidity.
Use this tool when you need to:
- Detect large trades that might signal institutional activity
- Calculate average trade size during specific periods
- Identify buy/sell pressure imbalances
- Monitor execution prices vs. order book prices
- Understand market momentum through trade flow
Trade data provides insights into actual market activity versus just orders,
helping you understand how other participants are behaving.
Example use cases:
- Detecting large "whale" transactions that might influence price
- Analyzing trade sizes to gauge market participation
- Identifying periods of aggressive buying or selling
- Understanding trade frequency as an indicator of market interest
- Comparing executed prices to orderbook mid-price for market impact analysis
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market symbol to get trades for. | |
| start_unix_ms | Yes | Start time in unix milliseconds. | |
| end_unix_ms | Yes | End time in unix milliseconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true and idempotentHint true, so the description focuses on behavioral context, such as providing insights into actual market activity versus orders. It includes example use cases that hint at typical behavior. It could mention data latency or historical depth but is adequate given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose, followed by bullet points and examples. It is well-structured but slightly verbose with redundant examples (e.g., bullet points repeated as separate bulleted use cases). Still clear and organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not explain return values. It covers purpose, use cases, and examples thoroughly. No major gaps; it provides sufficient context for an agent to understand the tool's value and typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description does not add significant meaning beyond the schema, mentioning only the market symbol and time range implicitly. Baseline 3 is appropriate as the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes actual market transactions, specifying the resource (market trades) and using verbs like 'analyze', 'detect', 'calculate'. It differentiates from sibling tools like paradex_orderbook (which shows orders) and paradex_market_summaries (summaries), making the purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage scenarios (detect large trades, calculate trade size, identify imbalances, etc.), which guides the agent on when to use this tool. However, it does not explicitly mention when not to use it or list alternative tools for similar purposes (e.g., orderbook for quotes).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_vault_account_summaryVault Account SummaryARead-onlyIdempotent
Get a comprehensive overview of a vault's trading account status.
Use this tool when you need to:
- Check account health and available margin
- Monitor total exposure and leverage
- Understand risk metrics and account status
- Assess trading capacity before placing new orders
- Get a consolidated view of account performance
This provides essential information about account standing and
trading capacity to inform risk management decisions.
Example use cases:
- Checking available margin before placing new orders
- Monitoring account health during market volatility
- Assessing total exposure across all markets
- Understanding maintenance margin requirements
- Planning position adjustments based on account metrics
| Name | Required | Description | Default |
|---|---|---|---|
| vault_address | Yes | The address of the vault to get account summary for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true, so the description adds value by detailing what information is returned (margin, leverage, risk metrics) and how it can inform decisions. This contextual enrichment goes beyond the annotations but doesn't contradict them. No behavioral traits are hidden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear lead sentence, bullet-style guidance, and examples. It is slightly lengthy but every sentence adds value. Could be trimmed slightly for brevity, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple input (one parameter), output schema exists, and annotations are present. The description covers purpose, use cases, and examples comprehensively. It adds context for risk management decisions. Minor gap: doesn't explain output structure despite output schema existing, but that is not required per rules.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter (vault_address) already described in schema. The description does not add additional meaning or format details beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a comprehensive overview of a vault's trading account status.' The verb 'Get' and resource 'comprehensive overview of a vault's trading account status' are specific. It distinguishes from sibling vault tools like paradex_vault_balance (balance only) and paradex_vault_overview (likely different scope) by focusing on account summary with risk metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists explicit use cases (check account health, monitor exposure, etc.) and examples (checking margin before orders, assessing risk). This provides clear context for when to use the tool. However, it does not explicitly state when not to use it or contrast with alternatives like paradex_vault_summary or paradex_account_summary, which slightly limits guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_vault_balanceVault BalanceARead-onlyIdempotent
Get the current balance of a specific vault.
Retrieves the current balance information for a specific vault, including available funds, locked funds, and total balance. This is essential for understanding the financial state of a vault before executing trades or withdrawals.
| Name | Required | Description | Default |
|---|---|---|---|
| vault_address | Yes | The address of the vault to get balance for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds context about the return data (available, locked, total balance), which is useful beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no filler. The first sentence is a clear action, the second details what is returned, and the third provides usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description does not need to explain return values. It covers purpose, usage guidance, and key details, making it complete for a simple read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter 'vault_address' is well-described in the schema. The description does not add additional semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the current balance of a specific vault' with specific fields (available funds, locked funds, total balance). It distinguishes from sibling tools like paradex_vault_overview and paradex_vault_positions by focusing solely on balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes guidance: 'essential for understanding the financial state of a vault before executing trades or withdrawals.' However, it does not explicitly exclude scenarios or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_vault_overviewVault OverviewARead-onlyIdempotent
Get a complete operational snapshot of a vault: token balances, open positions,
and trading account health in a single call.
Use this instead of calling paradex_vault_balance, paradex_vault_positions,
and paradex_vault_account_summary separately.
Returns:
- balances: vault token balances
- positions: all open positions with P&L and liquidation prices
- account_summary: margin health, free collateral, leverage
| Name | Required | Description | Default |
|---|---|---|---|
| vault_address | Yes | The vault contract address. |
Output Schema
| Name | Required | Description |
|---|---|---|
| balances | Yes | |
| positions | Yes | |
| account_summary | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, so the description does not need to repeat that. It adds value by detailing the return structure (balances, positions, account_summary) beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear single-sentence summary followed by bullet points for returns. Every word is necessary, no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (mentioned in context signals), so the description adequately covers return values. Combined with annotations and schema, all necessary context is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter (vault_address) is fully described in the schema (100% coverage), so the description adds no additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('complete operational snapshot of a vault'), and explicitly distinguishes from sibling tools by noting it replaces three separate calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use this tool ('Use this instead of calling ... separately') and names the alternatives, providing explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_vault_positionsVault PositionsARead-onlyIdempotent
Monitor active trading positions to track performance and manage risk.
Use this tool when you need to:
- Get a complete view of all open positions for a vault
- Monitor unrealized P&L across all positions
- Check liquidation prices and margin requirements
- Assess position sizing and leverage across markets
- Track entry prices and position duration
Position monitoring is fundamental to risk management and provides
the necessary information for trade management decisions.
Example use cases:
- Checking the current status of all open trades
- Monitoring unrealized profit/loss across positions
- Assessing liquidation risk during market volatility
- Comparing performance across different markets
- Planning adjustments to position sizes or leverage
| Name | Required | Description | Default |
|---|---|---|---|
| vault_address | Yes | The address of the vault to get positions for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true. Description adds behavioral context beyond annotations, such as tracking performance, risk management, and assessing liquidation risk, which helps the agent understand the tool's capabilities without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with a clear opening sentence, bullet points for use cases, and example scenarios. It is slightly verbose but each section adds value; could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present, high schema coverage), the description fully covers what the tool does and its typical use cases. No gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'vault_address' has a clear description. Description does not add additional semantics beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as monitoring active trading positions for a vault, with specific verbs like 'monitor' and 'track'. It distinguishes from sibling tools like 'paradex_account_positions' by focusing on vault-level positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use scenarios (e.g., checking open positions, monitoring P&L) and lists example use cases. Does not explicitly state when not to use or alternatives, but the context is clear given sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_vaultsVaultsARead-onlyIdempotent
Get detailed information about a specific vault or all vaults if no address is provided.
Retrieves comprehensive details about a specific vault identified by its address,
including configuration, permissions, and other vault-specific parameters.
Use jmespath_filter to reduce the number of results as much as possible as number of vaults can be large.
You can use JMESPath expressions to filter, sort, or limit the results.
Examples:
- Filter by owner: "[?owner_account=='0x123...']"
- Filter by status: "[?status=='ACTIVE']"
- Find vaults with specific strategy: "[?contains(strategies, 'strategy_id')]"
- Sort by creation date: "sort_by([*], &created_at)"
- Limit to newest vaults: "sort_by([*], &created_at)[-5:]"
- Select specific fields: "[*].{address: address, name: name, kind: kind, status: status}"
| Name | Required | Description | Default |
|---|---|---|---|
| vault_address | No | The address of the vault to get details for or empty string to get all vaults. | |
| jmespath_filter | No | JMESPath expression to filter, sort, or limit the results. | |
| limit | No | Limit the number of results to the specified number. | |
| offset | No | Offset the results to the specified number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| total | Yes | |
| limit | Yes | |
| offset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent, so the description builds on that by warning that the number of vaults can be large and recommending JMESPath filtering to manage results. This adds useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the purpose and then provides structured guidance and examples. It is reasonably concise, though slightly longer than the two-sentence ideal. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations are provided, the description covers the main use, filtering, and large dataset warning. It does not mention error conditions or differentiate from sibling vault tools, but overall is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds value by providing JMESPath filtering examples and usage guidance, enriching the semantics beyond what the schema alone offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Get detailed information about a specific vault or all vaults if no address is provided.' This clearly states the action (get) and resource (vaults), and distinguishes from sibling tools that focus on specific aspects like balance or positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using jmespath_filter to reduce results and provides examples, but it does not explicitly compare this tool to alternatives (e.g., when to use this vs. other vault-specific tools). No when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_vault_summaryVault SummaryARead-onlyIdempotent
Get a comprehensive summary of a specific vault or all vaults if no address is provided.
Retrieves a summary of all important information about a vault,
including balance, positions, recent activity, and performance metrics.
This provides a high-level overview of the vault's current state.
Use jmespath_filter to reduce the number of results as much as possible as number of vaults can be large.
You can use JMESPath expressions to filter, sort, or transform the results.
Examples:
- Filter by TVL: "[?to_number(tvl) > `10000`]"
- Filter by performance: "[?to_number(total_roi) > `5.0`]"
- Sort by TVL (descending): "reverse(sort_by([*], &to_number(tvl)))"
- Get top performers: "sort_by([*], &to_number(total_roi))[-3:]"
- Filter by recent returns: "[?to_number(roi_24h) > `0.5`]"
- Extract specific metrics: "[*].{address: address, tvl: tvl, total_roi: total_roi, volume_24h: volume_24h}"
| Name | Required | Description | Default |
|---|---|---|---|
| vault_address | No | The address of the vault to get summary for or None to get all vaults. | |
| jmespath_filter | No | JMESPath expression to filter or transform the result. | |
| limit | No | Limit the number of results to the specified number. | |
| offset | No | Offset the results to the specified number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| total | Yes | |
| limit | Yes | |
| offset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that the tool retrieves a summary with balance, positions, activity, and performance, and warns about large numbers of vaults, suggesting filtering. Annotations already indicate readOnly and idempotent, and the description adds useful context without contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with purpose, then details, then usage guidance with examples. Every sentence adds value without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to detail return values. It covers all necessary context: purpose, inputs (with examples), and practical usage advice, making it complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds significant value by providing JMESPath examples for the jmespath_filter parameter, enhancing semantic understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets a comprehensive summary of a specific vault or all vaults, using a specific verb and resource. It distinguishes from sibling tools by specifying the scope (vault summary) and mentions alternatives implicitly (e.g., filtering).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using jmespath_filter to reduce results due to large vault counts and provides examples. It does not explicitly mention when to use this tool versus other vault-specific tools (e.g., paradex_vault_positions), but the context is clear enough for an agent to choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paradex_vault_transfersVault TransfersARead-onlyIdempotent
Track deposit and withdrawal history for auditing and reconciliation.
Use this tool when you need to:
- Verify deposits have completed and are available for trading
- Track withdrawal status and confirm transaction settlement
- Audit the complete fund flow history for a vault
- Reconcile on-chain transactions with platform records
- Understand historical capital allocation patterns
Complete transfer history is essential for proper accounting and provides
a clear audit trail of all capital movements.
Example use cases:
- Confirming that a recent deposit was credited to your account
- Tracking the status of pending withdrawals
- Creating transaction reports for accounting or tax purposes
- Verifying the total amount deposited over time
- Analyzing deposit/withdrawal patterns for strategy insights
| Name | Required | Description | Default |
|---|---|---|---|
| vault_address | Yes | The address of the vault to get transfers for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, so the description's addition of 'audit trail' and 'reconciliation' adds context but no behavioral traits beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and includes a structured list of use cases and examples. It is slightly verbose but well-organized and helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, no output schema, and strong annotations, the description adequately covers usage context, examples, and purpose. It does not discuss return values but is sufficient for the agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter vault_address, which is described in the schema. The tool description adds no extra meaning beyond the schema's 'address of the vault to get transfers for.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it tracks deposit and withdrawal history for auditing/reconciliation, with specific verb and resource. It distinguishes from sibling tools like paradex_vault_balance and paradex_vault_overview by focusing on transfer history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a bulleted list of when to use the tool (e.g., verify deposits, track withdrawal status, audit fund flow). It lacks explicit when-not-to-use or alternatives, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
33 tool updates
v0.1.0- First observed
paradex_account_balance - First observed
paradex_account_fills - First observed
paradex_account_funding_payments - First observed
paradex_account_keys - First observed
paradex_account_overview - First observed
paradex_account_positions - First observed
paradex_account_profile - First observed
paradex_account_summary - First observed
paradex_account_transactions - First observed
paradex_bbo - First observed
paradex_cancel_orders - First observed
paradex_create_order - First observed
paradex_filters_model - First observed
paradex_funding_data - First observed
paradex_generate_subkey - First observed
paradex_klines - First observed
paradex_market_summaries - First observed
paradex_markets - First observed
paradex_open_orders - First observed
paradex_order_status - First observed
paradex_orderbook - First observed
paradex_orders_history - First observed
paradex_pre_trade_check - First observed
paradex_system_config - First observed
paradex_system_state - First observed
paradex_trades - First observed
paradex_vault_account_summary - First observed
paradex_vault_balance - First observed
paradex_vault_overview - First observed
paradex_vault_positions - First observed
paradex_vault_summary - First observed
paradex_vault_transfers - First observed
paradex_vaults
TDQS
Scored across 33 tools
All 33 tools have clearly distinct purposes. Account, market, order, system, and vault tools each target specific resources and actions without overlap. For example, account_balance vs account_fills vs account_positions are well-separated, and market tools like bbo, orderbook, klines, and market_summaries each provide different granularity of data.
Tools follow a consistent pattern: 'paradex_' prefix followed by snake_case area and action (e.g., paradex_account_balance, paradex_cancel_orders). Abbreviations like 'bbo' and 'klines' are standard in trading and do not break the pattern. The naming is predictable and clear.
With 33 tools, the count is above the typical well-scoped range of 3–15 and falls into the borderline/heavy category (16–25 is borderline; above 25 is considered too many per calibration). However, each tool serves a distinct purpose for a comprehensive trading platform, so while high, it is not excessive for the domain.
The tool surface covers core trading operations (account, orders, market data), vault management, and system status. Minor gaps exist: no dedicated deposit/withdrawal tool, no order amendment, and no API token management beyond listing. These are non-critical but prevent a perfect score.
Maintenance
Related MCP Connectors
- FensoryOAuthcom.fensory
Non-custodial trading for AI agents: 1,900+ assets — US stocks, treasuries, gold, 250+ perps.
Trade across 22+ exchanges and brokers from any MCP-capable AI agent, no install required.
Cross-asset market data and LLM inference for AI agents. Pay-per-call in USDC via x402.
Trade 16 crypto exchanges + MetaTrader 5 from your AI assistant via one MCP connection.
Related MCP Servers
- AlicenseAqualityFmaintenanceA Model Context Protocol server implementation that enables AI assistants to interact with the Paradex perpetual futures trading platform, allowing for retrieving market data, managing trading accounts, placing orders, and monitoring positions.169MIT
- AlicenseAqualityNot gradedmaintenanceA bridge between AI assistants and the Paradex perpetual futures trading platform that enables retrieving market data, managing trading accounts, placing orders, and monitoring positions.26MIT
- AlicenseBqualityAmaintenanceProvides Binance futures market data, trading capabilities, and technical indicators to AI assistants through the Model Context Protocol.5764 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely trade on Hyperliquid perpetual exchange, including order placement, position management, market data retrieval, and vault operations via natural language.21MIT