instant-db
An MCP server that enables AI assistants to create and manage persistent SQLite databases through natural language without requiring SQL knowledge. It allows users to propose schemas, store records, and perform complex queries across multiple databases for structured data tracking.
README
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 UI (use any SQLite browser directly)
- Postgres adapter (interface ready, implementation deferred)
- Auth / access control
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。