SQLite

by isaacgounton

431 downloads
Not rated
GitHub

About

Provides a lightweight SQLite database management solution with TypeScript and Docker support, enabling quick, embedded database operations with minimal setup complexity.

Details

Author
isaacgounton
Repository
etugrand/sqlite-mcp-server
Downloads
431
License
ISC License
Categories
Design, Developer Tools, File Management, Infrastructure, Database, Frontend

- In-memory or file-based SQLite database
- Dual transport: stdio and Streamable HTTP
- SQL operations with input validation and injection protection
- Table management (CREATE, DROP, LIST, DESCRIBE)
- Database schema exposed as an MCP resource
- Business insights memo tracking
- Docker support

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name SQLite
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 /path/to/sqlite-mcp-server/build/index.js

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

| Option | Description | Default |
|--------|-------------|---------|
| --http | Use Streamable HTTP transport instead of stdio | stdio |
| First non-flag argument | Path to SQLite database file | :memory: |
| SQLITE_DB_PATH | Database path (env var alternative) | :memory: |
| PORT | HTTP server port (HTTP mode only) | 3000 |
| HOST | Interface to bind in HTTP mode. Use 0.0.0.0 to expose beyond localhost | 127.0.0.1 |
| MCP_ALLOWED_HOSTS | Comma-separated Host header allow-list for DNS-rebinding protection | localhost:$PORT,127.0.0.1:$PORT |
| MCP_AUTH_TOKEN | Bearer token required on all /mcp requests (HTTP mode). Unset = auth disabled | _(none)_ |

read_query

Execute SELECT, WITH (CTE), or EXPLAIN queries

write_query

Execute INSERT, UPDATE, DELETE, or REPLACE queries

create_table

Create a new table with a CREATE TABLE statement

drop_table

Drop a table (irreversible)

list_tables

List all user-created tables

describe_table

Get table schema: columns, indexes, and foreign keys

append_insight

Add a business insight to the memo resource

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "sqlite": {
            "env": {},
            "args": [
                "/path/to/sqlite-mcp-server/build/index.js"
            ],
            "command": "node"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "/path/to/sqlite-mcp-server/build/index.js"
    ],
    "command": "node"
}

Macos

{
    "env": [],
    "args": [
        "/path/to/sqlite-mcp-server/build/index.js"
    ],
    "command": "node"
}

Windows

{
    "env": [],
    "args": [
        "/c",
        "node",
        "/path/to/sqlite-mcp-server/build/index.js"
    ],
    "command": "cmd"
}

SQLite MCP Server

CI
License: ISC
smithery badge

A Model Context Protocol (MCP) server that provides SQLite database operations. Supports both stdio (for Claude Desktop, Cursor, etc.) and Streamable HTTP (for remote clients) transports.

Features

- In-memory or file-based SQLite database
- Dual transport: stdio and Streamable HTTP
- SQL operations with input validation and injection protection
- Table management (CREATE, DROP, LIST, DESCRIBE)
- Database schema exposed as an MCP resource
- Business insights memo tracking
- Docker support

Quick Start

Stdio (Claude Desktop, Cursor, etc.)

npm install && npm run build
node build/index.js

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "sqlite": {
      "command": "node",
      "args": ["/path/to/sqlite-mcp-server/build/index.js"]
    }
  }
}

With a file-based database:

{
  "mcpServers": {
    "sqlite": {
      "command": "node",
      "args": ["/path/to/sqlite-mcp-server/build/index.js", "/path/to/database.db"]
    }
  }
}

Streamable HTTP (remote clients)

node build/index.js --http

The server exposes a single endpoint at http://localhost:3000/mcp following the MCP Streamable HTTP specification. By default it binds to 127.0.0.1. To reach it from another host or a container, set HOST=0.0.0.0 — but read the Security section first: the HTTP transport has no authentication.

Docker

docker build -t sqlite-mcp-server .
docker run -d -p 3000:3000 -e HOST=0.0.0.0 --name sqlite-mcp sqlite-mcp-server

HOST=0.0.0.0 is required so the server is reachable through the published port. Connecting from the host via localhost:3000 works out of the box; to reach it under any other hostname, add that host to MCP_ALLOWED_HOSTS.

Configuration

| Option | Description | Default |
|--------|-------------|---------|
| --http | Use Streamable HTTP transport instead of stdio | stdio |
| First non-flag argument | Path to SQLite database file | :memory: |
| SQLITE_DB_PATH | Database path (env var alternative) | :memory: |
| PORT | HTTP server port (HTTP mode only) | 3000 |
| HOST | Interface to bind in HTTP mode. Use 0.0.0.0 to expose beyond localhost | 127.0.0.1 |
| MCP_ALLOWED_HOSTS | Comma-separated Host header allow-list for DNS-rebinding protection | localhost:$PORT,127.0.0.1:$PORT |
| MCP_AUTH_TOKEN | Bearer token required on all /mcp requests (HTTP mode). Unset = auth disabled | _(none)_ |

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.