Skip to main content
Glama
openSVM

DexScreener MCP Server

by openSVM

DexScreener MCP Server

An MCP server implementation for accessing the DexScreener API, providing real-time access to DEX pair data, token information, and market statistics across multiple blockchains.

One-line install (automatically adds to Claude Desktop):

curl -L https://raw.githubusercontent.com/opensvm/dexscreener-mcp-server/main/install.sh | bash

Features

  • Rate-limited API access (respects DexScreener's rate limits)

  • Comprehensive error handling

  • Type-safe interfaces

  • Support for all DexScreener API endpoints

  • Integration tests

Related MCP server: dex-kline-mcp

Installation

Manual installation:

npm install
npm run build
npm run setup

Testing

npm test

Usage

Available Tools

  1. get_latest_token_profiles

    • Get the latest token profiles

    • No parameters required

    const result = await mcpClient.callTool('dexscreener', 'get_latest_token_profiles');
  2. get_latest_boosted_tokens

    • Get the latest boosted tokens

    • No parameters required

    const result = await mcpClient.callTool('dexscreener', 'get_latest_boosted_tokens');
  3. get_top_boosted_tokens

    • Get tokens with most active boosts

    • No parameters required

    const result = await mcpClient.callTool('dexscreener', 'get_top_boosted_tokens');
  4. get_token_orders

    • Check orders paid for a specific token

    const result = await mcpClient.callTool('dexscreener', 'get_token_orders', {
      chainId: 'solana',
      tokenAddress: 'So11111111111111111111111111111111111111112'
    });
  5. get_pairs_by_chain_and_address

    • Get one or multiple pairs by chain and pair address

    const result = await mcpClient.callTool('dexscreener', 'get_pairs_by_chain_and_address', {
      chainId: 'solana',
      pairId: 'HxFLKUAmAMLz1jtT3hbvCMELwH5H9tpM2QugP8sKyfhc'
    });
  6. get_pairs_by_token_addresses

    • Get one or multiple pairs by token address (max 30)

    const result = await mcpClient.callTool('dexscreener', 'get_pairs_by_token_addresses', {
      tokenAddresses: 'So11111111111111111111111111111111111111112'
    });
  7. search_pairs

    • Search for pairs matching query

    const result = await mcpClient.callTool('dexscreener', 'search_pairs', {
      query: 'SOL'
    });

Rate Limits

The server implements rate limiting to comply with DexScreener's API limits:

  • Token Profile/Boost endpoints: 60 requests per minute

  • DEX/Pairs endpoints: 300 requests per minute

Error Handling

The server handles various error scenarios:

  • Rate limit exceeded

  • Invalid parameters

  • Network errors

  • API errors

Errors are returned in a standardized format with appropriate error codes and messages.

API Documentation

For detailed API documentation, see docs/api-reference.md.

Development

Project Structure

.
├── src/
│   ├── types/           # TypeScript interfaces and types
│   ├── services/        # API service implementations
│   ├── tests/           # Integration tests
│   └── index.ts         # Main server implementation
├── scripts/            # Setup and utility scripts
├── docs/              # Documentation
└── README.md          # This file

Adding New Features

  1. Define types in src/types/

  2. Implement service methods in src/services/

  3. Add tool handlers in src/index.ts

  4. Update documentation

  5. Add tests

License

MIT

Available Tools

7 tools
get_latest_boosted_tokensC

Get the latest boosted tokens

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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 only states what the tool does ('Get the latest boosted tokens') without explaining behavioral traits like whether it's read-only, requires authentication, has rate limits, or what 'latest' means (e.g., time-based, count-based). This is a significant gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized for a simple tool and front-loaded with the core action. Every word earns its place, 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple retrieval) but lack of annotations and output schema, the description is incomplete. It doesn't explain what 'boosted tokens' are, how 'latest' is defined, or what the return format looks like. For a tool with no structured data to rely on, this leaves critical gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it doesn't introduce any confusion. A baseline score of 4 is appropriate as the description doesn't compensate for missing param info, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get the latest boosted tokens' states a clear verb ('Get') and resource ('boosted tokens'), but it's vague about what 'boosted tokens' means and doesn't distinguish it from sibling tools like 'get_top_boosted_tokens' or 'get_latest_token_profiles'. It provides a basic purpose but lacks specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, such as how it differs from 'get_top_boosted tokens' or other siblings. This leaves the agent with no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_latest_token_profilesC

Get the latest token profiles

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2/5.0
Behavior1/5

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 but only states the action without any behavioral traits. It does not cover aspects like read-only vs. destructive operations, authentication needs, rate limits, or response format, making it inadequate for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a single sentence, but it is under-specified rather than efficiently structured. It lacks front-loaded critical information and does not earn its place by adding value, resulting in a mediocre score for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It does not explain what 'latest' means, what data 'token profiles' include, or how results are returned, failing to provide sufficient context for the agent to understand the tool's behavior and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description does not add semantics beyond the schema, but this is acceptable as the baseline for zero parameters is 4, since there are no parameters to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get the latest token profiles' restates the tool name 'get_latest_token_profiles' almost verbatim, making it tautological. It provides a vague purpose without specifying what 'latest' means (e.g., by time, update frequency) or what 'token profiles' entail, failing to distinguish it from sibling tools like 'get_top_boosted_tokens' or 'get_latest_boosted_tokens'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. It does not mention context, prerequisites, or exclusions, and fails to differentiate it from sibling tools such as 'get_latest_boosted_tokens' or 'search_pairs', leaving the agent with no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pairs_by_chain_and_addressC

Get one or multiple pairs by chain and pair address

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYesChain ID (e.g., "solana")
pairIdYesPair address

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the basic function. It doesn't disclose behavioral traits such as read-only nature, error handling, rate limits, or response format, leaving significant gaps for a tool with two required parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste, clearly front-loading the purpose. It's appropriately sized for the tool's complexity, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 lacks details on return values, error cases, or behavioral context needed for effective use, especially with required parameters and sibling tools present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds minimal value by mentioning 'chain and pair address' but doesn't provide additional semantics beyond what's in the schema, aligning with the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('pairs'), specifying retrieval by chain and pair address. It distinguishes from siblings like 'search_pairs' by focusing on direct address lookup rather than search, though it doesn't explicitly contrast with 'get_pairs_by_token_addresses'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'search_pairs' or 'get_pairs_by_token_addresses'. The description implies usage for direct address-based retrieval but lacks explicit context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pairs_by_token_addressesC

Get one or multiple pairs by token address (max 30)

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenAddressesYesComma-separated token addresses

TDQS

C2.9/5.0
Behavior2/5

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 mentions a limit ('max 30'), which is useful context, but lacks other critical details such as whether this is a read-only operation, potential rate limits, error handling, or the format of returned data. The description is minimal and leaves significant behavioral aspects unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose and a key constraint ('max 30'). It is front-loaded with essential information and contains no unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficiently complete. It omits details about the return format (e.g., what data fields are included for pairs), error conditions, or dependencies. For a tool with one parameter but no structured output documentation, more context is needed to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the parameter 'tokenAddresses' documented as 'Comma-separated token addresses'. The description adds no additional semantic information beyond what the schema provides, such as examples or constraints on address format. Baseline score of 3 is appropriate since the schema adequately covers the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('one or multiple pairs'), with the specific mechanism 'by token address'. It distinguishes from siblings like 'get_pairs_by_chain_and_address' by focusing solely on token addresses. However, it doesn't explicitly differentiate from 'search_pairs' which might also involve token addresses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'get_pairs_by_chain_and_address' or 'search_pairs'. It mentions a constraint ('max 30') but doesn't explain why this tool is preferred over others for fetching pairs by token addresses.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_token_ordersC

Check orders paid for a specific token

ParametersJSON Schema
NameRequiredDescriptionDefault
chainIdYesChain ID (e.g., "solana")
tokenAddressYesToken address

TDQS

C2.9/5.0
Behavior2/5

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 'Check orders paid' but doesn't clarify if this is a read-only operation, what data is returned, potential rate limits, authentication needs, or error conditions. This leaves significant gaps for an agent to understand how to use it effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'orders paid' entails, the format of returned data, or how results are structured, leaving the agent with insufficient context to handle responses or understand the tool's full behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear documentation for chainId and tokenAddress parameters. The description adds no additional semantic context beyond what the schema provides, such as example values or usage notes, so it meets the baseline but doesn't enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Check orders') and the target ('paid for a specific token'), making the purpose understandable. However, it doesn't differentiate this tool from its siblings (e.g., get_latest_boosted_tokens, search_pairs), which might also involve token-related queries, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like get_latest_boosted_tokens and search_pairs available, there's no indication of context, prerequisites, or exclusions for selecting this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_boosted_tokensB

Get tokens with most active boosts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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 states the tool 'gets' tokens, implying a read operation, but doesn't specify any behavioral traits such as rate limits, authentication needs, data freshness, or what constitutes 'most active boosts.' This leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: 'Get tokens with most active boosts.' It is front-loaded and wastes no words, making it highly concise and well-structured for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'most active boosts' means, how results are sorted or limited, or what the return format looks like. For a tool that likely returns a list of tokens, more context is needed to understand its output and usage fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 no parameter documentation is needed. The description doesn't add parameter semantics, but this is acceptable given the lack of parameters, aligning with the baseline expectation for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 tokens with most active boosts.' It uses a specific verb ('Get') and identifies the resource ('tokens with most active boosts'). However, it doesn't explicitly differentiate from sibling tools like 'get_latest_boosted_tokens' or 'get_latest_token_profiles,' which appear related but have different scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 any context, prerequisites, or exclusions, nor does it reference sibling tools like 'get_latest_boosted_tokens' or 'get_token_orders' that might be used in similar scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_pairsC

Search for pairs matching query

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query

TDQS

C2.7/5.0
Behavior2/5

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 only states the action ('Search') without details on permissions, rate limits, pagination, or what 'matching query' entails (e.g., fuzzy vs. exact matches). This leaves significant gaps for a search tool with no structured safety or operational hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste: 'Search for pairs matching query'. It is appropriately sized and front-loaded, clearly stating the core action without unnecessary elaboration, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a search tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'pairs' are, the search behavior, or return values, leaving the agent with insufficient context to use the tool effectively beyond the basic parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'query' parameter documented as 'Search query'. The description adds no additional meaning beyond this, such as query syntax or examples. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Search for pairs matching query' states a clear verb ('Search') and resource ('pairs'), but it's vague about what 'pairs' refers to in this context. It doesn't distinguish from siblings like 'get_pairs_by_chain_and_address' or 'get_pairs_by_token_addresses', leaving ambiguity about the search scope or criteria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_pairs_by_chain_and_address' and 'get_pairs_by_token_addresses', the description lacks context for choosing this general search over more specific retrieval methods, offering no explicit when/when-not or alternative references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.1/5.0
Disambiguation4/5

Most tools have distinct purposes, with clear separation between boosted tokens, token profiles, pairs retrieval, token orders, and pair search. However, get_latest_boosted_tokens and get_top_boosted_tokens could potentially cause some confusion regarding whether they serve overlapping or complementary functions, as both relate to boosted tokens with slightly different focuses.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores, using descriptive and predictable naming conventions. The structure is uniform across all seven tools, making it easy for agents to understand and predict tool purposes based on their names.

Tool Count5/5

With 7 tools, the server is well-scoped for its purpose of providing DexScreener data access. Each tool appears to serve a specific and necessary function without redundancy, covering key operations like retrieving tokens, pairs, orders, and searches in a focused manner.

Completeness4/5

The tool set covers essential operations for accessing DexScreener data, including token and pair retrieval, orders, and search. A minor gap exists in the lack of update or management tools, but this is reasonable for a read-only data access server, and agents can work effectively with the provided query-focused tools.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/openSVM/dexscreener-mcp-server'

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