DexScreener MCP Server

# 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): ```bash 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 ## Installation Manual installation: ```bash npm install npm run build npm run setup ``` ## Testing ```bash npm test ``` ## Usage ### Available Tools 1. `get_latest_token_profiles` - Get the latest token profiles - No parameters required ```typescript const result = await mcpClient.callTool('dexscreener', 'get_latest_token_profiles'); ``` 2. `get_latest_boosted_tokens` - Get the latest boosted tokens - No parameters required ```typescript const result = await mcpClient.callTool('dexscreener', 'get_latest_boosted_tokens'); ``` 3. `get_top_boosted_tokens` - Get tokens with most active boosts - No parameters required ```typescript const result = await mcpClient.callTool('dexscreener', 'get_top_boosted_tokens'); ``` 4. `get_token_orders` - Check orders paid for a specific token ```typescript 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 ```typescript 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) ```typescript const result = await mcpClient.callTool('dexscreener', 'get_pairs_by_token_addresses', { tokenAddresses: 'So11111111111111111111111111111111111111112' }); ``` 7. `search_pairs` - Search for pairs matching query ```typescript 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](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