mcp-sqlite-tools-plus
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | Verbose diagnostic logging to stderr. | false |
| SQLITE_BACKUP_PATH | No | Default destination for backup_database. | ./backups |
| SQLITE_BUSY_TIMEOUT | No | SQLite busy (lock) timeout in ms. Valid range 1000–300000. | 30000 |
| SQLITE_DEFAULT_PATH | No | Base directory for databases. Relative DB paths resolve here. | current working dir |
| SQLITE_MAX_QUERY_TIME | No | Deprecated alias of SQLITE_BUSY_TIMEOUT. Not a query-runtime limit. | = busy timeout |
| SQLITE_ALLOW_ABSOLUTE_PATHS | No | If true, the agent can open/write databases anywhere on disk. Set to false to confine activity to SQLITE_DEFAULT_PATH. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| open_databaseB | ✓ SAFE: Open an existing database file. Sets as current context. Returns database info. Errors if file does not exist — use create_database to make a new one. |
| create_databaseB | ⚠️ CREATES FILE: Create a new empty SQLite database at the given path. Errors if file already exists. Use open_database for existing databases. |
| close_databaseC | ✓ SAFE: Close database connection and free resources. Doesn't affect file. |
| list_databasesB | ✓ SAFE: List .db/.sqlite/.sqlite3 files in directory. Returns paths, sizes, dates. Max 100 results. |
| database_infoC | ✓ SAFE: Get database info (size, table/index counts, statistics). Metadata only, no data. |
| list_tablesC | ✓ SAFE: List tables/views with types and row counts. Supports pagination (max 1000). Use verbosity="summary" for names only. |
| describe_tableC | ✓ SAFE: Get table schema (columns, types, constraints, indexes, keys, defaults, nullability). |
| create_tableB | ⚠️ SCHEMA CHANGE: Create table with columns and constraints. Supports primary keys, defaults, NOT NULL. Fails if exists. |
| drop_tableC | ⚠️ DESTRUCTIVE: Permanently delete table and all data. Cannot be undone. Removes structure, rows, indexes, triggers. |
| backup_databaseB | ✓ SAFE: Create consistent SQLite backup via online backup API. Includes committed WAL data. Auto-timestamps if no path specified. |
| vacuum_databaseC | ✓ MAINTENANCE: Optimize storage by reclaiming space and defragmenting. Requires free space equal to database size. |
| execute_read_queryB | ✓ SAFE: Execute read-only SQL (SELECT, PRAGMA, EXPLAIN). Supports parameterized queries. Default limit 10,000 rows. Use verbosity="summary" for counts only. |
| execute_write_queryC | ⚠️ DESTRUCTIVE: Execute data modification SQL (INSERT, UPDATE, DELETE). Supports parameterized queries. Returns affected row count. |
| execute_schema_queryC | ⚠️ SCHEMA CHANGE: Execute DDL (CREATE, ALTER, DROP). Modifies database structure. May lock tables. |
| bulk_insertC | ⚠️ DESTRUCTIVE: Insert multiple records in batches. Default batch size 1000. All records must have identical columns. |
| import_csvC | ⚠️ DESTRUCTIVE/SCHEMA CHANGE: Import a headered CSV file into SQLite. Creates the table from headers when missing, coerces values by default, and reports row-level errors. |
| export_csvC | ⚠️ FILE WRITE: Export a table or read-only SELECT/PRAGMA/EXPLAIN query to a CSV file. Can write absolute paths. Provide exactly one of table or query. |
| import_jsonC | ⚠️ DESTRUCTIVE/SCHEMA CHANGE: Import a JSON file (array of objects) into SQLite. Creates the table from object keys when missing and reports row-level errors. |
| export_jsonC | ⚠️ FILE WRITE: Export a table or read-only SELECT/PRAGMA/EXPLAIN query to a JSON file (array of objects). Can write absolute paths. Provide exactly one of table or query. |
| import_xlsxD | ⚠️ DESTRUCTIVE/SCHEMA CHANGE: Import the first sheet of an XLSX file (first row = headers) into SQLite. Creates the table from headers when missing and reports row-level errors. |
| export_xlsxC | ⚠️ FILE WRITE: Export a table or read-only SELECT/PRAGMA/EXPLAIN query to an XLSX file (one sheet, first row = headers). Can write absolute paths. Provide exactly one of table or query. |
| begin_transactionC | ⚠️ TRANSACTION: Begin transaction for atomic operations. Groups queries into single unit. Holds locks until commit/rollback. |
| commit_transactionC | ✓ TRANSACTION: Commit transaction, making changes permanent. Releases locks. |
| rollback_transactionC | ⚠️ TRANSACTION: Rollback transaction, discarding all changes. Returns database to previous state. |
| export_schemaC | ✓ SAFE: Export schema as SQL or JSON. Includes tables, indexes, views, triggers. SQL for recreation, JSON for analysis. |
| import_schemaC | ⚠️ SCHEMA CHANGE: Import schema from SQL or JSON. Creates tables, indexes, views, triggers. Fails if objects exist without IF NOT EXISTS. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Each tool has a clear, distinct purpose with safety labels. Overlapping export/import tools handle different formats, and transaction tools are separate. No ambiguity.
All tools follow a consistent verb_noun snake_case pattern (e.g., execute_read_query, import_csv). No mixing of conventions.
26 tools is slightly above the typical well-scoped range, but each tool contributes to a comprehensive SQLite toolkit covering backup, DDL, DML, transactions, import/export, and maintenance.
Covers most essential operations: CRUD, schema, transactions, import/export, database management. Missing explicit index/view creation tools, but execute_schema_query covers that.