Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Sqlite Explorer

FreeNot checked

Read-only SQLite database explorer for MCP clients. Allows discovery of tables and columns via resources and running SELECT queries via a tool.

GitHubEmbed

About

Read-only SQLite database explorer for MCP clients. Allows discovery of tables and columns via resources and running SELECT queries via a tool.

README

A production-grade Model Context Protocol server that exposes a read-only SQLite database to any MCP client (Claude Code, Claude Desktop, …). It ships both transports, real input/output bounds, structured logging, auth, tests, CI, and a container.

Built on the official @modelcontextprotocol/sdk (v1.29.x).

Design

Capability MCP primitive Why
Discover tables / columns Resource (schema://tables, schema://table/{name}) Read-only context the model reads; cacheable, side-effect-free
Run a query Tool (query) An action with cost/risk: validated input, can fail, auditable

The server is defined once (src/server.ts) and exposed over two transports from shared code:

  • src/stdio.ts — for local clients (the client launches it as a subprocess).
  • src/http.ts — Streamable HTTP for remote clients on other machines.

Safety

  • The read-only boundary is the engine, not a string check. The DB is opened { readonly: true } with PRAGMA query_only = ON; SQLite rejects any write regardless of the SQL sent. The single-statement / SELECT-only gate in src/db.ts only produces clearer errors.
  • Output is boundedMAX_ROWS cap + busy_timeout so a runaway scan can't exhaust memory.
  • Secrets via Zod-validated env (src/env.ts); nothing hardcoded. HTTP requires a 32+ char MCP_BEARER_TOKEN, checked with a constant-time compare and fail-closed.
  • The stdout rule — on stdio, stdout is the JSON-RPC channel. All logging goes to stderr (src/logger.ts); an ESLint no-console rule enforces it.

Quick start

npm install
npm run seed          # creates data.db (sample customers + orders)
npm test              # unit + in-memory integration tests
npm run build

Run locally (stdio) + connect to Claude Code

npx @modelcontextprotocol/inspector node build/stdio.js   # debug standalone first
claude mcp add --transport stdio sqlite -- node "$(pwd)/build/stdio.js"

Run remotely (Streamable HTTP)

export MCP_BEARER_TOKEN=$(openssl rand -hex 32)
npm run start:http
# from any machine (behind TLS in production):
claude mcp add --transport http sqlite https://your-host/mcp \
  --header "Authorization: Bearer $MCP_BEARER_TOKEN"

Confirm with claude mcp list and /mcp inside a session.

Docker

docker build -t sqlite-explorer-mcp .
docker run --rm -p 8080:8080 \
  -e MCP_BEARER_TOKEN=$(openssl rand -hex 32) \
  -e BIND_HOST=0.0.0.0 \
  -v "$(pwd)/data.db:/app/data.db:ro" \
  sqlite-explorer-mcp

Terminate TLS at a reverse proxy in front of the container; never expose the plain HTTP port publicly. For per-user identity/revocation, Streamable HTTP also supports OAuth 2.0 — ship the bearer token first and add OAuth only when compliance requires named-user attribution.

Configuration

All via environment (see .env.example): SQLITE_PATH, PORT, BIND_HOST, MCP_BEARER_TOKEN, MAX_ROWS, QUERY_TIMEOUT_MS, LOG_LEVEL.

License

MIT

from github.com/FrankieSoltero/sqlite-explorer-mcp

Install Sqlite Explorer in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install sqlite-explorer-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add sqlite-explorer-mcp -- npx -y github:FrankieSoltero/sqlite-explorer-mcp

FAQ

Is Sqlite Explorer MCP free?

Yes, Sqlite Explorer MCP is free — one-click install via Unyly at no cost.

Does Sqlite Explorer need an API key?

No, Sqlite Explorer runs without API keys or environment variables.

Is Sqlite Explorer hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Sqlite Explorer in Claude Desktop, Claude Code or Cursor?

Open Sqlite Explorer on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Sqlite Explorer with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All data MCPs