Databento MCP Server
Model Context Protocol (MCP) server for DataBento market data - provides AI assistants with real-time ES/NQ futures quotes, historical bars, and session detection
Install / Use
npx skills add Nice-Wolf-Studio/databento-mcp-serverInstalls into whichever agent you are using.
Quality Score
Category
Development & EngineeringSupported Platforms
README
DataBento MCP Server & Skills
Professional market data access via DataBento API, available as both an MCP server and Claude Code skills.
What's New
Version 3.0 - Dual Deployment: MCP Server + Claude Code Skills
This project now supports two deployment modes:
- MCP Server: For Claude Desktop and other MCP clients (18 tools)
- Claude Code Skills: Native skills for Claude Code CLI (8 skill scripts)
Both modes share the same core functionality:
- Complete Databento API coverage (Timeseries, Metadata, Batch, Symbology, Reference)
- Full Historical API support with flexible schemas
- Real-time futures quotes (ES, NQ)
- Type-safe TypeScript implementation throughout
Choose the deployment that fits your workflow best!
Features
- 🎯 Real-time Futures Quotes - Current prices for ES and NQ contracts
- 📊 Historical Timeseries - Stream any market data schema across date ranges
- 📈 Batch Downloads - Submit and manage large historical data jobs
- 🔍 Symbol Resolution - Resolve symbols to instrument IDs across datasets
- 📚 Metadata Discovery - Explore datasets, schemas, fields, and pricing
- 🏢 Reference Data - Access security master, corporate actions, and adjustments
- ⏰ Session Detection - Automatic Asian/London/NY session identification
- 🚀 Rate Limiting - Built-in request throttling and caching (30s TTL)
- 🔒 Error Handling - Graceful failures with clear error messages
Installation
Prerequisites
- Node.js v18+ or compatible runtime
- DataBento API key (get one here)
- For MCP: Claude Desktop or compatible MCP client
- For Skills: Claude Code CLI
Setup
- Clone or download this repository:
cd ~/Dev
git clone <your-repo-url> databento-mcp-server
cd databento-mcp-server
- Install dependencies:
npm install
- Create
.envfile with your DataBento API key:
cp .env.example .env
# Edit .env and add your API key
Your .env should contain:
DATABENTO_API_KEY=db-your-api-key-here
DATABENTO_DATASET=GLBX.MDP3
- Choose your deployment mode below
Configuration
Option 1: MCP Server (for Claude Desktop)
Build the MCP server:
npm run build:mcp
Add to your Claude Desktop MCP configuration (~/.claude/mcp.json):
{
"mcpServers": {
"databento": {
"command": "node",
"args": ["/Users/yourusername/Dev/databento-mcp-server/dist/mcp/mcp/index.js"],
"env": {
"DATABENTO_API_KEY": "db-your-api-key-here"
}
}
}
}
Or use npx directly (if published to npm):
{
"mcpServers": {
"databento": {
"command": "npx",
"args": ["-y", "databento-mcp-server"],
"env": {
"DATABENTO_API_KEY": "db-your-api-key-here"
}
}
}
}
Option 2: Claude Code Skills
Build and install skills:
npm run install:skills
This will:
- Compile the skills from TypeScript
- Copy them to
~/.claude/skills/databento/ - Make scripts executable
Set your API key environment variable:
export DATABENTO_API_KEY="db-your-api-key-here"
# Or add to your .bashrc/.zshrc for persistence
Verify installation:
node ~/.claude/skills/databento/scripts/get-quote.js ES
Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| DATABENTO_API_KEY | ✅ | - | Your DataBento API key (starts with db-) |
| DATABENTO_DATASET | ❌ | GLBX.MDP3 | CME dataset for futures data |
Available Tools
The MCP server provides 18 tools organized into 6 categories:
| Category | Tools | Description | |----------|-------|-------------| | Original | 3 tools | ES/NQ futures quotes, session info, historical bars | | Timeseries | 1 tool | Historical market data streaming with flexible schemas | | Symbology | 1 tool | Symbol resolution and conversion | | Metadata | 6 tools | Dataset discovery, schema info, cost estimation | | Batch | 3 tools | Large-scale data download job management | | Reference | 3 tools | Security master, corporate actions, price adjustments |
Original Tools (Futures & Session)
1. get_futures_quote
Get current price quote for ES or NQ futures.
Input:
{
"symbol": "ES"
}
Output:
{
"symbol": "ES",
"price": 5845.25,
"bid": 5845.00,
"ask": 5845.50,
"spread": 0.50,
"timestamp": "2024-10-02T14:30:00.000Z",
"dataAge": "15s ago",
"source": "DataBento"
}
2. get_session_info
Get current trading session information.
Input:
{
"timestamp": "2024-10-02T14:30:00Z"
}
Note: timestamp is optional, defaults to current time
Output:
{
"currentSession": "NY",
"sessionStart": "2024-10-02T14:00:00.000Z",
"sessionEnd": "2024-10-02T22:00:00.000Z",
"timestamp": "2024-10-02T14:30:00.000Z",
"utcHour": 14
}
Sessions:
- Asian: 00:00 - 07:00 UTC
- London: 07:00 - 14:00 UTC
- NY: 14:00 - 22:00 UTC
3. get_historical_bars
Get historical OHLCV bars for futures contracts.
Input:
{
"symbol": "NQ",
"timeframe": "H4",
"count": 10
}
Output:
{
"symbol": "NQ",
"timeframe": "H4",
"count": 10,
"bars": [
{
"timestamp": "2024-10-02T00:00:00.000Z",
"open": 20150.25,
"high": 20175.50,
"low": 20145.00,
"close": 20160.75,
"volume": 125000
}
]
}
Supported Timeframes:
1h- Hourly barsH4- 4-hour bars (aggregated from 1h)1d- Daily bars
Timeseries Tools
4. timeseries_get_range
Stream historical market data with flexible schemas and date ranges. Supports all Databento schemas.
Input:
{
"dataset": "GLBX.MDP3",
"symbols": "ES.c.0,NQ.c.0",
"schema": "trades",
"start": "2024-10-01",
"end": "2024-10-02",
"stype_in": "raw_symbol",
"stype_out": "instrument_id",
"limit": 1000
}
Supported Schemas:
mbp-1,mbp-10- Market by price (1 or 10 levels)mbo- Market by ordertrades- Trade dataohlcv-1s,ohlcv-1m,ohlcv-1h,ohlcv-1d,ohlcv-eod- OHLCV barsstatistics,definition,imbalance,status- Market metadata
Output:
{
"dataset": "GLBX.MDP3",
"schema": "trades",
"symbols": ["ES.c.0"],
"dateRange": {
"start": "2024-10-01T00:00:00Z",
"end": "2024-10-02T00:00:00Z"
},
"recordCount": 1000,
"data": [
{
"ts_event": "2024-10-01T09:30:00.123456789Z",
"price": 5845.25,
"size": 10,
"side": "B"
}
]
}
Symbology Tools
5. symbology_resolve
Resolve symbols to instrument IDs or other symbol types across a date range.
Input:
{
"dataset": "GLBX.MDP3",
"symbols": ["ES", "NQ"],
"stype_in": "continuous",
"stype_out": "instrument_id",
"start_date": "2024-10-01",
"end_date": "2024-10-02"
}
Symbol Types:
raw_symbol- Native exchange symbolinstrument_id- Databento instrument IDcontinuous- Continuous futures (c.0, c.1, etc.)parent- Parent symbolnasdaq,cms,bats,smart- Venue-specific symbology
Output:
{
"dataset": "GLBX.MDP3",
"stype_in": "continuous",
"stype_out": "instrument_id",
"date_range": {
"start": "2024-10-01",
"end": "2024-10-02"
},
"symbol_count": 2,
"result": "partial",
"mappings": [
{
"input_symbol": "ES.c.0",
"output_symbol": "123456",
"start_date": "2024-10-01",
"end_date": "2024-10-02"
}
]
}
Metadata Tools
6. metadata_list_datasets
List all available Databento datasets with optional date range filtering.
Input:
{
"start_date": "2024-01-01",
"end_date": "2024-12-31"
}
Output:
{
"datasets": [
{
"dataset": "GLBX.MDP3",
"description": "CME Globex MDP 3.0",
"start_date": "2020-01-01",
"end_date": null
}
],
"count": 1
}
7. metadata_list_schemas
List available data schemas for a specific dataset.
Input:
{
"dataset": "GLBX.MDP3"
}
Output:
{
"dataset": "GLBX.MDP3",
"schemas": ["trades", "mbp-1", "mbp-10", "ohlcv-1h", "ohlcv-1d"],
"count": 5
}
8. metadata_list_publishers
List publishers with their details, optionally filtered by dataset.
Input:
{
"dataset": "GLBX.MDP3"
}
Output:
{
"publishers": [
{
"publisher_id": 1,
"dataset": "GLBX.MDP3",
"venue": "CME",
"description": "Chicago Mercantile Exchange"
}
],
"count": 1,
"dataset_filter": "GLBX.MDP3"
}
9. metadata_list_fields
List fields available for a specific schema with their types and descriptions.
Input:
{
"schema": "trades",
"encoding": "json"
}
Output:
{
"schema": "trades",
"encoding": "json",
"fields": [
{
"name": "ts_event",
"type": "uint64",
"description": "Event timestamp in nanoseconds"
},
{
"name": "price",
"type": "int64",
"description": "Price in fixed-point notation"
}
],
"count": 2
}
10. metadata_get_cost
Calculate the cost in USD for a historical data query before downloading.
Input:
{
"dataset": "GLBX.MDP3",
"symbols": "ES.c.0",
"schema": "trades",
"start": "2024-10-01",
"end": "2024-10-02",
"stype_in": "raw_symbol"
}
Output:
{
"dataset": "GLBX.MDP3",
"symbols": ["ES.c.0"],
"schema": "trades",
"cost_usd": 15.50,
"record_count_estimate": 1500000,
"size_bytes_estimate": 45000000
}
11. metadata_get_dataset_range
Get the available date range for a dataset.
Input:
{
"dataset": "GLBX.MDP3"
}
Output:
{
"dataset": "GLBX.MDP3",
"start_date": "2020-01-01",
"end_date": null,
"description": "Data available from 2020-01-01 to present"
}
Batch Tools
12. `batch_s
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.6kCommit, push, and open a PR
