MCP server for the DeFiStream API
Project description
DeFiStream MCP Server
Model Context Protocol (MCP) server that wraps the DeFiStream REST API, giving LLMs (Claude Desktop, Claude Code, etc.) direct access to on-chain DeFi event data. Make sure to get an api key from app.defistream.deveasily.
Quick Start
# Install
cd mcp-server
pip install -e .
# Set your API key
export DEFISTREAM_API_KEY="dsk_your_key_here"
# Run (stdio transport)
defistream-mcp
Docker
No Python installation required — run the MCP server directly from Docker Hub:
docker run -i -e DEFISTREAM_API_KEY=dsk_your_key_here defistream/mcp-server
Claude Code
claude mcp add --transport stdio defistream \
-- docker run -i -e DEFISTREAM_API_KEY=dsk_your_key_here defistream/mcp-server
Claude Desktop (Docker)
Add to claude_desktop_config.json:
{
"mcpServers": {
"defistream": {
"command": "docker",
"args": [
"run", "-i",
"-e", "DEFISTREAM_API_KEY=dsk_your_key_here",
"defistream/mcp-server"
]
}
}
}
Note: Claude Desktop passes
envto the spawned process, butdocker runrequires explicit-eflags. Put the API key inargsas shown above, or set it in your shell before launching Claude Desktop.
Build from Source
cd mcp-server
docker build -t defistream/mcp-server .
docker run -i -e DEFISTREAM_API_KEY=dsk_your_key_here defistream/mcp-server
Publish to Docker Hub
docker login
docker build -t defistream/mcp-server:latest -t defistream/mcp-server:0.1.0 .
docker push defistream/mcp-server:latest
docker push defistream/mcp-server:0.1.0
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"defistream": {
"command": "defistream-mcp",
"env": {
"DEFISTREAM_API_KEY": "dsk_your_key_here"
}
}
}
}
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
DEFISTREAM_API_KEY |
Yes | — | API key (dsk_xxx) |
DEFISTREAM_LOCAL |
No | false |
Set to true to use local gateway (http://localhost:8081/v1) |
DEFISTREAM_BASE_URL |
No | https://api.defistream.dev/v1 |
API base URL (overrides DEFISTREAM_LOCAL) |
DEFISTREAM_MCP_TRANSPORT |
No | stdio |
stdio or sse |
DEFISTREAM_DOWNLOAD_DIR |
No | . (cwd) |
Default dir for downloaded files |
Local Development
To test against the local API gateway (port 8081):
export DEFISTREAM_API_KEY="dsk_your_key"
export DEFISTREAM_LOCAL=true
defistream-mcp
Or in Claude Desktop / Claude Code config:
{
"mcpServers": {
"defistream": {
"command": "defistream-mcp",
"env": {
"DEFISTREAM_API_KEY": "dsk_your_key",
"DEFISTREAM_LOCAL": "true"
}
}
}
}
Tools
Utility
| Tool | Description |
|---|---|
supported_networks(protocol) |
List supported networks for a protocol |
supported_events(protocol) |
List supported event types for a protocol |
base_url() |
Get the API base URL |
execute_query(query, limit?) |
Execute a query path and return JSON results |
download_query(query, file_format?, output_dir?) |
Download query results as CSV/Parquet |
Protocol Query Builders
Each builder returns a query path string to pass to execute_query() or download_query().
| Tool | Protocol | Required Params | Range Limits |
|---|---|---|---|
erc20_query_builder |
ERC-20 tokens | event_type, network, token |
7 days / 1M blocks (10M ARB) |
native_token_query_builder |
Native tokens (ETH, BNB, …) | event_type, network |
7 days / 1M blocks (10M ARB) |
aave_v3_query_builder |
AAVE V3 lending | event_type, network |
31 days / 10M blocks |
uniswap_v3_query_builder |
Uniswap V3 DEX | event_type, network, symbol0, symbol1, fee |
31 days / 10M blocks |
lido_query_builder |
Lido staking | event_type, network |
31 days / 10M blocks |
stader_query_builder |
Stader ETHx | event_type, network |
31 days / 10M blocks |
threshold_query_builder |
Threshold tBTC | event_type, network |
31 days / 10M blocks |
All on-chain builders also accept: block_start/block_end or since/until for range, verbose, with_value, aggregate, group_by, period, and protocol-specific filter params. JSON format is limited to 10,000 blocks for all providers.
Exchange Data Query Builders (Binance)
| Tool | Data | Required Params | Range Limit |
|---|---|---|---|
binance_raw_trades_query_builder |
Raw tick trades | token |
7 days |
binance_ohlcv_query_builder |
OHLCV candles | token |
31 days |
binance_book_depth_query_builder |
Order book depth | token |
31 days |
open_interest_query_builder |
Open interest | token |
31 days |
binance_long_short_ratios_query_builder |
Long/short ratios | token |
31 days |
binance_funding_rate_query_builder |
Funding rate | token |
31 days |
All exchange builders accept since/until for time range. All return CSV/Parquet only (except OHLCV which also supports JSON).
with_value— Settrueto enrich events with USD value data. Addsvalue_usdcolumn to individual events, andagg_value_usdto aggregate results.
Workflow
1. supported_networks("erc20") → check network is valid
2. erc20_query_builder( → build query path
event_type="transfer",
network="ETH",
token="USDT",
since="2025-01-01",
until="2025-01-02"
)
3. execute_query(query) → get JSON results
— or —
download_query(query, "csv") → save CSV file
Multi-token queries: Pass comma-separated known symbol names to query multiple tokens at once (contract addresses not supported for multi-token):
erc20_query_builder(
event_type="transfer",
network="ETH",
token="USDT,USDC,DAI",
since="2025-01-01",
until="2025-01-02"
)
Resources
| URI | Description |
|---|---|
defistream://protocols |
Protocol descriptions and builder tool mapping |
defistream://api-limits |
Block limits, row caps, quota info |
Development
pip install -e ".[dev]"
pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file defistream_mcp-0.5.0.tar.gz.
File metadata
- Download URL: defistream_mcp-0.5.0.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f123c21bab9840e7618deff59f97f5601178efac4caabd223e9f8287aa63e7e
|
|
| MD5 |
e9b784143e41d5f0b50676993fca0e1f
|
|
| BLAKE2b-256 |
12f172b80d1685b74006f1256397d6c5dcc43a76ea591b3f81803ce6307e1237
|
File details
Details for the file defistream_mcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: defistream_mcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc6faece784bdefc4cf72bedcef057f450de89a2f8a63e122add061e0709e225
|
|
| MD5 |
d0a1291bfc328b02c730a9ee6d8c5756
|
|
| BLAKE2b-256 |
be72b8f87fcbbc9e4152cf2696ed6f64a5bdbec6734c7a90659d49db00d332b4
|