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
TDQS
Scored across 7 tools
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.
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.
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.
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.