rvarun11/sqlite-mcp
If you are the rightful owner of sqlite-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The SQLite MCP Server provides a standardized interface for SQLite database operations, enabling schema introspection, query execution, and database modifications.
SQLite MCP Server
A Model Context Protocol (MCP) server for SQLite database operations. This server provides a standardized interface for SQLite database interactions including schema inspection, read and write operations.
Available Tools
The MCP server exposes three main tools:
get_schema
- Description: List all tables in the SQLite database with their schema information
- Parameters: None
- Usage: Provides complete schema introspection including columns, types, constraints, and indexes
query
- Description: Execute read-only queries against the SQLite database.
- Parameters:
sql
(required): Read-only SQL query to execute -Usage: Only SELECT, WITH, and EXPLAIN queries are allowed
- Example:
SELECT * FROM users WHERE age > 25
execute
- Description: Execute write operations against the SQLite database
- Parameters:
sql
(required): SQL statement that modifies the database
- Usage: INSERT, UPDATE, DELETE, CREATE, ALTER, DROP operations
- Example:
INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')
Get Started
Prerequisites
- Go: SQLite MCP Server requires Go 1.24.4 or later. Download from go.dev/doc/install
- Task: Install go-task to run automated development tasks. Install using Homebrew with
brew install go-task
- SQLite3: For creating and managing SQLite databases locally
- golangci-lint: Go linter. Install using Homebrew with
brew install golangci-lint
or follow instructions at golangci-lint.run (optional) - Docker: To run the server with Docker (optional)
Installation
- Clone the repository:
git clone https://github.com/rvarun11/sqlite-mcp.git
cd sqlite-mcp
- Build:
# Builds the binary and the example database
task build
# Or if you prefer Docker:
task docker-build
MCP Client Configuration
After installation, add the following configuration to your MCP client:
Using built binary:
{
"mcpServers": {
"sqlite": {
"command": "/path/to/your/sqlite-mcp/build/sqlite-mcp",
"args": [
"--database",
"/path/to/your/database.db"
]
}
}
}
Args:
--database, -d
: Path to SQLite database file (required)--debug
: Enable debug mode for verbose logging (optional)
Using Docker:
{
"mcpServers": {
"sqlite": {
"command": "/path/to/your/.docker/bin/docker",
"args": [
"run",
"-i",
"--rm",
"sqlite-mcp-server"
]
}
}
}
The above uses example.sql
to build the example database. To use a custom schema sql, see the Docker commands below.
Important Note for GUI Applications: When configuring MCP clients in GUI applications (like Claude Desktop), you must use absolute paths for both the command and database file paths. Do not use:
- Tilde (
~
) for home directory shortcuts - Environment variables like
$HOME
or$PATH
- Relative paths like
./build/sqlite-mcp
- Command shortcuts that rely on PATH resolution (like just
docker
)
Development
To see a list of all available development tasks, run:
task --list
Available tasks include:
fmt
: Tidy modules and format codelint
: Rungoclangci-lint
static analysistest
: Run unit testscheck
: Runfmt
,lint
andtest
.build-example-db
: Create example db fromexample.sql
run-dev
: Run from source with example db, includes all checksbuild
: Build the binary with example db, including testsdocker-build
: Build Docker image
Run the Build
Binary
- After building the binary with
task build
ortask build-with-db
, run:
./build/sqlite-mcp --database ./build/example.db [--debug]
Docker
- After building the docker image with
task docker-build
, run the Docker container:
# Run with default example.sql database
docker run -i --rm sqlite-mcp-server
# Or run with custom schema.sql file
docker run -i --rm -v "/path/to/your/schema.sql:/data/schema.sql" sqlite-mcp-server