# mcp-server-sqlite [![npm version](https://img.shields.io/npm/v/mcp-sqlite-server.svg)](https://www.npmjs.com/package/mcp-sqlite-server) [![npm downloads](https://img.shields.io/npm/dm/mcp-sqlite-server.svg)](https://www.npmjs.com/package/mcp-sqlite-server) [![CI](https://github.com/ofershap/mcp-server-sqlite/actions/workflows/ci.yml/badge.svg)](https://github.com/ofershap/mcp-server-sqlite/actions/workflows/ci.yml) [![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue.svg)](https://www.typescriptlang.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) Query SQLite databases, inspect schemas, and explain queries from your AI assistant. Read-only by default for safety. ```bash npx mcp-sqlite-server ``` > Works with Claude Desktop, Cursor, VS Code Copilot, and any MCP client. Reads local `.db` files, no auth needed. ![MCP server for querying SQLite databases and inspecting schemas](assets/demo.gif) Demo built with remotion-readme-kit ## Why SQLite is everywhere. It's the default database for mobile apps, Electron apps, local-first tools, and increasingly for server-side projects too (Turso, Cloudflare D1, Bun's built-in SQLite). The official MCP reference includes a basic SQLite server, but it's Python-only. If you're working in a TypeScript/Node.js environment and want to ask your assistant "what tables are in this database?" or "run this query and show me the results," this server handles that. It opens the database read-only by default so you can explore safely, and you can opt into write mode when you need it. ## Tools | Tool | What it does | | ---------------- | ------------------------------------------------------------------------ | | `query` | Execute SQL (SELECT, PRAGMA, EXPLAIN, WITH). Returns results as a table. | | `schema` | Get full schema: all tables with columns, types, and row counts. | | `table_info` | Detailed info for a single table: columns, constraints, row count. | | `explain` | Run EXPLAIN QUERY PLAN to optimize queries. | | `list_databases` | List .db, .sqlite, .sqlite3 files in a directory. | ## Quick Start ### Cursor Add to `.cursor/mcp.json`: ```json { "mcpServers": { "sqlite": { "command": "npx", "args": ["mcp-sqlite-server"] } } } ``` ### Claude Desktop Add to `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`): ```json { "mcpServers": { "sqlite": { "command": "npx", "args": ["mcp-sqlite-server"] } } } ``` ### VS Code Configure the MCP server in your VS Code settings to run `npx mcp-sqlite-server`. ## Example prompts - "Show me the schema of my database at ./data.db" - "Query the users table: SELECT \* FROM users LIMIT 10" - "Explain the query plan for this complex join" - "What tables are in this database?" - "Find all .db files in the current directory" ## Safety Read-only by default. The `query` tool accepts only SELECT, PRAGMA, EXPLAIN, and WITH in readonly mode. Set `readonly=false` in the tool args to enable INSERT, UPDATE, DELETE, etc. ## Development ```bash npm install npm run typecheck npm run build npm test npm run format npm run lint ``` ## See also More MCP servers and developer tools on my [portfolio](https://gitshow.dev/ofershap). ## Author [![Made by ofershap](https://gitshow.dev/api/card/ofershap)](https://gitshow.dev/ofershap) [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0A66C2?style=flat&logo=linkedin&logoColor=white)](https://linkedin.com/in/ofershap) [![GitHub](https://img.shields.io/badge/GitHub-Follow-181717?style=flat&logo=github&logoColor=white)](https://github.com/ofershap) --- README built with [README Builder](https://ofershap.github.io/readme-builder/) ## License MIT © 2026 Ofer Shapira