MCP Sqlite
ใช้ทำอะไรได้
ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ
- ต่อแบบ ติดตั้งในเครื่อง
- บัญชีหรือคีย์ ต้องมี DB_PATH, DB_PASSPHRASE
- หมวด ฐานข้อมูลและชุดข้อมูล
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
MCP server for SQLCipher 4 encrypted SQLite databases with full CRUD operations and query supportติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
สมัครและสร้างคีย์ของ MCP Sqlite
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง
เปิดไฟล์ตั้งค่าของแอป Claude บนคอม
SettingsDeveloperEdit Config
วางค่าตั้งนี้แล้วบันทึกไฟล์
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ปิดแอป Claude แล้วเปิดใหม่
ลองเลย
ใช้ MCP Sqlite บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ MCP Sqlite หรือมีชื่อเครื่องมือของ MCP Sqlite ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ MCP Sqlite ไม่ได้
MCP Sqlite ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ MCP Sqlite ได้
- ต้องมีคีย์ของ MCP Sqlite (สร้างที่เว็บของผู้ทำ) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
- ต้องมีคีย์ของ MCP Sqlite (สร้างที่เว็บของผู้ทำ) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องมีคีย์ของ MCP Sqlite (สร้างที่เว็บของผู้ทำ) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องมีคีย์ของ MCP Sqlite (สร้างที่เว็บของผู้ทำ) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
ข · ตัวอื่นในหมวด ฐานข้อมูลและชุดข้อมูล ที่ต่อกับ ChatGPT ได้
เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์
- Supabase✓ ChatGPT
- Appwrite MCP✓ ChatGPT
- Pg Aiguide✓ ChatGPT
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ MCP Sqlite (สร้างที่เว็บของผู้ทำ) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
สมัครและสร้างคีย์ของ MCP Sqlite
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง
เปิด Terminal
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
วางคำสั่งนี้แล้วกด Enter
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
แก้ “ใส่ค่าของคุณ” เป็นคีย์ของคุณก่อนกด Enter
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
พิมพ์ /mcp ใน Claude Code
ต้องเห็น MCP Sqlite ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ลองเลย
ใช้ MCP Sqlite บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ MCP Sqlite หรือมีชื่อเครื่องมือของ MCP Sqlite ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ MCP Sqlite (สร้างที่เว็บของผู้ทำ) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
สมัครและสร้างคีย์ของ MCP Sqlite
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง
กดปุ่มนี้เพื่อเปิด Cursor
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
ใส่คีย์ในช่องที่ว่างไว้
ในค่าตั้งของ MCP Sqlite ช่อง DB_PATH, DB_PASSPHRASE ยังว่าง ใส่คีย์ของคุณแล้วบันทึก
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
เปิดแชตของ AI ใน Cursor โหมด Agent
ลองเลย
ใช้ MCP Sqlite บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ MCP Sqlite หรือมีชื่อเครื่องมือของ MCP Sqlite ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ MCP Sqlite (สร้างที่เว็บของผู้ทำ) · ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
สมัครและสร้างคีย์ของ MCP Sqlite
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป ราคาและแผนฟรีดูที่เว็บของผู้ทำ
วิธีขอคีย์อยู่ใน README ของผู้ทำด้านล่าง
กดปุ่มนี้เพื่อเปิด VS Code
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
ใส่คีย์ในช่องที่ว่างไว้
ในค่าตั้งของ MCP Sqlite ช่อง DB_PATH, DB_PASSPHRASE ยังว่าง ใส่คีย์ของคุณแล้วบันทึก
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
เปิดแชตของ AI ใน VS Code โหมด Agent
ลองเลย
ใช้ MCP Sqlite บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ MCP Sqlite หรือมีชื่อเครื่องมือของ MCP Sqlite ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
โปรแกรมอื่นที่ใช้ MCP ได้ เช่น Windsurf, Zed หรือ Gemini CLI มีวิธีเพิ่มต่างกัน ดูวิธีของแต่ละตัวในหน้ารวมโปรแกรม
ค่าตั้งแบบไฟล์ JSON อยู่ในหัวข้อ “สำหรับคนเขียนโค้ด” ด้านล่าง
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON
ติดตั้งในเครื่อง
Claude Code
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
Claude Desktop (claude_desktop_config.json)
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
Cursor (~/.cursor/mcp.json)
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
VS Code (mcp.json)
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
ค่าที่ต้องใส่เอง
DB_PATHจำเป็น envPath to the encrypted SQLite database fileDB_PASSPHRASEความลับ จำเป็น envPassphrase for decrypting the database
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
สรุป
ใช้กับโปรแกรมไหนได้
ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
คู่มือที่เกี่ยวข้อง
ทำอะไรได้บ้าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 13 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันด้วยบัญชี GitHub rosch100 ซึ่งเป็นเจ้าของ repo
- ✓ ผ่าน
ยังมีคนดูแล
มีการแก้โค้ดล่าสุด 3 เดือนที่ผ่านมา
- ✓ ผ่าน
มีสัญญาอนุญาต (license)
ใช้ Apache-2.0
- – ไม่เกี่ยว
endpoint ตอบ
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
- – ไม่เกี่ยว
ล็อกอินแบบ OAuth
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
พูดคุย
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
รีวิวจากผู้ใช้
ยังไม่มีรีวิว
เทียบกับตัวอื่นในหมวด ฐานข้อมูลและชุดข้อมูลi
- ดาวมากกว่า 0% ของอีก 1186 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 1% ของอีก 1186 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1186 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
MCP Sqlite ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
ต้องใส่ค่าเหล่านี้: DB_PATH, DB_PASSPHRASE
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด 3 เดือนที่ผ่านมา และส่งรุ่นล่าสุด (0.2.4) เข้า registry 12 เดือนที่ผ่านมา
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
มีตัวไหนใช้แทนได้บ้าง?
ในหมวดเดียวกันมี Dbx, MCP Toolbox for Databases, MCP Toolbox for Databases
ตัวอื่นในหมวดเดียวกัน
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Encrypted SQLite MCP Server
MCP server for encrypted SQLite databases
A Model Context Protocol (MCP) server for working with encrypted SQLite databases using SQLCipher. This server provides tools to read database structures, query tables, and perform CRUD operations on encrypted SQLite databases.
Compatible with all MCP clients (Cursor, Claude Desktop, and others).
Works with encrypted databases from: MoneyMoney, 1Password, Signal, WhatsApp, Firefox, Telegram, KeePass, and other applications using SQLCipher encryption.
Features
- Encrypted SQLite Support: Works with SQLCipher 4 encrypted databases - the key differentiator of this MCP server
- Encrypted Passphrases: Support for AES-256-GCM encrypted passphrases with macOS Keychain integration
- Database Exploration: List tables, columns, indexes, and schema metadata
- Query Support: Execute arbitrary SQL queries (SELECT, INSERT, UPDATE, DELETE, DDL)
- CRUD Operations: Insert, update, and delete rows with filtering
- Configurable Cipher Profiles: Support for different SQLCipher configurations
- MCP Protocol: Full Model Context Protocol implementation via STDIO
- Security: SQL identifier validation to prevent SQL injection
- Debug Mode: Optional debug output via
MCP_DEBUGenvironment variable - Input Validation: Comprehensive validation for limits, offsets, and identifiers
Why Encrypted SQLite?
Many popular applications use encrypted SQLite databases (SQLCipher) to protect sensitive data. This MCP server is specifically designed to work with these encrypted databases.
Applications Using Encrypted SQLite Databases
- MoneyMoney (macOS): Financial management app with encrypted local databases
- 1Password: Password manager using SQLCipher for local vault storage
- Signal: Encrypted messaging app with SQLCipher-protected message databases
- WhatsApp: Messaging app using encrypted SQLite for local message storage
- Firefox: Browser using SQLCipher for encrypted login databases
- Telegram: Messaging app with encrypted local database storage
- KeePass: Password manager supporting encrypted SQLite database files
If you need to access data from any of these applications or other SQLCipher-encrypted databases, this MCP server provides the tools you need. Note that you need the passphrase of the encrypted database.
Requirements
- Java 21 or higher (JDK)
- Gradle (wrapper included)
- SQLite JDBC driver with encryption support (
sqlite-jdbc-3.50.1.0.jarfrom sqlite-jdbc-crypt)
Quick Start
Cursor (One-Click Installation)
The easiest way to install this MCP server in Cursor is via the Cursor MCP Store:
- Visit cursor.store/mcp/rosch100/mcp-encrypted-sqlite
- Click "Add to Cursor"
- Follow the prompts to configure your database path and passphrase
Other MCP Clients
This server works with any MCP-compatible client. See the Configuration section below for setup instructions.
Installation
Docker (Recommended)
Use the pre-built Docker image from GitHub Container Registry:
docker pull ghcr.io/rosch100/mcp-encrypted-sqlite:latest
Quick Start: See DOCKER_QUICKSTART.md for Docker Desktop setup.
Detailed Configuration: See DOCKER_CONFIGURATION.md for advanced options.
From Source
- Clone the repository:
git clone https://github.com/rosch100/mcp-encrypted-sqlite.git
cd mcp-encrypted-sqlite
- Build the project:
./gradlew build installDist
The build process will automatically download sqlite-jdbc-3.50.1.0.jar from sqlite-jdbc-crypt releases and place it in the libs/ directory.
The executable will be available at build/install/mcp-encrypted-sqlite/bin/mcp-encrypted-sqlite.
Configuration
This MCP server works with any MCP-compatible client (Cursor, Claude Desktop, etc.). The configuration format follows the Model Context Protocol specification.
The server communicates via STDIO (standard input/output). Add the following configuration to your MCP client's configuration file:
Configuration file locations:
- Cursor:
~/.cursor/mcp.json - Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.json - Other clients: Refer to your client's documentation
{
"mcpServers": { "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\"}" ] } } }
Optional Parameters:
- `transport`: Defaults to
"stdio"(can be omitted) - `cwd`: Not needed when using absolute paths (can be omitted)
- `immutable`: Optional boolean in the
--argsJSON. Whentrue, opens the DB with SQLite URIfile:…?immutable=1(no file locks). Use for peeking at DBs locked exclusively by another app (e.g. MoneyMoney). All write tools/SQL are disabled in this mode (insert_or_update/delete_rowsomitted;execute_sqlaccepts read-only statements only). - `env`: Only needed if Java is not in your system PATH or for custom Java installation:
{
"mcpServers": { "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": { "JAVA_HOME": "/path/to/java/home" } } } }
Docker Configuration
Plain 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\"}" ] } } }
Encrypted Passphrase (Recommended)
When using encrypted passphrases, you must pass the encryption key as an environment variable:
{
"mcpServers": { "encrypted-sqlite": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "MCP_SQLITE_ENCRYPTION_KEY=your-encryption-key", "-v", "/path/to/your/database.sqlite:/data/database.sqlite:ro", "ghcr.io/rosch100/mcp-encrypted-sqlite:latest", "--args", "{\"db_path\":\"/data/database.sqlite\",\"passphrase\":\"encrypted:your-encrypted-passphrase\"}" ] } } }
Important Notes:
- The
-eflag must come before the-vflag - macOS Keychain is NOT accessible from Docker containers - pass the encryption key explicitly
- Get your encryption key:
security find-generic-password -s "mcp-encrypted-sqlite" -a "encryption-key" -w - The database file is mounted as read-only (
:ro) by default. Remove:roif you need write access
Security Warning: Storing both the encryption key and encrypted passphrase as plain text in your configuration file is a security risk. See DOCKER_CONFIGURATION.md for secure alternatives.
Custom Cipher Profile
Override the default SQLCipher 4 settings by including a cipherProfile in the configuration JSON:
{
"mcpServers": { "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\",\"cipherProfile\":{\"name\":\"SQLCipher 4 defaults\",\"pageSize\":4096,\"kdfIterations\":256000,\"hmacAlgorithm\":\"HMAC_SHA512\",\"kdfAlgorithm\":\"PBKDF2_HMAC_SHA512\"}}" ] } } }
Note: All fields in cipherProfile are optional - only specify the ones you want to override from the defaults. You can also specify cipherProfile in individual tool calls, but it's recommended to configure it once in the MCP server configuration for consistency.
Encrypted Passphrases
For enhanced security, you can store passphrases in encrypted form. The server uses AES-256-GCM encryption, which provides authenticated encryption and is both secure and fast.
macOS Keychain (Recommended for macOS)
- Generate and store key in Keychain: Run:
./store-key-in-keychain.sh --generate
- Encrypt your passphrase: Run:
./encrypt-passphrase.sh "your-plain-passphrase"
The key is automatically loaded from the Keychain when no environment variable is set.
Benefits:
- Key is securely encrypted and stored by macOS
- No environment variables needed
- Automatic unlock with macOS user password
- Works system-wide for all applications
Environment Variable (Cross-Platform)
- Generate an encryption key: Run:
java -cp build/libs/mcp-encrypted-sqlite-VERSION.jar com.example.mcp.sqlite.config.PassphraseEncryption
- Set the encryption key: Run:
export MCP_SQLITE_ENCRYPTION_KEY=" "
- Encrypt your passphrase: Run:
java -cp build/libs/mcp-encrypted-sqlite-VERSION.jar com.example.mcp.sqlite.util.EncryptPassphrase "your-plain-passphrase"
Usage
Use the encrypted passphrase (with encrypted: prefix) in your configuration:
On macOS with Keychain (recommended):
{
"mcpServers": { "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\":\"encrypted: \"}" ] } } }
*Note: No `env` section needed - the key is automatically loaded from macOS Keychain.*
With environment variable (cross-platform):
{
"mcpServers": { "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\":\"encrypted: \"}" ], "env": { "MCP_SQLITE_ENCRYPTION_KEY": " " } } } }
Important Security Notes:
- The encryption key MUST be available (macOS Keychain or
MCP_SQLITE_ENCRYPTION_KEYenvironment variable) - The server automatically detects encrypted passphrases (starting with
encrypted:) and decrypts them - Use
PassphraseEncryption.generateKey()to generate strong keys (256 bits / 32 bytes) - AES-256-GCM provides authenticated encryption
- Weak keys are automatically rejected
Available Tools
list_tables
List all tables in the database. By default only table names, with include_columns=true also column details.
Parameters:
db_path(optional if configured): Path to the database filepassphrase(optional if configured): Database passphraseinclude_columns(optional, default: false): If true, column details are also returned
Example:
{
"name": "list_tables", "arguments": { "include_columns": true } }
get_table_data
Read data from a table with optional filtering, column selection, and pagination.
Parameters:
table(required): Table namecolumns(optional): Array of column names to selectfilters(optional): Object with column-value pairs for filteringlimit(optional, default: 200): Maximum number of rowsoffset(optional, default: 0): Offset for pagination
Example: `json