dexscreener-mcp-server
by: openSVM
dexscreener mcp server
πOverview
Purpose: To provide a robust implementation for accessing the DexScreener API, enhancing real-time access to DEX pair data and market statistics across multiple blockchains.
Overview: The DexScreener MCP Server serves as a middleware for developers looking to integrate the DexScreener API into their applications. It allows for efficient data retrieval, adhering to rate limits while providing comprehensive error handling and type-safe interfaces for seamless interaction with various endpoints.
Key Features:
-
Rate-limited API access: Ensures compliance with DexScreenerβs request limits for optimal performance.
-
Comprehensive error handling: Standardized error responses for various scenarios, including rate limits and invalid parameters, ensuring reliable usage.
-
Type-safe interfaces: Facilitates developer productivity and reduces runtime errors with clearly defined TypeScript interfaces.
-
Support for all DexScreener API endpoints: Comprehensive access to all functionalities provided by the DexScreener platform.
-
Integration tests: Includes tests to verify the proper functionality of the server and its components.
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.
Installation
One-line install (automatically adds to Claude Desktop):
curl -L https://raw.githubusercontent.com/opensvm/dexscreener-mcp-server/main/install.sh | bash
Manual installation:
npm install
npm run build
npm run setup
Testing
npm test
Features
- Rate-limited API access (respects DexScreener's rate limits)
- Comprehensive error handling
- Type-safe interfaces
- Support for all DexScreener API endpoints
- Integration tests
Usage
Available Tools
-
get_latest_token_profiles
Get the latest token profiles. No parameters required.const result = await mcpClient.callTool('dexscreener', 'get_latest_token_profiles');
-
get_latest_boosted_tokens
Get the latest boosted tokens. No parameters required.const result = await mcpClient.callTool('dexscreener', 'get_latest_boosted_tokens');
-
get_top_boosted_tokens
Get tokens with most active boosts. No parameters required.const result = await mcpClient.callTool('dexscreener', 'get_top_boosted_tokens');
-
get_token_orders
Check orders paid for a specific token.const result = await mcpClient.callTool('dexscreener', 'get_token_orders', { chainId: 'solana', tokenAddress: 'So11111111111111111111111111111111111111112' });
-
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' });
-
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' });
-
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 such as rate limit exceeded, invalid parameters, network errors, and 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
- Define types in
src/types/
- Implement service methods in
src/services/
- Add tool handlers in
src/index.ts
- Update documentation
- Add tests
License
MIT