paradex_system_config
Retrieve exchange-wide parameters including fee schedules, trading limits, and leverage settings to inform trading decisions.
Instructions
Understand the exchange's global parameters that affect all trading activity.
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
- Keep up with changes to the exchange's configuration
This information provides important context for making trading decisions and
understanding how the exchange operates.
Example use cases:
- Checking current fee tiers for different markets
- Verifying maximum leverage available for specific markets
- Understanding global trading limits or restrictions
- Checking if any exchange-wide changes might affect your trading strategyInput Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| starknet_gateway_url | Yes | ||
| starknet_fullnode_rpc_url | Yes | ||
| starknet_fullnode_rpc_base_url | Yes | ||
| starknet_chain_id | Yes | ||
| block_explorer_url | Yes | ||
| paraclear_address | Yes | ||
| paraclear_decimals | Yes | ||
| paraclear_account_proxy_hash | Yes | ||
| paraclear_account_hash | Yes | ||
| oracle_address | Yes | ||
| bridged_tokens | Yes | ||
| l1_core_contract_address | Yes | ||
| l1_operator_address | Yes | ||
| l1_chain_id | Yes | ||
| liquidation_fee | Yes |
Implementation Reference
- src/mcp_paradex/tools/system.py:23-50 (handler)The main handler function 'get_system_config' decorated with @server.tool(name='paradex_system_config'). It fetches the system configuration from the Paradex API via the 'system/config' path, deserializes the response using SystemConfigSchema, and returns a SystemConfig Pydantic model.
@server.tool(name="paradex_system_config", annotations=ToolAnnotations(readOnlyHint=True)) async def get_system_config(ctx: Context) -> SystemConfig: """ Understand the exchange's global parameters that affect all trading activity. 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 - Keep up with changes to the exchange's configuration This information provides important context for making trading decisions and understanding how the exchange operates. Example use cases: - Checking current fee tiers for different markets - Verifying maximum leverage available for specific markets - Understanding global trading limits or restrictions - Checking if any exchange-wide changes might affect your trading strategy """ try: client = await get_paradex_client() response = await api_call(client, "system/config") system_config = SystemConfigSchema().load(response, unknown="exclude", partial=True) return system_config except Exception as e: await ctx.error(f"Error fetching system configuration: {e!s}") raise e - src/mcp_paradex/tools/system.py:23-23 (registration)Tool registration via the @server.tool decorator with name='paradex_system_config' and readOnlyHint=True annotation.
@server.tool(name="paradex_system_config", annotations=ToolAnnotations(readOnlyHint=True)) - src/mcp_paradex/tools/__init__.py:8-8 (registration)The tools/__init__.py imports the system module, which triggers the decorator-based registration of the 'paradex_system_config' tool on the server.
from . import market, system, vaults - src/mcp_paradex/server/server.py:54-74 (registration)The server singleton is created in create_server() (line 78), and then tools are imported/registered via 'from mcp_paradex.tools import *' at line 82.
def create_server() -> FastMCP: """ Create and configure the FastMCP server instance. Returns: FastMCP: The configured server instance. """ # Server metadata server_metadata: dict[str, Any] = { "name": config.SERVER_NAME, "description": "MCP server for Paradex trading platform", "vendor": "Model Context Protocol", "version": __version__, } # Create server instance server = FastMCP( name=config.SERVER_NAME, ) return server - tests/test_tools.py:202-226 (helper)Test for paradex_system_config: defines SYSTEM_CONFIG_RESPONSE mock data and 'test_system_config_calls_correct_api_path' which verifies the tool calls client.get with the 'system/config' path.
SYSTEM_CONFIG_RESPONSE = { "starknet_gateway_url": "https://alpha-mainnet.starknet.io", "starknet_fullnode_rpc_url": "https://rpc.mainnet.starknet.io", "starknet_fullnode_rpc_base_url": "https://rpc.mainnet.starknet.io", "starknet_chain_id": "0x534e5f4d41494e", "block_explorer_url": "https://starkscan.co", "paraclear_address": "0xabc", "paraclear_decimals": 8, "paraclear_account_proxy_hash": "0xdef", "paraclear_account_hash": "0x123", "oracle_address": "0x456", "bridged_tokens": [], "l1_core_contract_address": "0x789", "l1_operator_address": "0xabc", "l1_chain_id": "1", "liquidation_fee": "0.005", } async def test_system_config_calls_correct_api_path(mock_client): mock_client.get.return_value = SYSTEM_CONFIG_RESPONSE await server.call_tool("paradex_system_config", {}) mock_client.get.assert_called_once_with(mock_client.api_url, "system/config", None)