Instant DB MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/your-username/instant-db
cd instant-db
bun install
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add instant-db -- bun run "<FULL_PATH_TO_MCP_DB>/dist/index.js"

Replace <FULL_PATH_TO_MCP_DB>/dist/index.js with the actual folder you prepared in step 1.

README.md

Create and manage structured databases through natural language alone.

instant-db

An MCP server that lets any connected AI assistant create and manage structured databases through natural language alone. No SQL. No schema files. Just describe what you want to track and start using it.

Runtime: Bun · Language: TypeScript · Storage: SQLite (via bun:sqlite)


What It Does

"I want to track my workouts — exercises, sets, reps, and weights."

Claude calls the MCP server, proposes a schema in plain English, waits for your confirmation, creates the database, and from that point on handles all inserts, queries, updates, and deletes — across sessions, persistently.


Setup (under 10 minutes)

1. Clone and install

git clone https://github.com/your-username/instant-db
cd instant-db
bun install

2. Configure environment

cp .env.example .env
# Edit .env if you want custom paths (defaults work fine)

3. Add to Claude Desktop

Edit your claude_desktop_config.json (usually at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "instant-db": {
      "command": "bun",
      "args": ["run", "/absolute/path/to/instant-db/src/index.ts"],
      "env": {
        "DATA_DIR": "/absolute/path/to/instant-db/data",
        "LOG_LEVEL": "normal"
      }
    }
  }
}

Replace /absolute/path/to/instant-db with the actual path where you cloned the repo.

4. Restart Claude Desktop

The instant-db tools will appear in Claude's tool list. You're done.


Usage

Start a new database

"I want to track my workouts — exercises, sets, reps, and weights."

Claude will propose a schema, you refine it in plain English, then confirm. The database is created.

Use it

"Log today's workout — 3 sets of 8 squats at 185 lbs." "How much did I squat last week?" "What's my heaviest bench press ever?"

Data persists across sessions automatically.


Recommended System Prompt

Add this to your Claude system prompt for best results:

You have access to an instant-db MCP server for persistent structured storage.
When a user wants to track or store anything:
1. Call list_databases first to check what already exists.
2. If no relevant database exists, call propose_schema and present the proposal
   conversationally — don't dump JSON at the user.
3. Wait for explicit user confirmation before calling create_database.
4. Always call describe_database at the start of a new session before inserting
   or querying, so you know the current schema.

MCP Tools Reference

Tool Purpose
list_databases List all databases managed by this server
describe_database Get the schema of a named database
propose_schema Propose a schema from a plain-language description (no-op, for AI reasoning)
create_database Create a named database from a confirmed schema
insert_record Insert a record, returns new row ID
query_records Query with optional filters, ordering, limit
update_record Update a record by ID
delete_record Delete a record by ID
count_records Count records, optionally filtered

Debugging

Every MCP tool call is logged to logs/mcp.log in JSONL format.

# Live tail with pretty output
tail -f logs/mcp.log | jq .

Log level is controlled by the LOG_LEVEL env var: verbose | normal | off

SQLite files are standard — open them in DB Browser for SQLite or any SQLite tool.


Configuration

All config via .env:

DATA_DIR=./data          # Where .sqlite files are stored
LOG_LEVEL=normal         # verbose | normal | off
LOG_PATH=./logs/mcp.log  # Log file location
MCP_TRANSPORT=stdio      # Always stdio for Claude Desktop

Development

# Run tests
bun test

# Run the server directly (for debugging)
bun run src/index.ts

Repository Structure

src/
  index.ts          # Entry point
  server.ts         # MCP server setup, tool registration
  config.ts         # Env var loading (Zod-validated)
  logger.ts         # JSONL request/response logger
  tools/
    database.ts     # list_databases, describe_database
    schema.ts       # propose_schema, create_database
    records.ts      # insert, query, update, delete, count
  db/
    adapter.ts      # IDbAdapter interface
    sqlite.ts       # SQLite implementation
    registry.ts     # Multi-database manager
data/               # SQLite files (gitignored)
logs/               # MCP logs (gitignored)

Multiple Databases

One server instance manages as many named databases as you want:

"Create a calories tracker" "Create a finances tracker" "List my databases"["workouts", "calories", "finances"]

Each database is a separate .sqlite file in data/.


What's Not in MVP

  • Schema migrations (add/rename columns after creation)
  • Joins / cross-table queries
  • Batch insert
  • Data export (CSV, JSON)
  • Web

Tools (9)

list_databasesList all databases managed by this server
describe_databaseGet the schema of a named database
propose_schemaPropose a schema from a plain-language description
create_databaseCreate a named database from a confirmed schema
insert_recordInsert a record, returns new row ID
query_recordsQuery with optional filters, ordering, limit
update_recordUpdate a record by ID
delete_recordDelete a record by ID
count_recordsCount records, optionally filtered

Environment Variables

DATA_DIRDirectory where .sqlite files are stored
LOG_LEVELLogging level (verbose, normal, off)
LOG_PATHLocation of the log file
MCP_TRANSPORTTransport protocol (always stdio for Claude Desktop)

Configuration

claude_desktop_config.json
{"mcpServers": {"instant-db": {"command": "bun", "args": ["run", "/absolute/path/to/instant-db/src/index.ts"], "env": {"DATA_DIR": "/absolute/path/to/instant-db/data", "LOG_LEVEL": "normal"}}}}

Try it

I want to track my workouts — exercises, sets, reps, and weights.
Log today's workout — 3 sets of 8 squats at 185 lbs.
How much did I squat last week?
What's my heaviest bench press ever?
Create a new database for tracking my monthly finances.

Frequently Asked Questions

What are the key features of Instant DB?

Natural language database creation without SQL knowledge. Persistent SQLite storage across sessions. Multi-database management within a single server instance. Automated schema proposal and management. JSONL-based logging for debugging MCP tool calls.

What can I use Instant DB for?

Tracking personal fitness progress and workout history. Managing personal finance records and expense logging. Building simple habit trackers or task lists. Storing structured notes or research data for AI retrieval.

How do I install Instant DB?

Install Instant DB by running: git clone https://github.com/your-username/instant-db && cd instant-db && bun install

What MCP clients work with Instant DB?

Instant DB works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Instant DB docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare