Skip to main content
Glama
spences10

mcp-sqlite-tools

by spences10

mcp-sqlite-tools

A Model Context Protocol (MCP) server for safe, local SQLite database operations. It gives MCP clients explicit read, write, schema, transaction, CSV, backup, and maintenance tools.

Features

  • Open, create, inspect, back up, vacuum, and close SQLite databases

  • List, describe, create, and drop tables

  • Run paginated read queries with named or positional parameters

  • Run explicit write and schema queries

  • Import and export headered CSV files

  • Use transactions with nested savepoints

  • Export and import schemas as SQL or JSON

  • Restrict database and CSV paths through configuration

  • Classify destructive tools for client approval policies

  • Use Node's built-in SQLite driver with no native addon dependency

Related MCP server: SQLite MCP Server

Requirements

  • Node.js 24.12 or later

  • An MCP client with stdio server support

Configure your MCP client

The MCP client starts this server through npx; a global installation is not required.

Install with MCPick

MCPick can add the server to a supported client without manual JSON editing. This command targets Claude Code's local scope by default:

npx -y mcpick add \
  --name sqlite-tools \
  --command npx \
  --args "-y,mcp-sqlite-tools"

Select a client and scope explicitly when needed:

npx -y mcpick add \
  --name sqlite-tools \
  --command npx \
  --args "-y,mcp-sqlite-tools" \
  --client vscode \
  --scope project

The add command supports Claude Code, Gemini CLI, VS Code, Cursor, Windsurf, OpenCode, and Pi. Run npx mcpick clients to see current client capabilities, scopes, and configuration locations.

The examples track the latest package release. For reproducible configuration, replace mcp-sqlite-tools in --args with an exact version such as mcp-sqlite-tools@x.y.z.

Manual configuration

For unsupported clients or advanced configuration, add the server manually:

{
	"mcpServers": {
		"mcp-sqlite-tools": {
			"command": "npx",
			"args": ["-y", "mcp-sqlite-tools"],
			"env": {
				"SQLITE_DEFAULT_PATH": ".",
				"SQLITE_ALLOW_ABSOLUTE_PATHS": "true",
				"SQLITE_BUSY_TIMEOUT": "30000",
				"SQLITE_BACKUP_PATH": "./backups"
			}
		}
	}
}

VS Code uses a servers object instead of mcpServers. See the configuration guide for more client-specific examples.

Environment variables

Variable

Purpose

Default

SQLITE_DEFAULT_PATH

Base directory for database files

.

SQLITE_ALLOW_ABSOLUTE_PATHS

Allow absolute database paths

true

SQLITE_BACKUP_PATH

Default backup directory

Default database path

SQLITE_BUSY_TIMEOUT

SQLite lock busy timeout in milliseconds

30000

DEBUG

Enable diagnostic logging

false

SQLITE_MAX_QUERY_TIME remains available as a deprecated alias for SQLITE_BUSY_TIMEOUT. It does not limit wall-clock query runtime.

Tools

Tools are separated by intent so MCP clients can apply clear approval rules.

Safe and read-only

Tool

Purpose

open_database

Open an existing database

close_database

Close one database connection

list_databases

Find database files in a directory

database_info

Read file and SQLite metadata

list_tables

List tables and views

describe_table

Read columns and constraints

backup_database

Create a consistent online backup

export_csv

Export a table or read-only query

export_schema

Export schema as SQL or JSON

execute_read_query

Run one SQLite read-only statement

Writes, schema, and maintenance

Tool

Purpose

create_database

Create a new database file

create_table

Create a table from validated columns

drop_table

Drop a table and its data

execute_write_query

Run INSERT, UPDATE, or DELETE

execute_schema_query

Run one schema statement

bulk_insert

Insert records in batches

import_csv

Import a headered CSV file

import_schema

Apply SQL or JSON schema objects

vacuum_database

Rebuild a database to reclaim space

begin_transaction

Begin a transaction or nested savepoint

commit_transaction

Commit or release a savepoint

rollback_transaction

Roll back a transaction or savepoint

See the complete API reference for parameters, responses, examples, pagination, and CSV options.

Safety model

The server does not treat every SQL string as equivalent:

  • execute_read_query uses SQLite's authorizer API to reject writes, schema changes, unsafe PRAGMAs, attachment, and multiple statements.

  • Write, schema, transaction, and destructive administration actions use separate tools so clients can request approval.

  • Database and CSV paths are resolved and validated before access.

  • Identifiers generated by tools are quoted.

  • Values are bound as parameters rather than interpolated into SQL.

  • Backups use SQLite's online backup API and include committed WAL data.

A client can allow read-only tools and require approval for destructive tools. Always review SQL and file paths before approving changes. Back up important databases before schema changes, imports, or large writes.

Why native SQLite?

Using node:sqlite removes the native addon, its install script, and its platform-specific binaries. A clean production install fell from 31.3 MB with better-sqlite3 to 3.6 MB with native SQLite, an 88.5% reduction. The npm tarball itself is similar in size: 63.1 KB native versus 60.0 KB published. The large saving is in the installed dependency tree.

The migration also removes better-sqlite3 and its type package. It makes installation independent of prebuilt addon availability or a working native compiler.

Driver benchmark

Lower times are better. These medians use 20,000 rows, two warmups, and seven measured runs per driver. Each sample uses a new database and the driver order alternates. Setup is outside the measured region except for the insert workload.

Workload

node:sqlite

better-sqlite3

Native result

Insert transaction

11.13 ms

23.78 ms

2.14× faster

Indexed point reads

25.23 ms

21.40 ms

17.9% slower

Full row scan

6.39 ms

3.29 ms

94.3% slower

Update transaction

8.04 ms

15.40 ms

1.92× faster

Online backup

0.55 ms

0.38 ms

45.0% slower

Measured on Linux x64 with Node.js 24.15.0 and an AMD Ryzen AI 9 HX 370. Node used SQLite 3.51.3; better-sqlite3@13.0.1 used SQLite 3.53.3. These microbenchmarks show driver trade-offs, not complete MCP performance. MCP transport and validation costs are not included.

Development

git clone https://github.com/spences10/mcp-sqlite-tools.git
cd mcp-sqlite-tools
pnpm install
pnpm run check
pnpm test
pnpm run build

See development and architecture for module responsibilities and other development commands.

Documentation

Contributing

Issues and pull requests are welcome.

License

MIT License. See LICENSE.

Available Tools

22 tools
backup_database✓ SAFE: Back up SQLite DB, including committed WAL data.C

✓ SAFE: Back up SQLite DB, including committed WAL data.

ParametersJSON Schema
NameRequiredDescriptionDefault
backup_pathNo
source_database_nameNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description includes the label 'SAFE' and notes WAL inclusion, but it does not disclose what 'SAFE' means, whether the operation is read-only, what side effects exist, or what happens if parameters are omitted. With no annotations, this leaves important behavioral traits unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, which is easy to process, but it is identical to the title, adding no additional value. It is appropriately brief but lacks substantive content beyond the tool's name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is too sparse for a backup tool. It does not explain return values, error behavior, how the backup is stored, or how parameters affect the operation. Combined with no annotations and no output schema, the overall context is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention either parameter (backup_path or source_database_name) at all. With schema description coverage at 0%, the description fails to compensate, leaving the agent without any semantic guidance for the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool over alternatives, no prerequisites, and no mention of scenarios where backup_database is appropriate. The description only states what it does, not when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

begin_transaction⚠️ TRANSACTION: Begin transaction; holds locks until end.C

⚠️ TRANSACTION: Begin transaction; holds locks until end.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It does disclose "holds locks until end," which is a meaningful side-effect warning. However, it does not explain what resources are locked, whether the transaction is per-database, what happens on failure, or whether an existing transaction must already be open.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is extremely tight: one sentence contains the operation and a useful consequence. It does not waste words, but it is essentially identical to the title and could have been expanded slightly without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there are no annotations and no output schema, the description is incomplete. It does not explain the transaction lifecycle, pairing with commit/rollback, how database_name affects the scope, or what success/faliure looks like. The lock warning is helpful clue, but the whole context of transaction management is not covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, as the sole parameter database_name has no description. The tool description does not mention this parameter at all. The field name is self-evident as a database identifier, but there is no explanation of whether it is required, how an omitted value behaves, or how it relates to the transaction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description does not mention that a started transaction should be followed by commit_transaction or rollback_transaction, nor does it explain when beginning a transaction is appropriate or inappropriate. The lock-holding warning implies caution but does not provide actionable usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bulk_insert⚠️ DESTRUCTIVE: Batch insert records with identical columns.C

⚠️ DESTRUCTIVE: Batch insert records with identical columns.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
tableYes
batch_sizeNo
database_nameNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Includes a destructive warning but lacks details on side effects (e.g., overwrite, atomicity, error handling) and does not clarify what 'identical columns' entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with warning; efficient but redundant with title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks details on return values, error handling, constraints on data consistency, and parameter semantics; insufficient for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description does not explain any parameters; schema has no descriptions, so parameters like table, data, batch_size, database_name are ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use bulk_insert versus other write tools like execute_write_query; lacks context like performance considerations or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

close_database✓ SAFE: Close DB connection; file unchanged.C

✓ SAFE: Close DB connection; file unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose all behavioral traits. It only states 'file unchanged,' which is a minor safety note, but fails to mention whether the operation is idempotent, what happens to uncommitted transactions, or if it can be called multiple times. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it repeats the title without adding structure or details. It is not verbose, but it doesn't earn its place because it provides no new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but the description gives no information about return values, side effects, or when to use it. Without annotations or output schema, the description is insufficient for an agent to understand the full behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single optional parameter (database_name) with no documentation in the description. Since schema description coverage is 0%, the description must explain the parameter, but it is entirely omitted, leaving the agent clueless about its purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor any conditions under which it should be ignored. It lacks any mention of prerequisites (e.g., committing transactions) or exclusions like not closing if there are active statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

commit_transaction✓ TRANSACTION: Commit transaction and release locks.D

✓ TRANSACTION: Commit transaction and release locks.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does add the side effect of releasing locks, but it omits important preconditions such as whether a transaction must be open, what happens if database_name is omitted, and whether the commit is idempotent or errors without an active transaction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is compact and front-loaded: 'Commit transaction and release locks.' The '✓ TRANSACTION:' prefix is redundant with the tool name/title, but the description itself wastes little space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a transaction-control tool with no output schema and no annotations, the description is too thin. It does not explain the transaction lifecycle, what releasing locks implies, the role of the optional database_name, or what the agent should expect after invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, database_name, has zero schema description coverage and is never mentioned in the tool description. The agent cannot tell whether database_name is required for targeting the transaction, optional for scoping, or used at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. There is no mention of needing an active transaction, using it after begin_transaction, or avoiding it when wanting to undo changes with rollback_transaction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_database⚠️ CREATES FILE: Create new empty SQLite DB; fails if file exists.B

⚠️ CREATES FILE: Create new empty SQLite DB; fails if file exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full transparency burden. It discloses the file-creation side effect via 'CREATES FILE' and the failure condition if the file exists. It does not mention permissions, parent directory creation, or post-creation behavior, but for a simple create operation it is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, front-loaded sentence with a warning flag. Every word adds value: creation, emptiness, SQLite nature, and failure condition. No redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter creation tool, the description covers the essential behavior and main failure mode. It does not mention what happens on success (e.g., return value or auto-open), but there is no output schema and the missing details are low-stakes. Slightly more context could be added, but the current description is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single 'path' parameter with zero description coverage. The description implies 'path' is the file path to create, but it does not explicitly state this or add format/behavioral details beyond what the schema shows. Meaning is inferable but not explicitly documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The failure condition ('fails if file exists') implies when not to use it, but no explicit alternatives are mentioned, such as using open_database for existing files or backup_database for copying. Usage context is implied rather than explicitly contrasted with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_table⚠️ SCHEMA CHANGE: Create table; fails if it exists.C

⚠️ SCHEMA CHANGE: Create table; fails if it exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
columnsYes
database_nameNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose that this is a schema change and that creation fails if the table exists. However, it does not mention transaction behavior, permissions, side effects on existing data, or what happens after a successful creation. The provided traits are basic but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is one short, front-loaded sentence that conveys the action, the schema-change nature, and a failure condition. There is no filler or redundant elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple DDL tool, the description is minimally viable: it states the operation and the key failure behavior. However, it omits clear details about database_name semantics, whether a database must be open, and any return/confirmation behavior. The rich column schema partially compensates, but important context remains absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate. It never mentions the meaning of name, columns, or database_name, nor does it explain how to specify column types or constraints. The schema provides structure but no semantic guidance, and the description adds none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention preferring execute_schema_query for other DDL, prerequisites like an open database, or any exclusions. The only hint is that it fails if the table already exists, which implies a condition but not a usage policy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

database_info✓ SAFE: Get DB metadata and statistics, not row data.C

✓ SAFE: Get DB metadata and statistics, not row data.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It includes 'SAFE' and 'not row data' which indicate a read-only operation, but it does not elaborate on what metadata/statistics are returned, whether there are any side effects, or if specific permissions are required. This is partial transparency at best.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is extremely concise and front-loaded with the key information. Every word contributes value: the safety marker, the verb, the resource, and the exclusion of row data. There is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple but the description is insufficient for complete understanding. There is no output schema, so the agent doesn't know the return format or the specific statistics included. The one parameter is undocumented, and the description's brevity leaves many practical questions unanswered, such as whether database_name is required or what happens if omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one optional parameter, database_name, with no description, and the tool description provides no explanation of its meaning or usage. Since schema description coverage is 0%, the description does nothing to compensate, leaving the agent completely in the dark about the parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by noting it retrieves metadata and statistics, not row data, but does not explicitly state when to use it instead of alternatives. It provides a hint about the tool's non-row-data scope, but lacks direct comparisons or exclusions like 'use for database health checks'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_table✓ SAFE: Describe table columns and constraints.C

✓ SAFE: Describe table columns and constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
verbosityNodetailed
database_nameNo

TDQS

C2.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description includes the explicit marker 'SAFE' which implies a read-only operation with no side effects. However, it does not disclose any other behavioral aspects, such as error behavior, performance characteristics, or assumptions about the database connection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using a single sentence. However, it is effective and to the point, with no unnecessary words. The structure is clear and easily parsed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides a basic understanding of the tool's purpose but omits important context about return format, optional behaviors (e.g., what verbosity levels do), and any dependencies on other tools or state. It is not complete enough for an agent to use correctly without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no descriptions for the parameters, and the tool description does not explain them either. It fails to clarify the meaning or usage of 'table', 'verbosity', or 'database_name'. Coverage is 0%, and the description does not compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical scenarios, or contrast with similar operations (e.g., when to use describe_table vs list_tables).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drop_table⚠️ DESTRUCTIVE: Drop table and all data.C

⚠️ DESTRUCTIVE: Drop table and all data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
database_nameNo

TDQS

C2.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states the tool is 'DESTRUCTIVE' and that it drops 'all data,' which conveys the critical irreversible aspect. However, it omits other behavioral details such as whether dependent objects are affected, permissions required, or confirmation behavior, leaving the disclosure incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words. The warning is front-loaded and effectively communicates the essence of the operation. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description is seriously underdeveloped. It fails to explain side effects beyond data loss, prerequisites such as existing backups, or what happens upon success/failure. Given the complexity of a destructive operation, this is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has two parameters (table and database_name) with zero schema description coverage. The description mentions 'table' generically but doesn't clarify the meaning or format of database_name, nor any parameter constraints. It adds minimal value beyond the parameter names already present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool relative to alternatives. There is no mention of when to drop a table versus other schema operations, or any caution about prerequisites like ensuring data is backed up. The destructive warning is present but doesn't help with tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_read_query✓ SAFE: Execute read-only SQL with params and pagination.C

✓ SAFE: Execute read-only SQL with params and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
offsetNo
paramsNo
verbosityNodetailed
database_nameNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description includes a safety hint 'SAFE' and mentions read-only, which is relevant since there are write/backup/drop tools. However, with no annotations, the description could disclose more behavioral aspects (e.g., enforces read-only, returns query results, may paginate results), but it only repeats the safety label and provides minimal context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it is also the same as the title without additional structured explanation. It is well-front-loaded with the safety flag, but it lacks detail, so it is efficient but not thorough, earning a 4 for brevity but not a 5 for value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 params, nested object, no output schema) and that the description repeats the title, it is incomplete. It does not describe return format (simple table, column names), error handling, or how pagination works, and it fails to mention that the query is SQL and is executed against a selected database, which is critical given siblings like open_database.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, but it only mentions 'params' and 'pagination' generically NN; it does not explain the purpose of 'verbosity' or 'database_name' beyond what schema hints, and does not clarify how 'params' are used for parameterized queries. It adds a little but not enough for a 6-param tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No annotations and no alternatives are provided; the description does not explain when to use this tool vs alternatives like execute_schema_query or list_tables or describe_table. It only says read-only, but it doesn't say 'use this for SELECT queries only' or 'use schema queries elsewhere'. The sibling list includes other query tools, but the description offers no guidance for choosing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_schema_query⚠️ SCHEMA CHANGE: Execute DDL SQL with params.D

⚠️ SCHEMA CHANGE: Execute DDL SQL with params.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
paramsNo
database_nameNo

TDQS

D1.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing potential side effects. It only says 'Execute DDL SQL' without warning about destructive actions (e.g., dropping tables), irreversibility, or required permissions. The lack of any behavioral disclosure makes it highly opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, consisting of a single sentence with a warning prefix. While it avoids verbosity, it lacks structure and does not convey essential information about parameters or usage. It is appropriately short but not well-organized for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has three parameters, no annotations, and no output schema, the description is severely incomplete. It does not explain parameter meanings, provide examples, or mention potential errors or constraints. The minimal text fails to give users sufficient context to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines three parameters (query, params, database_name) but the description provides no explanation for any of them. It mentions 'with params' but does not clarify their purpose (e.g., placeholders) or the role of database_name. With 0% parameter description coverage, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It does not mention that read/write queries should use other tools, nor does it explain scenarios where DDL is appropriate. The only hint is the 'SCHEMA CHANGE' label, but it lacks explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_write_query⚠️ DESTRUCTIVE: Execute INSERT/UPDATE/DELETE with params.C

⚠️ DESTRUCTIVE: Execute INSERT/UPDATE/DELETE with params.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
paramsNo
database_nameNo

TDQS

C2.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description's DESTRUCTIVE warning carries the burden of conveying that this is a mutating operation. It adds a meaningful safety signal but does not disclose transaction behavior, rollback options, or side effects beyond the label.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler, but it is a direct duplicate of the title. While compact, it under-specifies the tool, relying entirely on the warning for substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive write tool with no annotations, an output schema, or parameter descriptions, the context provided is far too sparse. It omits safety practices, database_name usage, transaction interplay, and expected outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description only says 'with params,' offering no meaning for the query, params, or database_name fields. It fails to compensate for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as execute_read_query, execute_schema_query, or transaction-related tools. There are no exclusions or context about transactional boundaries or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_csv⚠️ FILE WRITE: Export table or read-only query to CSV.D

⚠️ FILE WRITE: Export table or read-only query to CSV.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
tableNo
appendNo
encodingNoutf8
delimiterNo
file_pathYes
always_quoteNo
database_nameNo
record_delimiterNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits. It includes a 'FILE WRITE' warning but does not explain behaviors like overwriting, appending, file handling, permissions, or side effects. The label is superficial and lacks substantive disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise in length, but it is under-specified. It does not earn its place as it omits critical information; brevity here is a symptom of incompleteness rather than effective structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, no annotations, no output schema, and no parameter documentation, the description is grossly incomplete. It does not address return values, file write semantics, or any usage context. The tool needs substantial additional detail to be safely and correctly invoked.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% (context signal). The description does not explain any of the 9 parameters, including required file_path, optional query/table, append, delimiter, encoding, etc. It adds no meaning beyond the schema, which is unacceptable given the parameter count.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as execute_read_query for querying data or export_schema for schema exports. The description implies usage for CSV file creation but does not provide context, exclusions, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_schema✓ SAFE: Export schema as SQL or JSON.C

✓ SAFE: Export schema as SQL or JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNosql
tablesNo
database_nameNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description includes the word 'SAFE' but that is not an annotation and does not disclose side effects, permissions, or read-only nature in a formal way.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and to the point with no redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema or parameter descriptions. The description does not specify what the exported schema includes, the output format details, or whether tables and database_name are required. Incomplete for a tool with multiple parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema provides no descriptions for parameters (format, tables, database_name). The description does not elaborate on their meaning or usage, leaving ambiguity about optional parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like import_schema or other export tools. Lacks context on typical use cases or constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_csv⚠️ DESTRUCTIVE/SCHEMA: Import headered CSV into a table.D

⚠️ DESTRUCTIVE/SCHEMA: Import headered CSV into a table.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteNo
tableYes
escapeNo
encodingNoutf8
delimiterNo
fail_fastNo
file_pathYes
batch_sizeNo
max_errorsNo
coerce_typesNo
create_tableNo
database_nameNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It includes 'DESTRUCTIVE/SCHEMA' in the title and description, but does not specify what is destructive (e.g., overwriting data, affecting schema) or how errors are handled. The warning is vague and lacks detail about impact, rollback, or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence identical to the title, offering no additional structure or information. While it is concise, it repeats the title and fails to front-load essential context. Conciseness is not valuable when the content is minimal and redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex (12 parameters, destructive, no output schema), yet the description covers almost none of its behavior. It doesn't explain error handling, batching, encoding options, or the impact on the database schema. This is severely incomplete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no information about any of the 12 parameters. Since schema description coverage is 0% and the input schema lacks per-property descriptions, the tool description should compensate, but it does not. Parameters like encoding, delimiter, batch_size, and coerce_types are entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like bulk_insert or import_schema. There is no mention of prerequisites, such as whether the table must exist or if create_table is needed. The description simply states the action without contextualizing its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_schema⚠️ SCHEMA CHANGE: Import SQL/JSON schema objects.C

⚠️ SCHEMA CHANGE: Import SQL/JSON schema objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNosql
schemaYes
database_nameNo

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It does warn 'SCHEMA CHANGE', indicating a mutating operation, but it doesn't disclose whether existing object definitions are overwritten, whether changes are transactional/reversible, or what permissions are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with a warning, and contains no filler. However, it duplicates the title and omits substantive parameter details, so it is concise but not maximally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a schema-modifying tool with no annotations, no output schema, and no parameter descriptions, the description is incomplete. It doesn't explain behavior on existing objects, target database selection, or error conditions, making it risky for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention individual parameters. The phrase 'SQL/JSON' hints at the format parameter and 'schema objects' maps to the schema parameter, but database_name and important semantics (e.g., whether the schema replaces the existing one) are unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use import_schema versus alternatives like execute_schema_query, create_table, or export_schema. The only contextual signal is the warning 'SCHEMA CHANGE', but there are no conditions, prerequisites, or exclusions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_databases✓ SAFE: List SQLite DB files in a directory.C

✓ SAFE: List SQLite DB files in a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no structured annotations, so the description carries the burden. 'SAFE' and 'List' imply a read-only operation, which is useful but minimal. The description does not disclose whether it scans subdirectories, what file extensions are matched, or behavior with invalid directories.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that communicates the safety and purpose of the tool with no redundant or filler text. It earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter listing tool, the description covers the essential operation. Given the low complexity and the existence of a 'directory' property, the missing details such as recursion or extension filtering are not critical for a competent agent, though the description could be slightly richer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only a name and maxLength for the single 'directory' parameter with no description. The tool description mentions 'in a directory,' which clarifies that the parameter is the target path, but it offers no details on optional behavior, defaults, or accepted formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to choose this tool over alternatives or when it is appropriate. The only implicit context is that it lists database files, but there is no explicit mention of when not to use it or what alternatives exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tables✓ SAFE: List tables/views with pagination and verbosity.D

✓ SAFE: List tables/views with pagination and verbosity.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
verbosityNosummary
database_nameNo

TDQS

D1.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only includes a 'SAFE' label, which is not a behavioral detail. There is no mention of read-only nature, side effects, or any operational implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this brevity is not justified by completeness. It lacks structure and fails to provide essential information; under-specification is not conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no output schema, and no annotations, the description is grossly inadequate. It provides no context for pagination, verbosity levels, or how the database is specified, leaving the agent without necessary guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the four parameters. It vaguely mentions 'pagination and verbosity' but does not map them to `limit`, `offset`, or `verbosity`, nor does it mention `database_name`.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. There is no mention of context, prerequisites, or when it might be more appropriate than `describe_table` or `list_databases`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_database✓ SAFE: Open existing SQLite DB and set current context.C

✓ SAFE: Open existing SQLite DB and set current context.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It simply restates the action without explaining side effects, error behavior (e.g., nonexistent path), or whether the tool modifies global state. The '✓ SAFE' prefix is a brief safety hint but adds little concrete behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no wasted words, making it concise. However, it is identical to the title, which slightly reduces its added value, but the structure itself is clean and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a simple interface (one parameter, no output schema), but the description leaves out important context such as what 'current context' means, how it interacts with other tools, and what the expected result is. Given the low structural richness, a few additional clarifying details would greatly improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the 'path' parameter at all. Although the parameter name is self-explanatory, there is no guidance on accepted path formats, relative vs. absolute paths, or whether the file must already exist. The description fails to compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage as a prerequisite step before querying or modifying a database, but it does not explicitly state when to use this tool versus alternatives like create_database or list_databases. No exclusions or practical guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rollback_transaction⚠️ TRANSACTION: Roll back transaction and release locks.D

⚠️ TRANSACTION: Roll back transaction and release locks.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states the core action without mentioning data side effects, error scenarios, or dependency on an active transaction, leaving the agent with minimal understanding of the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, but it is under-specified rather than appropriately concise. It lacks necessary details, making it insufficient for an agent to use effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a transaction rollback, the description omits important context such as what happens to uncommitted changes, whether locks on other objects are released, and implications if no transaction is active. It is too incomplete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the optional 'database_name' parameter at all, and the schema lacks descriptions (0% coverage). The description adds no value in clarifying what the parameter does or why it might be specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, whether a transaction must be active, or any prerequisites. The description is a bare statement of action without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vacuum_database✓ MAINTENANCE: VACUUM database to reclaim space.C

✓ MAINTENANCE: VACUUM database to reclaim space.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose side effects. It mentions 'reclaim space' but omits potential locking, transaction restrictions, or impact on active connections, which are important for a maintenance command.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no wasted words, but it is identical to the title and adds no structural or additional information. It is concise but redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a maintenance tool with no output schema and no annotations, the description is too thin. It does not explain return behavior, side effects, or the role of the optional database_name parameter, leaving important gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one optional parameter, database_name, with 0% description coverage. The description does not mention this parameter or clarify what happens when it is omitted, so the agent gets no semantic help beyond the schema's name and maxLength.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tautological: description restates name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to run VACUUM, prerequisites, or alternatives. The description only states the action, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 22 tool updatesv0.0.18
    • First observedbackup_database
    • First observedbegin_transaction
    • First observedbulk_insert
    • First observedclose_database
    • First observedcommit_transaction
    • First observedcreate_database
    • First observedcreate_table
    • First observeddatabase_info
    • First observeddescribe_table
    • First observeddrop_table
    • First observedexecute_read_query
    • First observedexecute_schema_query
    • First observedexecute_write_query
    • First observedexport_csv
    • First observedexport_schema
    • First observedimport_csv
    • First observedimport_schema
    • First observedlist_databases
    • First observedlist_tables
    • First observedopen_database
    • First observedrollback_transaction
    • First observedvacuum_database

TDQS

C2.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, covering different aspects of database management (creation, connection, querying, schema, backup, export/import), with no overlapping functions.

Naming Consistency5/5

All tool names follow the consistent verb_noun pattern (e.g., backup_database, execute_read_query, export_schema), using lowercase with underscores throughout.

Tool Count4/5

With 22 tools, the set is comprehensive for a SQLite server, slightly exceeding the typical 3-15 range but justified by the wide range of operations (e.g., backup, vacuum, import/export).

Completeness5/5

The tool set covers database lifecycle, table management, data CRUD, schema operations, transactions, and backup/export functions, leaving no significant gaps for standard SQLite usage.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables secure interaction with multiple SQL database engines (MySQL, PostgreSQL, SQLite, SQL Server) through a standardized interface. Supports schema inspection, safe query execution, and controlled write operations with built-in security restrictions.
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides comprehensive SQLite database interaction for AI agents, including data manipulation, schema inspection, and automated query logging. It features a unique context preservation pattern that uses a dedicated meta-table to help autonomous agents maintain self-documenting database architectures.
    32
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/spences10/mcp-sqlite-tools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server