npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

datavor

v2.0.0

Published

AI-native database sync and pipeline MCP server

Readme

Datavor

The AI-Native Database Sync & Pipeline MCP

Sync, transform, schedule, and monitor your data pipelines using natural language through Claude.

No SQL. No complex UIs. No data engineers. Just ask.

Version License: Free MCP Node.js Claude Tools


🌟 What is Datavor?

Datavor is an MCP (Model Context Protocol) server that turns Claude into a complete database pipeline tool. Connect your databases, describe what you want in plain English, and Datavor handles the sync, transformation, scheduling, and monitoring.

Built for the AI era — while traditional tools like Fivetran cost $12,000+/year and require a dedicated data engineer, Datavor works through natural language and is completely free.

❌  Old way:  Write SQL → configure ETL → build schedules → debug errors → repeat
✅  Datavor:  "Sync my orders table every night and alert me if it fails"  →  Done

✨ What's New in v2.0

🗄️ Three New Database Connectors

Datavor now connects to SQL Server, SQLite, and Snowflake — in addition to MySQL and PostgreSQL. Sync between any combination of all five engines.

🧠 Data Context Engine — Datavor Gets Smarter Over Time

The most important feature in v2.0. Datavor now builds a **persistent local knowledge brain that silently learns from every interaction:

  • Remembers your schema and detects changes automatically
  • Learns your business rules from sync patterns (e.g. "always filter test data")
  • Tracks relationships between tables across databases
  • Records sync history and surfaces error patterns
  • Surfaces this knowledge on demand with get_context and explain_database

🔗 Universal Type Engine

A canonical type system (O(n) complexity) replaces the old per-pair O(n²) mappings. Every connector maps to/from a shared intermediate layer — adding a new database only requires one mapping file, not N.


⚡ How It Works

How Datavor works — from natural language to synced databases


🚀 Quick Start

Prerequisites

  • macOS, Linux (Ubuntu 22.04+), or Windows 10/11
  • Node.js 18+ and npm
  • One or more supported databases: MySQL, PostgreSQL, SQL Server, SQLite, Snowflake
  • Claude Desktop (free)

Installation

Option 1: From npm (Recommended)

npm install -g datavor

Option 2: From source

cd ~/Projects/datavor
npm install
npm run build

Native module note: better-sqlite3 is compiled from source automatically during npm install. If you see invalid ELF header, invalid PE header, or MODULE_NOT_FOUND errors, run:

npm rebuild better-sqlite3

Configure Claude Desktop

Open your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

If installed via npm:

{
  "mcpServers": {
    "datavor": {
      "command": "datavor"
    }
  }
}

If installed from source:

{
  "mcpServers": {
    "datavor": {
      "command": "node",
      "args": ["/path/to/datavor/build/index.js"]
    }
  }
}

Restart Claude Desktop completely (Cmd+Q, then reopen), then look for the 🔨 icon near the text input to confirm Datavor loaded.


🔌 MCP Client Compatibility

Datavor works with any MCP-compatible client. All three major clients have been tested and confirmed:

| Client | Config file | Status | |---|---|---| | Claude Desktop | claude_desktop_config.json (see paths above) | ✅ Confirmed | | Cursor | .cursor/mcp.json in your project root | ✅ Confirmed | | Cline (VS Code) | cline_mcp_settings.json (VS Code: Cline > MCP Servers > Configure) | ✅ Confirmed |

The same config block works for all clients:

{
  "mcpServers": {
    "datavor": {
      "command": "datavor"
    }
  }
}

💡 Usage Examples

Connect Your Databases

Every session starts with a connection. Supported engines:

"Connect to my MySQL database at 127.0.0.1, user root, password mypass"
"Connect to PostgreSQL at localhost, user postgres, password pgpass"
"Connect to SQL Server at localhost, user sa, password Pass123!"
"Connect to my SQLite file at /path/to/mydata.db"
"Connect to Snowflake, account myorg.us-east-1, user myuser, password mypass, warehouse COMPUTE_WH"

MySQL on macOS: Always use 127.0.0.1 instead of localhost — macOS routes localhost through a Unix socket that the mysql2 driver doesn't use.


Core Sync

Full sync — copies everything, replaces target:

You: "Sync the customers table from MySQL to PostgreSQL"
Claude: ✅ Synced 10,542 rows in 5.2s

Partial sync — filter what you move:

You: "Sync only active US customers from MySQL to PostgreSQL"
Claude: ✅ Synced 3,241 rows (WHERE country='US' AND active=1)

Partial sync with country and date filters

Incremental sync — only what changed since last run:

You: "Sync new orders incrementally using the updated_at column"
Claude: ✅ Synced 47 new/updated rows (from 2025-03-10 onwards) in 0.3s
        💡 Next incremental sync will automatically start from: 2025-03-11 09:15:00

Incremental sync — full vs incremental speed comparison


⭐ NEW in v2.0 — Context Engine: Datavor Learns Your Behaviour And Workflow

The Context Engine accumulates knowledge silently — no extra steps needed.

Ask what Datavor knows about a table:

You: "What do you know about the orders table on production MySQL?"

Claude: {
  "table": "orders",
  "schema": {
    "columns": [
      { "name": "id", "type": "INT", "pk": true },
      { "name": "customer_id", "type": "INT" },
      { "name": "total_cents", "type": "INT" },
      { "name": "status", "type": "VARCHAR(20)" }
    ],
    "last_scanned": "2026-03-20T14:30:00Z",
    "recent_changes": [
      { "type": "column_added", "column": "discount_code", "detected": "2026-03-18" }
    ]
  },
  "rules": [
    { "name": "exclude_test_orders", "condition": "email NOT LIKE '%@test.com%'",
      "auto_apply": true, "usage_count": 47 }
  ],
  "relationships": [
    { "type": "sync_pair", "target": "analytics_postgres.orders" },
    { "type": "foreign_key", "source": "customer_id", "target": "customers.id" }
  ],
  "sync_stats": { "total_syncs": 142, "success_rate": "97.2%" }
}

Get a plain English explanation of any database:

You: "Explain my production MySQL database"

Claude: This is a MySQL database ("production_db") with 23 tables. Known
        tables include orders (5 cols), customers (8 cols), products (6 cols).
        There are 4 business rules (2 auto-applied during syncs). 3 foreign
        key relationships detected. Syncs to analytics_postgres every hour
        with a 97% success rate. 142 syncs recorded, 890,000 total rows moved.
        2 schema changes detected recently. First connected: 2026-01-15.

Save business rules that auto-apply to future syncs:

You: "Always filter out test orders when syncing. email should not contain @test.com"

Claude: ✅ Rule #12 created: "exclude_test_orders"
        auto_apply: true — this will automatically filter during future syncs.

Scheduler: Automate Your Syncs

Create a nightly job in plain English:

You: "Create a job to sync the orders table from MySQL to PostgreSQL every night at 2am"

Claude: ✅ Sync job created!
        • Name:     Nightly orders sync
        • Table:    orders
        • Schedule: Daily at 02:00  (0 2 * * *)
        • Mode:     full

Other natural-language schedules:

  • "every hour"0 * * * *
  • "every night at midnight"0 0 * * *
  • "weekly on Sunday"0 2 * * 0
  • "monthly on the 1st"0 2 1 * *

Keep jobs running 24/7 (no Claude needed):

# Start the daemon — runs all active jobs on schedule
node build/scheduler-daemon.js

# Or keep it alive permanently with pm2:
pm2 start build/scheduler-daemon.js --name datavor-scheduler

Datavor Scheduler — create and manage automated sync jobs


Transforms: Shape Data During Sync

Preview before committing:

You: "Preview what happens if I rename customer_id to cust_id,
      cast score to float, and expand country codes on the customers table"

Datavor Transform Preview — before and after side by side

Apply transforms and sync in one step:

Datavor Transform Apply — sync with inline transforms, statistics report

Available transform types:

| Type | Example | |------|---------| | rename | customer_id → cust_id | | cast | Convert price to float | | filter | Keep only rows where status = 'active' | | computed | Add full_name = first_name + ' ' + last_name | | value_map | Remap A → Active, I → Inactive |


Dashboard: Monitor Your Pipelines

You: "Show me a sync dashboard summary"

Datavor Sync Dashboard — 7-day overview: success rate, rows moved, daily trend

You: "Show me all sync failures from the last 7 days"

Datavor Dashboard failures — each failure with error and fix hint


📖 All 34 MCP Tools

Connection (7)

| Tool | What it does | |------|-------------| | connect_mysql | Connect to a MySQL database | | connect_postgres | Connect to a PostgreSQL database | | connect_sqlserver | Connect to a SQL Server database ⭐ new | | connect_sqlite | Connect to a SQLite file ⭐ new | | connect_snowflake | Connect to Snowflake ⭐ new | | list_connections | List active connections | | close_connection | Close a connection |

Schema (2)

| Tool | What it does | |------|-------------| | list_tables | List all tables with row counts | | describe_table | Show column types, constraints, and detected FKs |

Query (2)

| Tool | What it does | |------|-------------| | execute_query | Run any SQL query | | get_table_data | Fetch rows from a table |

Sync (3)

| Tool | What it does | |------|-------------| | sync_table | Sync between any two supported databases | | sync_table_partial | Sync rows matching a WHERE clause | | sync_table_incremental | Sync only new/updated rows by timestamp |

Visualization (4)

| Tool | What it does | |------|-------------| | compare_table_schemas | Side-by-side column comparison | | show_database_tree | Hierarchical table/column view | | analyze_schema_diff | Find all differences before migration | | recommend_sync_order | AI-powered table priority suggestions |

Scheduler (6)

| Tool | What it does | |------|-------------| | scheduler_create_job | Save a sync job with a schedule | | scheduler_list_jobs | List all jobs with last-run status | | scheduler_run_job | Run a job manually right now | | scheduler_pause_job | Pause a job (keeps it saved) | | scheduler_resume_job | Resume a paused job | | scheduler_delete_job | Delete a job permanently |

Transform (2)

| Tool | What it does | |------|-------------| | transform_preview | Preview transforms on sample data before syncing | | sync_table_with_transforms | Sync with inline rename/cast/filter/remap applied |

Dashboard (3)

| Tool | What it does | |------|-------------| | dashboard_summary | Overview: success rate, rows moved, trends | | dashboard_table_history | Full run log for a specific table | | dashboard_failures | All failures with error messages and hints |

Context Engine ⭐ new in v2.0 (5)

| Tool | What it does | |------|-------------| | get_context | Get everything Datavor knows about a database or table | | add_rule | Save a business rule that auto-applies during future syncs | | update_rule | Update an existing rule | | remove_rule | Delete a rule | | explain_database | Natural language summary of a database |


🔁 Supported Type Conversions

The universal type engine handles conversions between all five engines. Every type maps through a shared canonical layer — no surprises.

| Universal Type | MySQL | PostgreSQL | SQL Server | SQLite | Snowflake | |---|---|---|---|---|---| | integer | INT | INTEGER | INT | INTEGER | NUMBER(10,0) | | bigint | BIGINT | BIGINT | BIGINT | BIGINT | NUMBER(19,0) | | boolean | TINYINT(1) | BOOLEAN | BIT | BOOLEAN | BOOLEAN | | string | VARCHAR(n) | VARCHAR(n) | NVARCHAR(n) | TEXT | VARCHAR(n) | | text | TEXT | TEXT | NVARCHAR(MAX) | TEXT | VARCHAR(16777216) | | decimal | DECIMAL(p,s) | DECIMAL(p,s) | DECIMAL(p,s) | NUMERIC | NUMBER(p,s) | | datetime | DATETIME | TIMESTAMP | DATETIME2 | DATETIME | TIMESTAMP_NTZ | | json | JSON | JSONB | NVARCHAR(MAX) | TEXT | VARIANT | | uuid | CHAR(36) | UUID | UNIQUEIDENTIFIER | TEXT | VARCHAR(36) | | binary | BLOB ⚠️ | BYTEA ⚠️ | VARBINARY(MAX) ⚠️ | BLOB ⚠️ | BINARY ⚠️ |

⚠️ = Datavor emits a warning before writing binary data across engines.


🎯 Real-World Use Cases

Nightly Production → Analytics Sync

Day 1 (setup — 5 minutes):
  "Connect to production MySQL at db.mystore.com"
  "Connect to analytics PostgreSQL at analytics.mystore.com"
  "Create a job to sync orders, customers, and products every night at 3am"

Every night at 3am (automatic):
  Daemon runs all jobs. Ledger records results.

Monday morning:
  "Show me a dashboard summary from the last 7 days"
  → 21 successful runs, 126,000 rows moved, 0 failures

Data Migration with Transform

"Sync the users table from legacy MySQL to new PostgreSQL with these transforms:
 - Rename usr_id → user_id
 - Rename usr_nm → full_name
 - Remap acct_sts: A→active, S→suspended, D→deleted"

→ 45,231 rows synced and transformed in 22s

MySQL → Snowflake Analytics Pipeline

"Sync the orders table from MySQL to Snowflake daily at 6am"

→ Datavor handles all type conversions automatically:
  INT → NUMBER(10,0), DATETIME → TIMESTAMP_NTZ, JSON → VARIANT

Dev Environment Refresh with Auto-Rules

First time:
  "Sync orders from the last 30 days to local SQLite, filter out @internal emails"

Datavor remembers the filter. Next time:
  "Sync orders to local SQLite"
  → Applies email filter automatically (auto_apply rule)

🗺️ Roadmap

✅ v1.0 — Core Sync (Released March 2026, FREE)

Full sync, partial sync, incremental sync, schema comparison, database tree view, schema analysis.

✅ v1.5 — Data Pipelines (Released March 2026, FREE)

Scheduler, Transform Pipeline, Sync Dashboard, Type Engine.

✅ v2.0 — Multi-Connector + Context Engine (Released March 2026, FREE)

SQL Server, SQLite, Snowflake connectors. Data Context Engine (persistent knowledge brain). Universal canonical type system. 34 MCP tools.

📅 v2.5 — CDC & dbt (Planned Q3 2026)

Change Data Capture for real-time sync. dbt integration.

🔮 v3.0 — Visual Layer (Planned Q4 2026)

Local web dashboard for browsing history, managing jobs, and building transform pipelines visually.


🆚 Datavor vs. The Alternatives

| | Fivetran / Airbyte | Manual SQL Scripts | Datavor v2.0 | |---|---|---|---| | Price | $12,000+/year | Free (your time) | Free 🎉 | | Setup | Days | Hours | Minutes | | Databases | Many (paid tiers) | Whatever you write | MySQL, PostgreSQL, SQL Server, SQLite, Snowflake | | Scheduling | Built-in (paid) | cron + bash | Built-in, free | | Transforms | Paid add-on | Write yourself | Built-in, free | | Monitoring | Web dashboard (paid) | Roll your own | Built-in, free | | Learns over time | ❌ | ❌ | ✅ Context Engine | | Interface | Web UI | SQL knowledge required | Natural language |


❓ Troubleshooting

Claude doesn't see Datavor tools

  1. Check config: cat ~/.claude/claude_desktop_config.json
  2. Restart Claude Desktop completely (Cmd+Q, then reopen)
  3. Check logs: cat ~/Library/Logs/Claude/main.log | grep -i datavor

Connection refused / Access denied

# Test manually first
mysql -h localhost -u YOUR_USER -p
psql -h localhost -U YOUR_USER
sqlcmd -S localhost -U sa
sqlite3 /path/to/db.sqlite

If the manual connection works, use the exact same credentials in Claude.

SQL Server on macOS/Linux

SQL Server requires the mssql driver. If connect_sqlserver times out, verify:

  1. Port 1433 is open: nc -zv HOST 1433
  2. SA password meets complexity requirements (uppercase, lowercase, digit, symbol)
  3. For Docker: use MSSQL_SA_PASSWORD (not SA_PASSWORD)

Scheduler daemon isn't running jobs

node build/scheduler-daemon.js

# Always-on with pm2:
pm2 start build/scheduler-daemon.js --name datavor-scheduler
pm2 save && pm2 startup

Build issues

rm -rf build
npm run build
node --version  # Must be v18 or higher

Run the test suite

npm test                              # All unit + compatibility tests (296 tests)
DATAVOR_INTEGRATION=1 npm test       # Also run integration tests (requires live DBs)

Linux / Docker Testing

To run Datavor tests in a Linux Docker container:

docker run -it --rm -v /path/to/datavor:/app node:20 bash /app/linux-test.sh

🔐 Security

  • Passwords are only used in your Claude conversation — they are never written to disk
  • Use read-only database users when syncing FROM production
  • Jobs (~/.datavor/jobs/) store connection IDs, not credentials
  • The Context Engine (~/.datavor/context.db) stores schema metadata and rule names — never actual row data
  • The sync ledger (~/.datavor/sync-ledger.json) stores row counts and timestamps only

📄 License

v1.0, v1.5, v2.0: Free for personal and commercial use.

Proprietary License — All rights reserved. Copyright © 2026 Datavor.


📞 Support

Response time: within 48 hours.


Version History

v2.0 (March 2026) — FREE

  • ⭐ SQL Server connector (connect_sqlserver) — full sync, transforms, schema introspection
  • ⭐ SQLite connector (connect_sqlite) — WAL mode, UPSERT, AUTOINCREMENT detection
  • ⭐ Snowflake connector (connect_snowflake) — MERGE upsert, VARIANT/TIMESTAMP_NTZ support
  • ⭐ Data Context Engine — persistent SQLite knowledge store
  • ⭐ 5 new Context Engine tools: get_context, add_rule, update_rule, remove_rule, explain_database
  • ⭐ Universal canonical type system — O(n) type mapping across all 5 engines
  • ⭐ Auto-apply business rules — rules learned from sync patterns apply automatically
  • ⭐ FK detection — foreign keys discovered from DB metadata and column naming patterns
  • ⭐ Schema change detection — column additions, removals, and type changes tracked automatically
  • Total MCP tools: 34 (was 26)

v1.5 (March 2026) — FREE

  • ⭐ Scheduler — automate syncs with natural-language schedules
  • ⭐ Transform Pipeline — rename, cast, filter, remap values inline
  • ⭐ Sync Dashboard — summary, table history, failure diagnostics
  • ⭐ Type Engine — universal MySQL ↔ PostgreSQL type conversion layer
  • Total MCP tools: 26 (was 15)

v1.0 (March 2026) — FREE

  • Full table sync (MySQL ↔ PostgreSQL)
  • Partial sync with WHERE filters
  • Incremental sync (timestamp-based)
  • Schema comparison, database tree view, schema analysis, AI sync recommendations

Built with ❤️ for the AI-powered future of database management

Datavor — Making data pipelines accessible to everyone through AI