Overview
arcticdb-mcp turns ArcticDB into an AI data copilot. Assistants can automate symbol updates, batch jobs, and time-series queries while built-in versioning protects every change. Go from question to data change in minutes, not scripts, with full traceability. You can also design your own workflows on top of arcticdb-mcp.
Table of Contents
- Demo Video
- Quickstart
- Installation
- Configuration
- Run Modes
- Tools
- Example Prompts
- Development
- Community Backlog
- Contributing
- License
Demo Video
Watch the live watch db demo:
https://github.com/user-attachments/assets/dd81f229-e1f9-46e6-8e79-7c7252bc25c6
Quickstart
- Install and run with
uvx(recommended):
uvx arcticdb-mcp
- Configure your MCP client (Claude Desktop / Cursor / Windsurf / Continue):
{
"mcpServers": {
"arcticdb": {
"command": "uvx",
"args": ["arcticdb-mcp"],
"env": {
"ARCTICDB_URI": "lmdb:///path/to/your/database"
}
}
}
}
- Ask your assistant:
- "Show me the last 5 rows of AAPL in library finance"
- "Create a snapshot of finance before I update symbols"
- "List versions for symbol ES_intraday"
Installation
Choose one:
# Recommended
uvx arcticdb-mcp
# Or
pipx install arcticdb-mcp
# Or
pip install arcticdb-mcp
Python requirement: >=3.9
Configuration
Set ARCTICDB_URI in MCP client config or environment.
URI examples
- Local LMDB (Linux/macOS):
lmdb:///path/to/db - Local LMDB (Windows):
lmdb://C:/path/to/db - AWS S3:
s3://s3.amazonaws.com:bucket?region=us-east-1&access=KEY&secret=SECRET - Azure Blob:
azure://AccountName=X;AccountKey=Y;Container=Z - S3-compatible (MinIO, etc.):
s3://your-endpoint:bucket?access=KEY&secret=SECRET
You can also use a .env file:
ARCTICDB_URI=lmdb:///path/to/db
Run Modes
stdio (default)
This is the default mode used by desktop MCP clients.
ARCTICDB_URI=lmdb:///path/to/db python -m arcticdb_mcp
HTTP / SSE
Set ARCTICDB_MCP_PORT to run over HTTP/SSE:
Use an integer from 1 to 65535. An unset or empty value selects stdio.
ARCTICDB_URI=lmdb:///path/to/db ARCTICDB_MCP_PORT=8000 python -m arcticdb_mcp
Endpoint:
http://localhost:8000/sse
Tools
Current server exposes 49 tools.
Arctic and Libraries
Symbols
Batch Operations
Snapshots
Query Helpers
Maintenance
Paginated Symbol Reads
Use read_symbol_page to inspect large symbols a page at a time without loading the full dataset into memory or overflowing assistant response context:
- Parameters:
library,symbol,offset(default 0),limit(default 100, max 1000), optionalcolumns, optionalas_of. - Backend Slicing: Row ranges and column projections are pushed directly to ArcticDB storage engines.
- Version Pinning: The initial page resolves the symbol's version (
version). Passas_of=versionon subsequent pages to guarantee consistent reads across mutations. - Continuation Info: Each response includes
count,total_rows,has_more, andnext_offset.
Two-Page Example
# Page 1: Read the first 100 rows of symbol AAPL
page1 = read_symbol_page(library="finance", symbol="AAPL", offset=0, limit=100)
# Returns: {"version": 2, "offset": 0, "limit": 100, "count": 100, "total_rows": 250, "has_more": True, "next_offset": 100, "data": [...]}
# Page 2: Pin version=2 and use next_offset to fetch the next slice
page2 = read_symbol_page(
library="finance",
symbol="AAPL",
offset=page1["next_offset"],
limit=100,
as_of=page1["version"],
)
# Returns: {"version": 2, "offset": 100, "limit": 100, "count": 100, "total_rows": 250, "has_more": True, "next_offset": 200, "data": [...]}
Example Prompts
- "Read symbol NVDA from library finance"
- "Filter NVDA where price > 500 and volume >= 1000"
- "Resample ES_intraday to 5min and aggregate price mean, volume sum"
- "Write metadata owner=research to symbol ES_intraday"
- "Delete data in range for ES_intraday from 2024-01-01 to 2024-01-05"
Development
git clone https://github.com/YMuskrat/arcticdb-mcp
cd arcticdb-mcp
pip install -e .
Run locally:
ARCTICDB_URI=lmdb:///path/to/db python -m arcticdb_mcp
Test with MCP Inspector:
ARCTICDB_URI=lmdb:///tmp/test_db npx @modelcontextprotocol/inspector python -m arcticdb_mcp
Community Backlog
These ArcticDB capabilities are intentionally left open for contributors:
stagefinalize_staged_datasort_and_finalize_staged_datadelete_staged_dataget_staged_symbolsread_batch_and_joinadmin_tools
Contributing
See CONTRIBUTING.md.
License
MIT