MCP Hub
Back to servers

sqlite-mcp

A comprehensive Model Context Protocol server for SQLite databases, providing deep schema introspection, granular permission controls, and advanced data management tools for AI models.

Tools
27
Updated
Dec 20, 2025
Validated
Jan 11, 2026

SQLite MCP Server

A comprehensive Model Context Protocol (MCP) server implementation for SQLite databases, providing secure and controlled access to SQLite operations through a standardized interface.

npm version License: MIT

📋 Table of Contents

⚡ Quick Start

Get up and running in 30 seconds:

# Run directly with npx (no installation required)
npx @berthojoris/mcp-sqlite-server sqlite:////path/to/database.sqlite list,read,create,update,delete

Or add to your MCP client configuration:

{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@berthojoris/mcp-sqlite-server", "sqlite:////path/to/db.sqlite", "list,read,create,update,delete"]
    }
  }
}

🚀 Features

Core Functionality

  • MCP Protocol Compliance: Full implementation of the Model Context Protocol for seamless integration with MCP clients
  • SQLite Integration: Native SQLite support using better-sqlite3 for optimal performance
  • Granular Permissions: Fine-grained permission system with 10 distinct permission types
  • Security First: Comprehensive SQL injection protection and query validation
  • Schema Introspection: Complete database schema analysis and reporting
  • Connection Pooling: Efficient database connection management
  • Audit Logging: Detailed operation logging for security and compliance

Permission System

The server implements a granular permission system with the following types:

  • list - List tables and schemas
  • read - SELECT queries and data retrieval
  • create - INSERT operations
  • update - UPDATE operations
  • delete - DELETE operations
  • execute - Execute stored procedures/functions
  • ddl - Data Definition Language (CREATE, ALTER, DROP)
  • procedure - Stored procedures (N/A for SQLite - reserved for compatibility)
  • transaction - Transaction control (BEGIN, COMMIT, ROLLBACK)
  • utility - Utility operations (VACUUM, ANALYZE, PRAGMA, etc.)

Security Features

  • SQL Injection Prevention: Parameterized queries and pattern detection
  • Query Validation: Comprehensive query analysis and sanitization
  • Permission Enforcement: Operation-level permission checking
  • Rate Limiting: Configurable request rate limiting
  • Audit Trail: Complete operation logging with client tracking
  • Input Sanitization: Parameter validation and sanitization

Auto-Creation Features

  • Database Auto-Creation: Automatically creates database files if they don't exist
  • Directory Auto-Creation: Creates parent directories recursively as needed
  • Intelligent Initialization: Detects new vs existing databases and logs appropriately
  • Zero-Configuration Setup: Works out-of-the-box with any valid SQLite path

📦 Installation

NPX Usage (Recommended)

npx @berthojoris/mcp-sqlite-server sqlite:////path/to/your/database.sqlite list,read,utility

Global Installation

npm install -g @berthojoris/mcp-sqlite-server
mcp-sqlite-server sqlite:////path/to/your/database.sqlite list,read,create,update

Local Installation

npm install @berthojoris/mcp-sqlite-server

🔗 Integration Guide

Standard MCP Configuration

Add this configuration to your MCP client's config file:

{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": [
        "-y",
        "@berthojoris/mcp-sqlite-server",
        "sqlite:////path/to/database.sqlite",
        "list,read,create,update,delete,utility"
      ]
    }
  }
}

Arguments Explained:

#ArgumentDescription
1-yAuto-confirm npx installation
2@berthojoris/mcp-sqlite-serverPackage name
3sqlite:////path/to/database.sqliteDatabase connection string
4list,read,create,update,delete,utilityComma-separated permissions

Config File Locations by Client

ClientConfig File Location
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.json
Claude Desktop (Linux)~/.config/Claude/claude_desktop_config.json
Cursor IDE (macOS/Linux)~/.cursor/mcp.json
Cursor IDE (Windows)%USERPROFILE%\.cursor\mcp.json
Windsurf IDE~/.windsurf/mcp.json
Cline (VS Code)VS Code settings.json under cline.mcpServers

Platform-Specific Path Examples

# macOS/Linux
"sqlite:////Users/yourname/databases/app.sqlite"
"sqlite:////home/user/projects/data.sqlite"

# Windows
"sqlite:///C:/Users/yourname/databases/app.sqlite"

# Relative path (from working directory)
"sqlite://./data/app.sqlite"

# In-memory database
"sqlite://:memory:"

Multiple Databases

{
  "mcpServers": {
    "main-db": {
      "command": "npx",
      "args": ["-y", "@berthojoris/mcp-sqlite-server", "sqlite:////path/to/main.sqlite", "list,read,create,update,delete"]
    },
    "analytics-db": {
      "command": "npx",
      "args": ["-y", "@berthojoris/mcp-sqlite-server", "sqlite:////path/to/analytics.sqlite", "list,read"]
    }
  }
}

🔧 Configuration

Connection String Formats

The server supports multiple SQLite connection string formats:

# Absolute path
sqlite:////absolute/path/to/database.sqlite

# Relative path  
sqlite://./relative/path/to/database.sqlite

# In-memory database
sqlite://:memory:

# Direct file path
/path/to/database.sqlite

Permission Combinations

Detailed Permission Descriptions

PermissionDescriptionAllowed OperationsExample Use Cases
listView database structure and metadata • List all tables
• View table schemas
• Check column information
• View indexes and constraints
• Access database metadata
• Database exploration
• Schema documentation
• Development planning
• Data modeling
readExecute SELECT queries and retrieve data • SELECT statements
• JOIN operations
• Aggregate functions (COUNT, SUM, etc.)
• Subqueries
• View data content
• Data analysis
• Reporting
• Business intelligence
• Read-only applications
createInsert new records into tables • INSERT statements
• Bulk insert operations
• Add new rows
• Populate tables with data
• Data entry applications
• ETL processes
• User registration
• Content creation
updateModify existing records • UPDATE statements
• Bulk update operations
• Modify existing data
• Change field values
• Profile updates
• Status changes
• Data corrections
• Content editing
deleteRemove records from tables • DELETE statements
• Bulk delete operations
• Remove rows
• Data cleanup
• User account deletion
• Data archiving
• Content removal
• Cleanup operations
executeRun stored procedures and functions • Execute stored procedures
• Call database functions
• Run custom database logic
• Execute complex operations
• Business logic execution
• Complex calculations
• Batch processing
• Custom workflows
ddlModify database structure • CREATE TABLE/INDEX
• ALTER TABLE structure
• DROP tables/indexes
• Modify schema
• Create/drop views
• Database migrations
• Schema updates
• Development setup
• Structure modifications
transactionControl transaction boundaries • BEGIN transactions
• COMMIT changes
• ROLLBACK operations
• Manage data consistency
• Atomic operations
• Financial operations
• Data integrity
• Batch processing
• Critical updates
utilityPerform maintenance and optimization • VACUUM database
• ANALYZE statistics
• PRAGMA commands
• Database backup
• Performance optimization
• Database maintenance
• Performance tuning
• Backup operations
• System administration

Common permission combinations for different use cases:

# Read-only access
list,read

# Basic CRUD operations
list,read,create,update,delete

# Full database access
list,read,create,update,delete,execute,ddl,transaction,utility

# Analytics/reporting
list,read,utility

# Development/testing
list,read,create,update,delete,ddl,transaction,utility

🔌 Available Tools

The MCP server provides 28 powerful tools for comprehensive SQLite database management:

Tools Summary

#ToolDescriptionPermission
1sqlite_queryExecute SELECT queries with parameterized supportread
2sqlite_insertInsert single records into tablescreate
3sqlite_updateUpdate existing recordsupdate
4sqlite_deleteDelete records from tablesdelete
5sqlite_schemaGet comprehensive schema informationlist
6sqlite_tablesList all tables in databaselist
7sqlite_relationsAnalyze table relationships and foreign keyslist
8sqlite_transactionExecute multiple queries atomicallytransaction
9sqlite_backupCreate database backuputility
10sqlite_bulk_insertBulk insert with relational supportcreate
11sqlite_bulk_updateBulk update with progress trackingupdate
12sqlite_bulk_deleteBulk delete with cascade supportdelete
13sqlite_ddlSchema management (CREATE/ALTER/DROP)ddl
14sqlite_viewsCreate and manage database viewsddl
15sqlite_indexesIndex management and optimizationlist, ddl
16sqlite_constraintsView constraints and foreign keyslist
17sqlite_migrateData migration between tablesread, create, update
18sqlite_backup_restoreBackup tables and restore from SQLutility, read, ddl
19sqlite_column_statisticsColumn statistics and data profilingread
20sqlite_database_summaryDatabase summary and metadataread
21sqlite_schema_erdEntity relationship diagram dataread
22sqlite_schema_rag_contextRAG context for AI modelsread
23sqlite_analyze_queryQuery analysis and execution plansread
24sqlite_optimization_hintsQuery optimization suggestionsread
25sqlite_database_health_checkDatabase health and integrity checksread
26sqlite_unused_indexesFind unused or redundant indexesread
27sqlite_connection_pool_statsConnection pool statisticsread

Tool Categories

Data Query & Retrieval:

  • sqlite_query - Run SELECT statements
  • sqlite_schema - Inspect database structure
  • sqlite_tables - List available tables
  • sqlite_relations - Analyze table relationships and foreign keys

Data Manipulation (CRUD):

  • sqlite_insert - Create new records
  • sqlite_update - Modify existing records
  • sqlite_delete - Remove records

Bulk Operations:

  • sqlite_bulk_insert - Insert many records efficiently
  • sqlite_bulk_update - Update many records at once
  • sqlite_bulk_delete - Delete many records with cascade support

Schema Management:

  • sqlite_ddl - CREATE/ALTER/DROP tables and indexes
  • sqlite_views - Create, drop, and manage database views
  • sqlite_indexes - Index management and optimization

Constraints & Relationships:

  • sqlite_constraints - View and analyze constraints and foreign keys

Data Migration:

  • sqlite_migrate - Clone tables, compare structures, and copy data

Database Operations:

  • sqlite_transaction - Atomic multi-query execution
  • sqlite_backup - Database backup utility
  • sqlite_backup_restore - Backup tables and restore from SQL files

📖 Full Documentation: See DOCUMENTATIONS.md for detailed parameters, examples, and response formats for each tool.

🔒 Security Guidelines

Best Practices

  1. Principle of Least Privilege: Only grant necessary permissions
  2. Use Parameterized Queries: Always use parameters for dynamic values
  3. Regular Backups: Implement automated backup strategies
  4. Monitor Audit Logs: Review operation logs regularly
  5. Connection Limits: Set appropriate connection pool limits
  6. Read-Only When Possible: Use read-only mode for reporting/analytics

Security Features

  • SQL Injection Protection: Automatic detection of dangerous patterns
  • Query Validation: Comprehensive query analysis before execution
  • Permission Enforcement: Operation-level access control
  • Rate Limiting: Configurable request throttling
  • Audit Logging: Complete operation tracking
  • Input Sanitization: Parameter validation and cleaning

Dangerous Operations

The server automatically blocks or restricts:

  • Multiple statement execution
  • Dangerous SQL patterns (UNION-based injections, etc.)
  • Unauthorized schema modifications
  • Excessive query complexity
  • Operations without proper permissions

📄 License

MIT License - see LICENSE file for details.

🆘 Support

For issues, questions, or contributions:

Note: This server is designed for secure, controlled access to SQLite databases through the Model Context Protocol. Always follow security best practices and regularly review audit logs in production environments.


Last Updated: 2025-12-20 20:00:00

Reviews

No reviews yet

Sign in to write a review