Skip to main content
Glama

getNetworkDexes

Retrieve decentralized exchanges (DEXes) available on a specific blockchain network. Use network IDs from getNetworks to enable paginated results for efficient data exploration.

Instructions

Get available DEXes on a specific network. First call getNetworks to see valid network IDs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of items per page
networkYesNetwork ID from getNetworks (e.g., "ethereum", "solana")
pageNoPage number for pagination

Implementation Reference

  • src/index.js:82-101 (registration)
    Registration of the getNetworkDexes tool including name, description, input schema using Zod, and inline handler function.
    // getNetworkDexes server.tool( 'getNetworkDexes', 'Get available DEXes on a specific network. First call getNetworks to see valid network IDs.', { network: z.string().describe('Network ID from getNetworks (e.g., "ethereum", "solana")'), page: z.number().optional().default(0).describe('Page number for pagination'), limit: z.number().optional().default(10).describe('Number of items per page (max 100)'), sort: z.enum(['asc', 'desc']).optional().default('desc').describe('Sort order'), orderBy: z.enum(['pool']).optional().describe('How to order the returned data') }, async ({ network, page, limit, sort, orderBy }) => { let endpoint = `/networks/${network}/dexes?page=${page}&limit=${limit}&sort=${sort}`; if (orderBy) { endpoint += `&order_by=${orderBy}`; } const data = await fetchFromAPI(endpoint); return formatMcpResponse(data); } );
  • The core handler logic that builds the API endpoint for fetching DEXes on the specified network, calls the shared fetchFromAPI helper, and returns formatted MCP response.
    async ({ network, page, limit, sort, orderBy }) => { let endpoint = `/networks/${network}/dexes?page=${page}&limit=${limit}&sort=${sort}`; if (orderBy) { endpoint += `&order_by=${orderBy}`; } const data = await fetchFromAPI(endpoint); return formatMcpResponse(data); }
  • Input schema validation using Zod for parameters: network (string, required), page/limit/sort/orderBy (optional with defaults).
    { network: z.string().describe('Network ID from getNetworks (e.g., "ethereum", "solana")'), page: z.number().optional().default(0).describe('Page number for pagination'), limit: z.number().optional().default(10).describe('Number of items per page (max 100)'), sort: z.enum(['asc', 'desc']).optional().default('desc').describe('Sort order'), orderBy: z.enum(['pool']).optional().describe('How to order the returned data') },
  • Shared helper function used by getNetworkDexes to make API requests to DexPaprika, handling errors like 410 (deprecated endpoints) and 429 (rate limits).
    async function fetchFromAPI(endpoint) { try { const response = await fetch(`${API_BASE_URL}${endpoint}`); if (!response.ok) { if (response.status === 410) { throw new Error( 'This endpoint has been permanently removed. Please use network-specific endpoints instead. ' + 'For example, use /networks/{network}/pools instead of /pools. ' + 'Get available networks first using the getNetworks function.' ); } if (response.status === 429) { throw new Error( 'Rate limit exceeded. You have reached the maximum number of requests allowed for the free tier. ' + 'To increase your rate limits and access additional features, please consider upgrading to a paid plan at https://docs.dexpaprika.com/' ); } throw new Error(`API request failed with status ${response.status}`); } return await response.json(); } catch (error) { console.error(`Error fetching from API: ${error.message}`); throw error; } }
  • Shared helper function used by getNetworkDexes to format the API response into MCP-compatible text content containing JSON string.
    function formatMcpResponse(data) { return { content: [ { type: "text", text: JSON.stringify(data) } ] }; }

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/coinpaprika/dexpaprika-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server