Encrypted SQLite

Provides an MCP server to manage and query SQLCipher-encrypted SQLite databases via STDIO for practical data access.
  • other

0

GitHub Stars

other

Language

4 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "rosch100-mcp-encrypted-sqlite": {
      "command": "/path/to/mcp-encrypted-sqlite/build/install/mcp-encrypted-sqlite/bin/mcp-encrypted-sqlite",
      "args": [
        "--args",
        "{\"db_path\":\"/path/to/your/database.sqlite\",\"passphrase\":\"your-passphrase\"}"
      ],
      "env": {
        "MCP_DEBUG": "true",
        "MCP_SQLITE_ENCRYPTION_KEY": "<your-encryption-key>"
      }
    }
  }
}

You can securely access and manipulate encrypted SQLite databases using this MCP server, which speaks the Model Context Protocol over STDIO and supports SQLCipher-encrypted databases from a variety of applications. It provides safe reading of schema, querying, and CRUD operations on encrypted files, enabling you to work with sensitive data while keeping encryption intact.

How to use

You will run this MCP server alongside your MCP client (for example Cursor or Claude Desktop). Start the server with a configured database path and passphrase, then issue standard MCP requests to list tables, read data, or modify rows. The server validates identifiers and restricts SQL to prevent injection, and you can enable debug output to diagnose issues.

How to install

Prerequisites you need before installation:

Option A: Install via Docker (recommended for quick start)

Pull and run the pre-built image with your database and passphrase.

{
  "mcpServers": {
    "encrypted-sqlite": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "/path/to/your/database.sqlite:/data/database.sqlite:ro",
        "ghcr.io/rosch100/mcp-encrypted-sqlite:latest",
        "--args",
        "{\"db_path\":\"/data/database.sqlite\",\"passphrase\":\"your-passphrase\"}"
      ]
    }
  }
}

Option B: Build from source (requires Git and a Java toolchain)

Clone the repository, build, and install the distribution. The executable will be placed under the install directory.

git clone https://github.com/rosch100/mcp-encrypted-sqlite.git
cd mcp-encrypted-sqlite
./gradlew build installDist

Configuration overview

The server runs as an MCP-compatible STDIO service. You configure it by providing a command and arguments through your MCP client configuration so the client can start the server as needed.

Notes on usage in different environments

If you are using Docker, you may need to supply an environment variable for the encryption key when using encrypted passphrases. If you run the server directly on your host, you can place the passphrase in the configuration file or pass it via the command line as shown in examples.

Available tools

list_tables

List all tables in the database. Optionally include column details by setting include_columns to true.

get_table_data

Read data from a table with optional column selection, filters, and pagination.

execute_sql

Execute arbitrary SQL statements. Use with caution as this runs raw SQL without parameterization.

insert_or_update

Upsert rows into a table, using specified primary keys to determine insert vs update.

delete_rows

Delete rows from a table based on provided filters.

get_table_schema

Retrieve detailed schema information for a table, including columns, indexes, and constraints.

list_indexes

List all indexes defined on a table.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational