Expand description
SQLite database management tools
This module provides a comprehensive set of tools for managing SQLite databases through an AI agent. Tools are separated into read-only (safe) and write/modify (destructive) categories for granular permission control.
§Quick Start
Use the helper functions to add tool groups to your agent:
ⓘ
use mixtape_core::Agent;
use mixtape_tools::sqlite;
// Read-only agent - can explore but not modify databases
let agent = Agent::builder()
.bedrock(ClaudeSonnet4)
.add_tools(sqlite::read_only_tools())
.build()
.await?;
// Full access agent - can read, write, and manage schemas
let agent = Agent::builder()
.bedrock(ClaudeSonnet4)
.add_tools(sqlite::all_tools())
.build()
.await?;§Tool Groups
| Function | Tools | Use Case |
|---|---|---|
read_only_tools() | 9 tools | Database exploration, querying, backups |
mutative_tools() | 4 tools | Data modifications |
transaction_tools() | 3 tools | Transaction management |
migration_tools() | 7 tools | Schema evolution via stored migrations |
all_tools() | 23 tools | Full database management |
§Common Patterns
§Read-Only Database Explorer
For agents that should only query and explore databases without modifying them:
ⓘ
use mixtape_tools::sqlite;
let agent = Agent::builder()
.add_tools(sqlite::read_only_tools())
.build()
.await?;This includes: open/close/list databases, list/describe tables, SELECT queries, schema export, and backups.
§Data Entry Agent
For agents that need to insert/update data but not modify schema:
ⓘ
use mixtape_tools::sqlite::{self, *};
let agent = Agent::builder()
.add_tools(sqlite::read_only_tools())
.add_tool(WriteQueryTool) // INSERT/UPDATE/DELETE
.add_tool(BulkInsertTool) // Batch inserts
.add_tools(sqlite::transaction_tools())
.build()
.await?;§Schema Migration Agent
For agents that manage database schemas via migrations:
ⓘ
use mixtape_tools::sqlite;
let agent = Agent::builder()
.add_tools(sqlite::read_only_tools())
.add_tools(sqlite::migration_tools())
.build()
.await?;§Tool Categories
§Database Management (Safe)
sqlite_open_database- Open or create a databasesqlite_close_database- Close a database connectionsqlite_list_databases- Discover database files in a directorysqlite_database_info- Get database metadata and statistics
§Table Operations
sqlite_list_tables- List all tables and views (Safe)sqlite_describe_table- Get table schema details (Safe)
§Query Operations
sqlite_read_query- Execute SELECT/PRAGMA/EXPLAIN queries (Safe)sqlite_write_query- Execute INSERT/UPDATE/DELETE queries (Destructive)sqlite_schema_query- Execute DDL statements (Destructive)sqlite_bulk_insert- Batch insert records (Destructive)
§Transaction Management (Configurable)
sqlite_begin_transaction- Start a transactionsqlite_commit_transaction- Commit a transactionsqlite_rollback_transaction- Rollback a transaction
§Maintenance Operations
sqlite_export_schema- Export schema as SQL or JSON (Safe)sqlite_backup- Create a database backup (Safe)sqlite_vacuum- Optimize database storage (Destructive)
§Migration Operations
sqlite_add_migration- Store a new pending migration (Destructive)sqlite_run_migrations- Apply pending migrations in order (Destructive)sqlite_list_migrations- List migrations with status filter (Safe)sqlite_get_migration- Get migration details by version (Safe)sqlite_remove_migration- Remove a pending migration (Destructive)sqlite_export_migrations- Export migrations for transfer (Safe)sqlite_import_migrations- Import migrations as pending (Destructive)
Re-exports§
pub use database::CloseDatabaseTool;pub use database::DatabaseInfoTool;pub use database::ListDatabasesTool;pub use database::OpenDatabaseTool;pub use error::SqliteToolError;pub use maintenance::BackupDatabaseTool;pub use maintenance::ExportSchemaTool;pub use maintenance::VacuumDatabaseTool;pub use manager::with_connection;pub use manager::DATABASE_MANAGER;pub use migration::AddMigrationTool;pub use migration::ExportMigrationsTool;pub use migration::GetMigrationTool;pub use migration::ImportMigrationsTool;pub use migration::ListMigrationsTool;pub use migration::RemoveMigrationTool;pub use migration::RunMigrationsTool;pub use query::BulkInsertTool;pub use query::ReadQueryTool;pub use query::SchemaQueryTool;pub use query::WriteQueryTool;pub use table::DescribeTableTool;pub use table::ListTablesTool;pub use transaction::BeginTransactionTool;pub use transaction::CommitTransactionTool;pub use transaction::RollbackTransactionTool;pub use types::*;
Modules§
- database
- Database management tools
- error
- SQLite-specific error types
- maintenance
- Schema and maintenance tools
- manager
- Database connection manager for SQLite tools
- migration
- Schema migration tools for SQLite databases
- query
- Query operation tools
- table
- Table operation tools
- transaction
- Transaction management tools
- types
- Shared types for SQLite tools
Functions§
- all_
tools - Returns all SQLite tools
- migration_
tools - Returns all migration management SQLite tools
- mutative_
tools - Returns all mutative (write/modify) SQLite tools
- read_
only_ tools - Returns all read-only SQLite tools
- transaction_
tools - Returns all transaction management SQLite tools