Provides comprehensive SQLite database access with granular permissions, enabling secure query execution, schema introspection, transaction management, and database operations through a controlled interface with SQL injection protection and audit logging.
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.
🚀 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-sqlite3for optimal performanceGranular Permissions: Fine-grained permission system with 9 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 schemasread- SELECT queries and data retrievalcreate- INSERT operationsupdate- UPDATE operationsdelete- DELETE operationsexecute- Execute stored procedures/functionsddl- Data Definition Language (CREATE, ALTER, DROP)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)
Global Installation
Local Installation
🔧 Configuration
MCP Client Configuration
Add to your MCP client configuration:
Connection String Formats
The server supports multiple SQLite connection string formats:
Permission Combinations
Detailed Permission Descriptions
Common permission combinations for different use cases:
🛠️ CLI Usage
Start MCP Server
Schema Information
Database Backup
Generate Configuration
🔌 Available Tools
The MCP server provides the following tools:
sqlite_query
Execute SELECT queries with full result sets.
Parameters:
query(string): SQL SELECT statementparameters(array, optional): Query parameters for prepared statements
Required Permissions: read
Example:
sqlite_insert
Insert new records into tables.
Parameters:
query(string): SQL INSERT statementparameters(array, optional): Values to insert
Required Permissions: create
Example:
sqlite_update
Update existing records.
Parameters:
query(string): SQL UPDATE statementparameters(array, optional): Update values
Required Permissions: update
Example:
sqlite_delete
Delete records from tables.
Parameters:
query(string): SQL DELETE statementparameters(array, optional): Condition parameters
Required Permissions: delete
Example:
sqlite_schema
Get comprehensive database schema information.
Parameters:
table(string, optional): Specific table name
Required Permissions: list
Returns: Complete schema information including tables, columns, indexes, views, triggers, and foreign keys.
sqlite_tables
List all tables in the database.
Required Permissions: list
Returns: Array of table names with basic metadata.
sqlite_transaction
Execute multiple queries within a transaction.
Parameters:
queries(array): Array of query objects withqueryand optionalparameters
Required Permissions: transaction + permissions for individual operations
Example:
sqlite_backup
Create a backup of the database.
Parameters:
backupPath(string): Path for the backup file
Required Permissions: utility
sqlite_bulk_insert
Perform bulk insert operations with relational data support and progress tracking.
Parameters:
mainTable(string): Main table name to insert intorecords(array): Array of records to insertrelatedData(object, optional): Related table data with foreign key mappingsoptions(object, optional): Bulk insert optionsbatchSize(number): Batch size for processing (default: 1000)continueOnError(boolean): Continue processing on errors (default: false)validateForeignKeys(boolean): Validate foreign key constraints (default: true)insertRelatedData(boolean): Insert related table data first (default: true)
Required Permissions: create
Example:
sqlite_bulk_update
Perform bulk update operations with progress tracking.
Parameters:
table(string): Table name to updateupdates(array): Array of update operations withdataandwhereconditionsoptions(object, optional): Bulk update optionsbatchSize(number): Batch size for processing (default: 1000)continueOnError(boolean): Continue processing on errors (default: false)validateForeignKeys(boolean): Validate foreign key constraints (default: true)
Required Permissions: update
Example:
sqlite_bulk_delete
Perform bulk delete operations with cascading support and progress tracking.
Parameters:
table(string): Table name to delete fromconditions(array): Array of WHERE conditions for deletionoptions(object, optional): Bulk delete optionsbatchSize(number): Batch size for processing (default: 1000)continueOnError(boolean): Continue processing on errors (default: false)cascadeDelete(boolean): Enable cascade delete for related records (default: true)
Required Permissions: delete
Example:
🔒 Security Guidelines
Best Practices
Principle of Least Privilege: Only grant necessary permissions
Use Parameterized Queries: Always use parameters for dynamic values
Regular Backups: Implement automated backup strategies
Monitor Audit Logs: Review operation logs regularly
Connection Limits: Set appropriate connection pool limits
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
🗺️ Roadmap
✅ Version 1.0.0 - Core Foundation (Completed)
✅ MCP Protocol Implementation: Full Model Context Protocol compliance
✅ SQLite Integration: Native SQLite support with better-sqlite3
✅ Permission System: Granular 9-tier permission system
✅ Security Features: SQL injection protection and query validation
✅ CLI Interface: Command-line interface with comprehensive options
✅ Connection Pooling: Efficient database connection management
✅ Audit Logging: Detailed operation logging for compliance
✅ Bulk Operations: Enhanced bulk insert/update/delete with progress tracking
✅ Version 1.0.1 - Auto-Creation & Documentation (Completed)
✅ Database Auto-Creation: Automatic database file creation
✅ Directory Auto-Creation: Recursive parent directory creation
✅ Enhanced Logging: Improved initialization and status logging
✅ Roadmap Documentation: Comprehensive development roadmap
✅ Cross-Platform Path Handling: Windows and Unix path resolution
🚧 Version 1.1.0 - Enhanced Query & Performance (Q1 2025)
Advanced Query Builder: Visual query builder with drag-and-drop interface
Query Optimization: Automatic query analysis and optimization suggestions
Performance Metrics: Real-time query performance monitoring and analytics
Connection Health Monitoring: Advanced connection pool health checks
Memory Usage Optimization: Improved memory management for large datasets
📋 Version 1.2.0 - Data Management & Migration (Q2 2025)
Database Migration Tools: Schema versioning and migration management
Data Import/Export: Support for CSV, JSON, XML data import/export
Data Validation: Custom validation rules and constraints
Backup Scheduling: Automated backup scheduling with retention policies
🔒 Version 1.3.0 - Advanced Security & Compliance (Q2 2025)
Role-Based Access Control (RBAC): Advanced user roles and permissions
Data Encryption: At-rest and in-transit data encryption
Compliance Reporting: GDPR, HIPAA, SOX compliance reporting tools
Advanced Audit Logging: Enhanced audit trails with data lineage tracking
Security Scanning: Automated security vulnerability scanning
🔌 Version 1.4.0 - Integration & Extensibility (Q3 2025)
Plugin System: Extensible plugin architecture for custom functionality
REST API Gateway: RESTful API layer for non-MCP clients
GraphQL Support: GraphQL query interface for flexible data access
Webhook Integration: Event-driven webhooks for database changes
Third-party Integrations: Slack, Discord, Teams notifications
🤝 Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Ensure all tests pass
Submit a pull request
📄 License
MIT License - see LICENSE file for details.
🆘 Support
For issues, questions, or contributions:
GitHub Issues: Repository Issues
Documentation: Full Documentation
🔄 Version History
v1.1.1
Bulk Operations: Advanced bulk insert, update, and delete operations with progress tracking
Relational Data Support: Bulk insert with foreign key mappings and related table data
Progress Tracking: Real-time progress monitoring for bulk operations with error handling
Performance Optimization: Batch processing with configurable batch sizes for large datasets
Enhanced Error Handling: Improved error reporting and continue-on-error options for bulk operations
v1.0.1
Auto-Creation Features: Database and directory auto-creation functionality
Enhanced Logging: Improved initialization logging with database status
Roadmap Documentation: Comprehensive roadmap for future development
Bug Fixes: Minor improvements and stability enhancements
v1.0.0
Initial release
Full MCP protocol implementation
Comprehensive permission system
Security features and audit logging
CLI interface and schema introspection
Connection pooling and performance optimization
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.