SQLite MCP Server
A Model Context Protocol server that enables AI assistants to interact with SQLite databases by connecting to database files, listing tables, describing schemas, and executing queries.
README Documentation
SQLite MCP Server
A Model Context Protocol (MCP) server that provides tools for querying SQLite databases. This server allows AI assistants to interact with SQLite databases by listing tables, describing schemas, and executing queries.
Features
- Connect to SQLite databases: Connect to any SQLite database file
- List tables: Get all table names in the database
- Describe table schemas: View column definitions, types, and constraints
- Query data: Execute SELECT queries with automatic result formatting
- Execute queries: Run INSERT, UPDATE, DELETE and other SQL operations
- Get comprehensive table info: View schema, indexes, row counts, and sample data
Installation
npm install
npm run build
Usage
As an MCP Server
Add to your MCP client configuration:
{
"mcpServers": {
"sqlite": {
"command": "node",
"args": ["path/to/dist/index.js"],
"env": {}
}
}
}
Available Tools
-
connect_database - Connect to a SQLite database file
path
: Path to the SQLite database filereadonly
: Optional boolean to open in read-only mode
-
list_tables - List all tables in the connected database
-
describe_table - Get the schema/structure of a specific table
table_name
: Name of the table to describe
-
query_data - Execute a SELECT query on the database
query
: SQL SELECT query to executelimit
: Optional maximum number of rows to return (default: 100)
-
execute_query - Execute any SQL query (INSERT, UPDATE, DELETE, etc.)
query
: SQL query to execute
-
get_table_info - Get comprehensive information about a table
table_name
: Name of the table to analyzesample_rows
: Optional number of sample rows to return (default: 5)
Example Usage
-
First connect to a database:
Tool: connect_database Args: {"path": "./sample.db"}
-
List all tables:
Tool: list_tables
-
Get detailed information about a table:
Tool: get_table_info Args: {"table_name": "users", "sample_rows": 3}
-
Query data:
Tool: query_data Args: {"query": "SELECT * FROM users WHERE active = 1", "limit": 10}
Development
# Build TypeScript
npm run build
# Watch for changes during development
npm run dev
# Start the server
npm start
Requirements
- Node.js 18 or higher
- SQLite database files
Security Notes
- The server can execute any SQL query, so ensure proper access controls
- Consider using read-only mode for sensitive databases
- SQL injection protection is the responsibility of the query author