SQLite
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
Jump to
- 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:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
SQLiteCommand (node, npx, python, etc.)nodeArguments-
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.
-
Argument 1
- 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
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)_ |
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





