x402 On-Chain Data MCP Server
by 0xEtherial
README.md
# x402 On-Chain Data MCP Server
MCP (Model Context Protocol) server wrapper for the x402 On-Chain Data API. Provides pay-per-call blockchain data including wallet profiles, token metrics, protocol TVL, and gas prices.
## Author
0xEtherial
## Features
- **Wallet Profiles** - ETH balance, transaction history, top tokens ($0.10/call)
- **Token Metrics** - Price, market cap, volume, liquidity ($0.05/call)
- **Protocol TVL** - Total value locked, chain breakdown ($0.05/call)
- **Gas Prices** - Real-time gas estimates ($0.02/call)
- **Health Check** - API status (free)
## Installation
```bash
npm install
```
## Configuration
Copy `.env.example` to `.env` and configure:
```bash
cp .env.example .env
```
### Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `API_BASE_URL` | x402 On-Chain API base URL | `http://localhost:8900` |
## Usage
### Start the MCP Server
```bash
node server.js
```
### Available Tools
#### 1. `x402_wallet_score`
Get comprehensive wallet profile.
**Parameters:**
- `address` (string, required): Ethereum wallet address
**Example:**
```json
{
"name": "x402_wallet_score",
"arguments": {
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD5e"
}
}
```
**Returns:** ETH balance, transaction count, first/last transaction, top 5 tokens
---
#### 2. `x402_token_metrics`
Get token price and market data.
**Parameters:**
- `address` (string, required): Token contract address
**Example:**
```json
{
"name": "x402_token_metrics",
"arguments": {
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
}
}
```
**Returns:** Price, market cap, 24h volume, liquidity, FDV
---
#### 3. `x402_protocol_tvl`
Get DeFi protocol TVL data.
**Parameters:**
- `slug` (string, required): Protocol identifier (e.g., "uniswap", "aave")
**Example:**
```json
{
"name": "x402_protocol_tvl",
"arguments": {
"slug": "uniswap"
}
}
```
**Returns:** TVL, 24h change, chain breakdown
---
#### 4. `x402_gas_prices`
Get current Ethereum gas prices.
**Parameters:** None
**Example:**
```json
{
"name": "x402_gas_prices",
"arguments": {}
}
```
**Returns:** Slow/standard/fast gwei + USD estimates
---
#### 5. `x402_health`
Check API health status.
**Parameters:** None
**Example:**
```json
{
"name": "x402_health",
"arguments": {}
}
```
**Returns:** API health status
## Integration with AI Clients
### Claude Desktop
1. Open Claude Desktop configuration:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
2. Add the MCP server to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"x402-onchain": {
"command": "node",
"args": ["/absolute/path/to/mcp-wrapper/server.js"],
"env": {
"API_BASE_URL": "https://nominated-safe-pairs-favorites.trycloudflare.com"
}
}
}
}
```
3. Restart Claude Desktop
4. The x402 tools will appear in Claude's available tools
### Cursor
1. Open Cursor settings (Cmd+,)
2. Navigate to "Features" → "Model Context Protocol"
3. Add new server:
- **Name**: x402-onchain
- **Command**: `node /absolute/path/to/mcp-wrapper/server.js`
- **Environment**: `API_BASE_URL=https://nominated-safe-pairs-favorites.trycloudflare.com`
4. Restart Cursor
### Windsurf
1. Open Windsurf settings
2. Go to "AI" → "MCP Servers"
3. Click "Add Server"
4. Configure:
- **Name**: x402-onchain
- **Command**: `node`
- **Args**: `["/absolute/path/to/mcp-wrapper/server.js"]`
- **Env**: `{"API_BASE_URL": "https://nominated-safe-pairs-favorites.trycloudflare.com"}`
5. Save and restart Windsurf
## Pricing
All endpoints use the x402 payment protocol (pay-per-call):
| Endpoint | Cost | Description |
|----------|------|-------------|
| `/wallet/:address` | $0.10 | Wallet profile + top tokens |
| `/token/:address` | $0.05 | Token price + metrics |
| `/protocol/:slug` | $0.05 | Protocol TVL data |
| `/gas` | $0.02 | Gas price estimates |
| `/` | Free | Health check |
## Error Handling
The server returns structured error responses:
```json
{
"error": true,
"status": 404,
"message": "Wallet not found"
}
```
## Development
### Requirements
- Node.js >= 18.0.0
- npm
### Install Dependencies
```bash
npm install
```
### Run Locally
```bash
API_BASE_URL=http://localhost:8900 node server.js
```
## License
MIT
## Links
- [x402 Payment Protocol](https://github.com/0xEtherial/x402)
- [Model Context Protocol](https://modelcontextprotocol.io)
TDQS
A4/5.0
Scored across 5 tools
Disambiguation5/5
Each tool targets a distinct on-chain data category: wallet profile, token metrics, protocol TVL, gas prices, and health status. There is no overlap or ambiguity between the tool purposes.
Naming Consistency5/5
All tool names follow a consistent `x402_` prefix followed by a descriptive noun phrase in snake_case. The naming pattern is uniform and predictable across the entire set.
Tool Count5/5
The server offers 5 focused tools covering a reasonable breadth of on-chain data. This is well-scoped for its stated purpose and each tool earns its place.
Completeness4/5
The core on-chain data endpoints are covered (wallet, token, TVL, gas), plus a health check. Minor gaps exist such as block or transaction details, but the primary domain surface is solid.
Maintenance
ActivityInactive
ResponsivenessNo issues