DexPaprika MCP Server
Provides access to Ethereum DEX data including token prices, liquidity pools, trading volumes, and transaction history across decentralized exchanges like Uniswap
Allows querying Fantom network DEX data for token analysis, liquidity pool monitoring, and trading volume statistics across supported decentralized exchanges
Enables retrieval of Solana blockchain DEX analytics including token metrics, pool data, OHLCV price data, and trading activity from decentralized exchanges like Raydium
Click on "Install 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., "@DexPaprika MCP Servershow me the top 5 pools on Ethereum by volume"
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.
DexPaprika MCP Server
A Model Context Protocol (MCP) server that provides on-demand access to DexPaprika's cryptocurrency and DEX data API. Built specifically for AI assistants like Claude to programmatically fetch real-time token, pool, and DEX data with zero configuration.
TL;DR
# Install globally
npm install -g dexpaprika-mcp
# Start the server
dexpaprika-mcp
# Or run directly without installation
npx dexpaprika-mcpDexPaprika MCP connects Claude to live DEX data across multiple blockchains. No API keys required. Installation | Configuration | API Reference
Related MCP server: Crypto Indicators MCP Server
🚨 Version 1.1.0 Update Notice
Breaking Change: The global /pools endpoint has been removed. If you're upgrading from v1.0.x, please see the Migration Guide below.
What Can You Build?
Token Analysis Tools: Track price movements, liquidity depth changes, and volume patterns
DEX Comparisons: Analyze fee structures, volume, and available pools across different DEXes
Liquidity Pool Analytics: Monitor TVL changes, impermanent loss calculations, and price impact assessments
Market Analysis: Cross-chain token comparisons, volume trends, and trading activity metrics
Portfolio Trackers: Real-time value tracking, historical performance analysis, yield opportunities
Technical Analysis: Perform advanced technical analysis using historical OHLCV data, including trend identification, pattern recognition, and indicator calculations
Installation
Installing via Smithery
To install DexPaprika for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @coinpaprika/dexpaprika-mcp --client claudeManual Installation
# Install globally (recommended for regular use)
npm install -g dexpaprika-mcp
# Verify installation
dexpaprika-mcp --version
# Start the server
dexpaprika-mcpThe server runs on port 8010 by default. You'll see MCP server is running at http://localhost:8010 when successfully started.
Video Tutorial
Watch our step-by-step tutorial on setting up and using the DexPaprika MCP server:

Claude Desktop Integration
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"dexpaprika": {
"command": "npx",
"args": ["dexpaprika-mcp"]
}
}
}After restarting Claude Desktop, the DexPaprika tools will be available to Claude automatically.
Migration from v1.0.x to v1.1.0
⚠️ Breaking Changes
The global getTopPools function has been removed due to API deprecation.
Migration Steps
Before (v1.0.x):
// This will no longer work
getTopPools({ page: 0, limit: 10, sort: 'desc', orderBy: 'volume_usd' })After (v1.1.0):
// Use network-specific queries instead
getNetworkPools({ network: 'ethereum', page: 0, limit: 10, sort: 'desc', orderBy: 'volume_usd' })
getNetworkPools({ network: 'solana', page: 0, limit: 10, sort: 'desc', orderBy: 'volume_usd' })
// To query multiple networks, call getNetworkPools for each network
// Or use the search function for cross-network searchesBenefits of the New Approach
Better Performance: Network-specific queries are faster and more efficient
More Relevant Results: Get pools that are actually relevant to your use case
Improved Scalability: Better suited for handling large amounts of data across networks
Technical Capabilities
The MCP server exposes these specific endpoints Claude can access:
Network Operations
Function | Description | Example |
| Retrieves all supported blockchain networks and metadata |
|
| Lists DEXes available on a specific network |
|
Pool Operations
Function | Description | Required Parameters | Example Usage |
| [PRIMARY] Gets top pools on a specific network |
| Get Solana's highest liquidity pools |
| Gets top pools for a specific DEX |
| List pools on Uniswap V3 |
| Gets detailed pool metrics |
| Complete metrics for USDC/ETH pool |
| Retrieves time-series price data for various analytical purposes (technical analysis, ML models, backtesting) |
| 7-day hourly candles for SOL/USDC |
| Lists recent transactions in a pool |
| Last 20 swaps in a specific pool |
Token Operations
Function | Description | Required Parameters | Output Fields |
| Gets comprehensive token data |
|
|
| Lists pools containing a token |
| Returns all pools with liquidity metrics |
| Finds tokens, pools, DEXes by name/id |
| Multi-entity search results |
Example Usage
// With Claude, get details about a specific token:
const solanaJupToken = await getTokenDetails({
network: "solana",
tokenAddress: "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"
});
// Find all pools for a specific token with volume sorting:
const jupiterPools = await getTokenPools({
network: "solana",
tokenAddress: "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
orderBy: "volume_usd",
limit: 5
});
// Get top pools on Ethereum (v1.1.0 approach):
const ethereumPools = await getNetworkPools({
network: "ethereum",
orderBy: "volume_usd",
limit: 10
});
// Get historical price data for various analytical purposes (technical analysis, ML models, backtesting):
const ohlcvData = await getPoolOHLCV({
network: "ethereum",
poolAddress: "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", // ETH/USDC on Uniswap V3
start: "2023-01-01",
interval: "1d",
limit: 30
});Sample Prompts for Claude
When working with Claude, try these specific technical queries (updated for v1.1.0):
"Analyze the JUP token on Solana. Fetch price, volume, and top liquidity pools."
"Compare trading volume between Uniswap V3 and SushiSwap on Ethereum."
"Get the 7-day OHLCV data for SOL/USDC on Raydium and plot a price chart."
"Find the top 5 pools by liquidity on Fantom network and analyze their fee structures."
"Get recent transactions for the ETH/USDT pool on Uniswap and analyze buy vs sell pressure."
"Show me the top 10 pools on Ethereum by 24h volume using getNetworkPools."
"Search for all pools containing the ARB token and rank them by volume."
"Retrieve OHLCV data for BTC/USDT to analyze volatility patterns and build a price prediction model."
"First get all available networks, then show me the top pools on each major network."
Rate Limits & Performance
Free Tier Limits: 60 requests per minute
Response Time: 100-500ms for most endpoints (network dependent)
Data Freshness: Pool and token data updated every 15-30s
Error Handling: 429 status codes indicate rate limiting
OHLCV Data Availability: Historical data typically available from token/pool creation date
Troubleshooting
Common Issues:
Rate limiting: If receiving 429 errors, reduce request frequency
Missing data: Some newer tokens/pools may have incomplete historical data
Timeout errors: Large data requests may take longer, consider pagination
Network errors: Check network connectivity, the service requires internet access
OHLCV limitations: Maximum range between start and end dates is 1 year; use pagination for longer timeframes
Migration Issues:
"getTopPools not found": This function has been removed. Use
getNetworkPoolsinstead with a specific network parameter"410 Gone" errors: You're using a deprecated endpoint. Check the error message for guidance on the correct endpoint to use
Development
# Clone the repository
git clone https://github.com/coinpaprika/dexpaprika-mcp.git
cd dexpaprika-mcp
# Install dependencies
npm install
# Run with auto-restart on code changes
npm run watch
# Build for production
npm run build
# Run tests
npm testChangelog
See CHANGELOG.md for detailed release notes and migration guides.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Additional Resources
DexPaprika - Comprehensive onchain analytics market data
CoinPaprika - Comprehensive cryptocurrency market data
Available Tools
11 toolsgetDexPoolsA
Get pools from a specific DEX on a network. First use getNetworks, then getNetworkDexes to find valid DEX IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network ID from getNetworks (e.g., "ethereum", "solana") | |
| dex | Yes | DEX identifier from getNetworkDexes (e.g., "uniswap_v3") | |
| page | No | Page number for pagination | |
| limit | No | Number of items per page (max 100) | |
| sort | No | Sort order | desc |
| orderBy | No | Field to order by | volume_usd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the prerequisite tools, it doesn't describe what 'Get pools' actually returns (e.g., list of pool objects, metadata), whether it's a read-only operation, pagination behavior beyond the schema, rate limits, or authentication requirements. For a tool with 6 parameters and no annotation coverage, this is a significant gap.
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 perfectly concise with two sentences that each serve a clear purpose: the first states the tool's function, the second provides essential usage guidance. There's no wasted language or 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?
For a tool with 6 parameters, no annotations, and no output schema, the description is incomplete. While it provides good usage guidance, it lacks critical behavioral context about what the tool returns, error conditions, or operational constraints. The high schema coverage helps, but the description should do more given the tool's complexity and lack of structured metadata.
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 schema description coverage is 100%, so all parameters are well-documented in the schema itself. The description adds minimal value beyond the schema by implying that network and dex parameters should come from specific sibling tools, but doesn't provide additional semantic context about the parameters' meaning or usage.
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 action ('Get pools') and resource ('from a specific DEX on a network'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like getNetworkPools or getTokenPools, which appear to serve similar pool-related functions.
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 and how to use this tool: 'First use getNetworks, then getNetworkDexes to find valid DEX IDs.' This gives clear prerequisites and workflow context, helping the agent understand the proper sequence of operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNetworkDexesA
Get available DEXes on a specific network. First call getNetworks to see valid network IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network ID from getNetworks (e.g., "ethereum", "solana") | |
| page | No | Page number for pagination | |
| limit | No | Number of items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool requires a network ID from getNetworks, which is useful context. However, it doesn't describe behavioral traits like whether it's read-only, potential rate limits, error handling, or the format of returned DEX data. The description adds some value but lacks comprehensive behavioral details.
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 appropriately sized and front-loaded: the first sentence states the core purpose, and the second provides essential usage guidance. Every sentence earns its place with no wasted words, making it efficient and easy to understand.
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 moderate complexity (3 parameters, 1 required), no annotations, and no output schema, the description is somewhat complete but has gaps. It covers purpose and prerequisites but lacks details on return values, error cases, or behavioral constraints. It's adequate as a minimum viable description but could be more comprehensive for a tool with pagination and network dependencies.
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 schema already documents all parameters (network, page, limit) with descriptions and defaults. The description adds no additional parameter semantics beyond what the schema provides, such as examples of DEX types or pagination behavior. Baseline 3 is appropriate as the schema handles the heavy lifting.
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 available DEXes on a specific network.' It specifies the verb ('Get') and resource ('DEXes'), and distinguishes it from siblings like getNetworks (which provides network IDs) and getDexPools (which focuses on pools within DEXes). However, it doesn't explicitly contrast with all siblings, such as getNetworkPools, which might overlap in network focus.
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 clear context for usage: 'First call getNetworks to see valid network IDs.' This gives a prerequisite and distinguishes it from getNetworks. It implies when to use this tool (after obtaining network IDs) but doesn't explicitly state when not to use it or mention alternatives like getNetworkPools for pools instead of DEXes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNetworkPoolsA
PRIMARY POOL FUNCTION: Get top liquidity pools on a specific network. This is the MAIN way to get pool data - there is NO global pools function. Use this instead of any "getTopPools" or "getAllPools" concepts.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network ID from getNetworks (required) - e.g., "ethereum", "solana" | |
| page | No | Page number for pagination | |
| limit | No | Number of items per page (max 100) | |
| sort | No | Sort order | desc |
| orderBy | No | Field to order by | volume_usd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions this is for 'top liquidity pools' and implies pagination via context, but doesn't disclose key behavioral traits like rate limits, authentication needs, error handling, or what 'top' means (e.g., by volume, activity). The description adds some context about network specificity but lacks details on mutation safety or response format.
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 primary function in the first sentence, followed by usage guidance. It uses two concise sentences with zero waste—every phrase earns its place by clarifying purpose and distinguishing from alternatives, making it highly 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 moderate complexity (5 parameters, no output schema, no annotations), the description is fairly complete: it covers the core purpose and usage guidelines. However, it lacks details on behavioral aspects like what data is returned or error conditions, which would be helpful since there's no output schema. It's adequate but has minor gaps in full 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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific semantics beyond what's in the schema (e.g., it doesn't explain 'network' beyond being required or clarify 'page'/'limit' usage). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract.
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 verb ('Get') and resource ('top liquidity pools on a specific network'), making the purpose specific. It explicitly distinguishes this tool from potential alternatives like 'getTopPools' or 'getAllPools' by stating this is the 'MAIN way to get pool data' and there is 'NO global pools function', which effectively differentiates it from sibling tools.
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 versus alternatives: it states 'Use this instead of any "getTopPools" or "getAllPools" concepts' and emphasizes it's the 'MAIN way to get pool data'. This gives clear direction on tool selection, though it doesn't mention specific sibling tools like getDexPools or getTokenPools, the general exclusion is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNetworksA
REQUIRED FIRST STEP: Get all supported blockchain networks. Always call this first to see available networks before using any network-specific functions. Returns network IDs like "ethereum", "solana", etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior as a read-only operation that returns network IDs, though it lacks details on response format, pagination, or error handling. The 'REQUIRED FIRST STEP' emphasis adds useful context about its role in the workflow.
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 and well-structured, using only two sentences that front-load critical information ('REQUIRED FIRST STEP') and avoid any wasted words. Every sentence adds value by explaining the tool's purpose and its strategic use in the workflow.
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 (0 parameters, no output schema, no annotations), the description is nearly complete. It clearly explains what the tool does and when to use it, though it could enhance completeness by specifying the exact return format (e.g., list structure) or error scenarios, which are minor 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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose and usage without redundant parameter details, earning a baseline score above 3 for clarity in a parameterless context.
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 specific action ('Get all supported blockchain networks') and resource ('blockchain networks'), distinguishing it from siblings like getNetworkDexes or getNetworkPools that focus on specific network data. It explicitly identifies what it returns ('network IDs like "ethereum", "solana", etc.'), making the purpose 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 ('Always call this first to see available networks before using any network-specific functions') and why ('to see available networks'), effectively distinguishing it from siblings that require network IDs. It implicitly excludes usage for other purposes by framing it as a prerequisite step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPoolDetailsA
Get detailed information about a specific pool. Requires network ID from getNetworks and a pool address.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network ID from getNetworks (e.g., "ethereum", "solana") | |
| poolAddress | Yes | Pool address or identifier | |
| inversed | No | Whether to invert the price ratio |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions a requirement ('Requires network ID from getNetworks'), which adds some context, but fails to describe other key traits such as whether this is a read-only operation, potential rate limits, error conditions, or the format of the returned details. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
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 front-loaded with the core purpose in the first sentence, followed by a prerequisite in the second. Every sentence earns its place by providing essential information without redundancy or 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?
Given the complexity (3 parameters, no annotations, no output schema), the description is moderately complete. It covers the purpose and prerequisites but lacks details on behavior, output format, and error handling. With no output schema, the description should ideally hint at what 'detailed information' includes, but it doesn't, leaving room for improvement in contextual coverage.
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 description mentions the parameters 'network ID from getNetworks' and 'pool address', aligning with the input schema. Since schema description coverage is 100%, the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, such as hinting at the source for the network ID, but doesn't provide additional semantics like examples or constraints not in 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 verb 'Get' and the resource 'detailed information about a specific pool', which is specific and actionable. However, it doesn't explicitly differentiate this tool from similar siblings like getPoolOHLCV or getTokenPools, which might also retrieve pool-related data but with different scopes or details.
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 clear context by stating 'Requires network ID from getNetworks', which guides users on prerequisite data and hints at a workflow. It doesn't explicitly mention when not to use this tool or name alternatives among siblings, but the context is sufficient for basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPoolOHLCVA
Get historical price data (OHLCV) for a pool - essential for price analysis, backtesting, and visualization. Requires network and pool address.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network ID from getNetworks (e.g., "ethereum", "solana") | |
| poolAddress | Yes | Pool address or identifier | |
| start | Yes | Start time for historical data (Unix timestamp, RFC3339 timestamp, or yyyy-mm-dd format) | |
| end | No | End time for historical data (max 1 year from start) | |
| limit | No | Number of data points to retrieve (max 366) - adjust for different analysis needs | |
| interval | No | Interval granularity: 1m, 5m, 10m, 15m, 30m, 1h, 6h, 12h, 24h | 24h |
| inversed | No | Whether to invert the price ratio for alternative pair perspective (e.g., ETH/USDC vs USDC/ETH) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Requires network and pool address' which indicates prerequisites, but doesn't mention rate limits, authentication needs, error conditions, or what happens with invalid parameters. The description doesn't contradict annotations (none exist), but provides only basic operational context.
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?
Two sentences with zero waste. First sentence states purpose and use cases, second sentence highlights key requirements. Every word serves a clear purpose, and the most critical information (what it does and what it needs) 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?
For a 7-parameter tool with no annotations and no output schema, the description provides basic operational context but lacks details about return format, error handling, or performance characteristics. The schema covers parameters well, but the description doesn't compensate for the absence of output schema or behavioral annotations, leaving gaps in 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?
Schema description coverage is 100%, so all parameters are well-documented in the schema. The description adds minimal value beyond the schema by mentioning 'Requires network and pool address' (which aligns with required parameters) and framing the tool's purpose. Since schema does the heavy lifting, baseline would be 3, but the description's concise reinforcement of key requirements earns a slightly higher score.
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 specific action ('Get historical price data'), the resource ('for a pool'), and the data format ('OHLCV'). It distinguishes this tool from siblings like getPoolDetails or getPoolTransactions by focusing on price history rather than general pool information or transaction data.
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 mentions 'essential for price analysis, backtesting, and visualization' which implies usage contexts, but doesn't explicitly state when to use this tool versus alternatives like getPoolDetails for non-price information or getStats for aggregated statistics. No explicit exclusions or comparisons to siblings are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPoolTransactionsB
Get recent transactions for a specific pool. Shows swaps, adds, removes. Requires network and pool address.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network ID from getNetworks (e.g., "ethereum", "solana") | |
| poolAddress | Yes | Pool address or identifier | |
| page | No | Page number for pagination (up to 100 pages) | |
| limit | No | Number of items per page (max 100) | |
| cursor | No | Transaction ID used for cursor-based pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions required parameters but doesn't disclose key behavioral traits: it doesn't specify if this is a read-only operation (implied by 'Get' but not explicit), what the output format looks like (critical with no output schema), rate limits, authentication needs, or error conditions. The description adds minimal context beyond basic functionality.
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 two sentences, front-loaded with core purpose and followed by prerequisites. Every word earns its place: 'Get recent transactions for a specific pool' establishes the action, 'Shows swaps, adds, removes' clarifies scope, and 'Requires network and pool address' states needs. No wasted verbiage.
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 annotations and no output schema, the description is incomplete for a tool with 5 parameters and complex behavior (transaction listing with pagination). It lacks details on return values, error handling, rate limits, and how transactions are filtered or sorted. For a read operation with pagination and no structured output, more context is needed to guide the agent effectively.
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 schema already documents all 5 parameters thoroughly. The description adds marginal value by noting that network and pool address are required, but doesn't provide additional meaning beyond what's in the schema (e.g., explaining transaction types further or pagination behavior). Baseline 3 is appropriate when schema does heavy lifting.
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 verb ('Get') and resource ('recent transactions for a specific pool'), specifying the types of transactions included (swaps, adds, removes). It distinguishes from siblings like getPoolDetails or getPoolOHLCV by focusing on transaction history rather than pool metadata or price data. However, it doesn't explicitly contrast with all siblings (e.g., search might also return transactions).
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 implies usage context by stating 'Requires network and pool address,' indicating prerequisites. It doesn't provide explicit when-to-use vs. when-not-to-use guidance or name specific alternatives among siblings. The agent must infer that this is for transaction history of a known pool, while getDexPools or getNetworkPools might be for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getStatsB
Get high-level statistics about the DexPaprika ecosystem: total networks, DEXes, pools, and tokens available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what data is retrieved but doesn't describe behavioral traits such as whether it's a read-only operation, potential rate limits, authentication needs, data freshness, or error handling. For a tool with zero annotation coverage, this is a significant gap in 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 a single, efficient sentence that front-loads the core purpose ('Get high-level statistics') and specifies the resource and data points. Every word earns its place with no redundancy or waste, making it highly concise 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 (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what data is retrieved but lacks context on behavioral aspects (e.g., read-only nature, performance). Without annotations or output schema, the description should ideally provide more completeness for safe agent use, but it meets minimum viability.
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 tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics beyond the schema, but it appropriately doesn't mention any parameters. Baseline 4 is applied as per rules for 0 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's purpose with a specific verb ('Get') and resource ('high-level statistics about the DexPaprika ecosystem'), including what statistics are retrieved (total networks, DEXes, pools, and tokens). It distinguishes from siblings by focusing on aggregated ecosystem statistics rather than specific entities like individual networks, pools, or tokens. However, it doesn't explicitly differentiate from all siblings (e.g., 'getNetworks' might overlap conceptually).
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or compare it to sibling tools like 'getNetworks' (which might list networks without statistics) or 'search' (which might filter data). Usage is implied by the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTokenDetailsA
Get detailed information about a specific token on a network. First use getNetworks to get valid network IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network ID from getNetworks (e.g., "ethereum", "solana") | |
| tokenAddress | Yes | Token address or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves 'detailed information' but doesn't specify what details are included (e.g., token name, symbol, decimals, supply), whether it's a read-only operation, potential rate limits, or error conditions. For a tool with no annotation coverage, this leaves significant behavioral gaps.
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 two concise sentences with zero waste. The first sentence states the purpose, and the second provides crucial usage guidance. Every word earns its place, and information is front-loaded effectively.
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 annotations and no output schema, the description is incomplete. It covers purpose and usage prerequisites well, but lacks details on what 'detailed information' includes, behavioral traits, or response format. For a tool with 2 parameters and no structured output documentation, this leaves the agent guessing about the return values and operational constraints.
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%, with both parameters clearly documented in the schema (network ID and token address). The description adds minimal value beyond the schema by mentioning 'network IDs from getNetworks' and 'token address or identifier', but doesn't provide additional context like format examples beyond what's in the schema. Baseline 3 is appropriate given high schema coverage.
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 verb 'Get' and resource 'detailed information about a specific token on a network', making the purpose unambiguous. It distinguishes from siblings like getNetworks (which lists networks) and getTokenPools (which focuses on pools). However, it doesn't explicitly differentiate from getPoolDetails or getTokenPools in terms of scope.
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: 'First use getNetworks to get valid network IDs.' This tells the agent when to use this tool (after obtaining network IDs) and references a specific sibling tool (getNetworks) as a prerequisite. It establishes a clear sequence of operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTokenPoolsB
Get liquidity pools containing a specific token on a network. Great for finding where a token is traded.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network ID from getNetworks (e.g., "ethereum", "solana") | |
| tokenAddress | Yes | Token address or identifier | |
| page | No | Page number for pagination | |
| limit | No | Number of items per page (max 100) | |
| sort | No | Sort order | desc |
| orderBy | No | Field to order by | volume_usd |
| reorder | No | If true, reorders the pool so that the specified token becomes the primary token for all metrics | |
| address | No | Filter pools that contain this additional token address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic purpose. It doesn't disclose behavioral traits like whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior beyond parameters, or what the response format looks like. Significant gaps exist for an 8-parameter tool.
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?
Two concise sentences that are front-loaded with the core purpose. The second sentence adds practical context without redundancy. Every sentence earns its place with zero waste or unnecessary elaboration.
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?
For a complex tool with 8 parameters, no annotations, and no output schema, the description is incomplete. It states the basic purpose but lacks behavioral context, response format details, error handling information, or usage boundaries that would help an agent invoke it 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 description coverage is 100%, providing detailed documentation for all 8 parameters. The description adds no parameter-specific information beyond what's already in the schema, so it meets the baseline of 3 when schema does the heavy lifting but doesn't compensate with additional semantic context.
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 verb 'Get' and resource 'liquidity pools containing a specific token on a network', with the specific purpose 'finding where a token is traded'. It distinguishes from siblings like getDexPools (general pools), getNetworkPools (network-level pools), and getTokenDetails (token metadata).
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 implies usage context ('Great for finding where a token is traded') but doesn't explicitly state when to use this tool versus alternatives like getDexPools or getNetworkPools. No explicit exclusions or prerequisites are mentioned, leaving usage guidance at an implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchA
Search across ALL networks for tokens, pools, and DEXes by name, symbol, or address. Good starting point when you don't know the specific network.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (e.g., "uniswap", "bitcoin", or a token address) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool searches 'across ALL networks' and is a 'good starting point,' which adds useful context about scope and intent. However, it lacks details on rate limits, authentication needs, or response format, leaving gaps in behavioral understanding for an agent.
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 and concise, consisting of two sentences that efficiently convey purpose and usage guidelines without unnecessary details. Every sentence earns its place by providing critical information for tool selection and invocation.
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 low complexity (1 parameter, 100% schema coverage) and lack of annotations/output schema, the description is reasonably complete. It covers purpose, scope, and usage context well, though it could improve by addressing behavioral aspects like response format or limitations to fully compensate for missing structured data.
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 schema already documents the single 'query' parameter with a clear description. The description adds minimal value beyond the schema by implying the query can target 'name, symbol, or address,' but this is redundant with the schema's example. Baseline 3 is appropriate as the schema does the heavy lifting.
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 with specific verbs ('search across ALL networks') and resources ('tokens, pools, and DEXes'), distinguishing it from sibling tools that focus on specific networks or details. It explicitly mentions the scope ('ALL networks') and searchable attributes ('by name, symbol, or address'), making the purpose 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 ('Good starting point when you don't know the specific network'), which differentiates it from sibling tools like getNetworkDexes or getTokenDetails that require network knowledge. It effectively tells the agent to use this for broad searches and implies alternatives for network-specific queries.
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. Dates show when Glama detected each change.
11 tool updates
v1.0.0- Changed
getDexPools2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
getNetworkDexes2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
getNetworkPools2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
getNetworks1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
getPoolDetails2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
getPoolOHLCV2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
getPoolTransactions2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
getStats1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
getTokenDetails2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
getTokenPools2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
search2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
11 tool updates
- First observed
getDexPools - First observed
getNetworkDexes - First observed
getNetworkPools - First observed
getNetworks - First observed
getPoolDetails - First observed
getPoolOHLCV - First observed
getPoolTransactions - First observed
getStats - First observed
getTokenDetails - First observed
getTokenPools - First observed
search
TDQS
Each tool has a clearly distinct purpose with no overlap. For example, getNetworkPools retrieves top pools on a network, while getDexPools targets pools from a specific DEX, and getPoolDetails provides detailed information for a single pool. The descriptions explicitly guide usage, preventing confusion.
All tool names follow a consistent verb_noun pattern with 'get' as the prefix (e.g., getNetworks, getPoolDetails, getTokenPools). The naming is uniform and predictable, making it easy for agents to understand the action and target resource.
With 11 tools, the server is well-scoped for its domain of blockchain DEX data analysis. Each tool serves a specific function, from network discovery to pool and token details, without redundancy. The count supports comprehensive coverage without being overwhelming.
The tool set provides complete coverage for exploring DEX data, including network discovery, DEX and pool listings, detailed views, historical data, transactions, and search. There are no obvious gaps; agents can navigate from high-level stats to granular details seamlessly.
Maintenance
Related MCP Connectors
Query real-time blockchain token data across EVM and Solana networks. Access token balances, transfers, prices, holders, NFT ownership, DEX swaps, and liquidity pools. Supports Ethereum, Base, Arbitrum, BSC, Polygon, Solana, and more.
Open API Marketplace for AI Agents. Crypto data tools with USDC payments on Base.
Blockchain analytics API for AI agents. Smart Money signals, wallet profiling, token analytics.
Blockchain analytics API for AI agents. Smart Money signals, wallet profiling, token analytics.
Related MCP Servers
- AlicenseAqualityBmaintenanceDexPaprika MCP server allows LLMs to access real-time and historical data on tokens, DEX trading activity, and liquidity across multiple blockchains. It enables natural language queries for exploring market trends, token performance, and DeFi analytics through a standardized interface.1711942MIT
- FlicenseNot gradedqualityDmaintenanceProvides real-time cryptocurrency market data and technical indicators (EMA, MACD, RSI, ATR, Bollinger Bands) from Aster DEX with multi-timeframe analysis support for trading pairs like BTC, ETH, and SOL.-
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with real-time access to Cardano DeFi data, including token, pool, wallet, swap, trade, OTC, and DCA information via Cardexscan's DEX scanner and aggregator.22MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to fetch real-time cryptocurrency market data including prices, tickers, exchange data, and OHLCV candles from CoinPaprika with zero configuration.3057MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/infinity-smithpl/dexpaprika-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server