Skip to main content
Glama
visorcraft

MongrelDB-Viewer

MongrelDB Viewer is free and open source. Use it as a local vector database GUI or expose the open database through its local vector database MCP server.

What it does

MongrelDB Viewer has two connection modes:

Capability

Direct folder

mongreldb-server

Open style

Embedded, exclusive filesystem lock

Multi-client HTTP

Browse schema and rows

Yes

Yes

Run SQL, DDL, and DML

Yes

Yes, when the server permits it

Show foreign-key graph

Yes

Not exposed by the current server adapter

Native retrieve_text provenance

Yes

No, SQL ANN fallback

Install, backfill, or rebuild ANN from the UI

Yes

No

Run REINDEX

Yes

Sent as server SQL

Agent and in-app MCP

Yes

Yes

Catalog credentials and encryption passphrase

Yes

Server auth only

Direct mode uses mongreldb-core and mongreldb-query in the application process. Server mode uses mongreldb-client against a running daemon. See connection modes before opening production data.

Related MCP server: mmnt-mcp-server

Screenshots use the bundled six-table demo database.

Deck

Schema map

Deck overview

Schema constellation

Table browser

SQL workbench

Table browser

SQL workbench

Vector search

Agent chat

Dense ANN lab

Agent chat

MCP bridge

About

MCP bridge

About

Install

Download a package, when attached, from GitHub Releases. If no package matches your platform, build from source:

git clone https://github.com/visorcraft/MongrelDB-Viewer.git
cd MongrelDB-Viewer
npm ci
npm run tauri build

Source builds need Rust 1.88+, Node.js 22+, and the native libraries required by Tauri 2. Bundles are written below src-tauri/target/release/bundle/.

See installation and builds for platform prerequisites, development mode, Linux display behavior, upgrades, and model downloads.

Five-minute tour

npm ci
npm run tauri dev

Then:

  1. Leave Direct folder selected.

  2. Choose an empty directory.

  3. Click Create demo DB.

  4. Open Deck, Stars, Table, and SQL.

  5. In ANN, search hybrid retrieval across indexes.

Demo creation writes six tables, foreign keys, representative secondary indexes, a 384-dimensional embedding column, and dense HNSW ANN. The first run may download all-MiniLM-L6-v2. If the download is unavailable, demo creation can fall back to zero vectors; use Re-embed from text column after the model becomes available.

The demo button hides after its first successful use. Reopen the demo through Recent or Direct folder on later launches. The complete walkthrough and schema are in first launch and demo.

Product surfaces

Surface

Purpose

Deck

Connection metadata, table and row totals, index capabilities, live insights, and schema-derived SQL recipes

Stars

Pan and zoom graph of database, tables, columns, indexes, and Direct-mode foreign keys

Table

Column types and flags, embedding source, index options, row samples, and REINDEX

SQL

MongrelDB/DataFusion workbench with recipes, in-memory history, result grid, and CSV copy

ANN

Direct-mode ANN install/rebuild/backfill and table-scoped semantic search

Agent

OpenAI Chat Completions-compatible tool loop over the current database

MCP

Local HTTP JSON-RPC server or separate stdio process with the same tool surface

About

Product metadata, complete license texts, dependency credits, and runtime notices

The Viewer recognizes all six public MongrelDB secondary-index families: Bitmap, LearnedRange/PGM, FM, ANN, Sparse, and MinHash.

Safety before use

  • SQL, Agent, and MCP tools are not read-only. They can run DDL, DML, REINDEX, and ANN installation without a per-statement confirmation dialog.

  • Direct mode owns an exclusive database lock. Disconnect before another exclusive process opens the root, and disconnect before filesystem backups.

  • The in-app MCP endpoint has no authentication. The UI binds it to 127.0.0.1; any local process that can reach the port can invoke its tools.

  • Clicking Save in Agent stores the base URL and model in WebView localStorage. The API key remains in process memory and is cleared on exit.

  • Prompts and tool results sent to a remote chat endpoint can contain database data.

Read the security policy and operations guide for the full trust model and local-data inventory.

Documentation

Start here:

Use the application:

Operate and extend it:

Architecture at a glance

React + TypeScript
       |
       | Tauri invoke
       v
Rust command layer
       |
       +-- Direct: mongreldb-core + mongreldb-query
       |
       +-- Server: mongreldb-client + HTTP
       |
       +-- Embeddings: fastembed MiniLM
       |
       +-- Shared tools: Agent chat + MCP HTTP/stdio

The active connection and embedding hub are shared by SQL, Agent, and in-app MCP. Stdio MCP is a separate process and must open its own Direct or Server connection. See architecture for lifetimes, data flows, trust boundaries, source layout, and extension points.

Development gate

npm ci
npm run build
cargo fmt --manifest-path src-tauri/Cargo.toml --check
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets --all-features -- -D warnings
cargo test --manifest-path src-tauri/Cargo.toml

Dependency changes also require:

scripts/regen-credits.sh

Full workflow: CONTRIBUTING.md.

Support and policy

  • Mongrel — Commercial multi-system workbench with native MongrelDB support.

  • MongrelDB Viewer — Free, open-source MongrelDB GUI and MCP server.

License

MongrelDB Viewer is available under MIT OR Apache-2.0. See LICENSE-MIT and LICENSE-APACHE.

Available Tools

9 tools
constellationC

Return the schema constellation graph (tables, columns, indexes).

NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only metadata fetch but says nothing about cost, whether the graph is large, whether it covers all schemas or one, or what the returned structure looks like — and with no output schema, the word "graph" is never disambiguated.

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?

A single front-loaded sentence with no filler. It is lean and readable; the terseness here reflects missing content rather than wasted words.

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 zero-param tool with no annotations and no output schema, the description is the only source of information about the return value, and it leaves the central concept ("constellation graph") and its shape unexplained. An agent cannot predict what it will receive or how it differs from database_overview.

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

Parameters4/5

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

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to clarify, and the empty schema is unambiguous.

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

Purpose3/5

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

The verb "Return" and the parenthetical "(tables, columns, indexes)" make the resource concrete, but "schema constellation graph" is undefined jargon and the description never distinguishes this from siblings like database_overview, list_tables, or describe_table. An agent can guess it returns schema metadata but not why it exists separately from those tools.

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 statement of when to call this instead of database_overview/list_tables/describe_table, and no exclusions or prerequisites. The agent must infer usage entirely from the tool name and the sibling list.

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

database_overviewA

High-level overview of the open database: path or server URL, connection mode, tables, ANN readiness.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries more burden. It helpfully discloses the key returned fields and implies a read-only overview, but it does not explicitly state that it is non-mutating, whether it requires an open connection, or how the overview is structured.

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?

A single, front-loaded sentence that identifies the tool's purpose and enumerates the useful outputs without any filler. Every phrase contributes to understanding what the overview returns.

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 zero-parameter overview tool with no output schema, the description is nearly complete: it names the main fields returned. It could be strengthened with a brief note on when to choose it over list_tables or describe_table, but the core context is present.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description correctly does not invent parameter details and simply describes the no-argument overview behavior.

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

Purpose4/5

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

The description states a specific resource and summarizes exactly what the overview contains: path or server URL, connection mode, tables, and ANN readiness. It is clearly distinct from more granular siblings such as list_tables or describe_table, though it does not explicitly name those alternatives.

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 phrase 'high-level overview' implies this is a summary/orientation tool, but there is no explicit guidance on when to use it instead of list_tables, describe_table, or other siblings. Usage is inferable but not specified.

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

describe_tableA

Describe a table: columns, types, flags, and secondary indexes (Bitmap/PGM/FM/ANN/Sparse/MinHash).

NameRequiredDescriptionDefault
tableYesTable name

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description carries the burden, and it does disclose the return surface (columns, types, flags, and index kinds such as Bitmap/PGM/FM/ANN/Sparse/MinHash). It says nothing about behavior on a missing table, permissions, or whether the call is purely read-only, which leaves real gaps for an unannotated tool.

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?

One sentence, front-loaded with the verb and resource, then the return contents. Nothing is repeated and nothing is wasted.

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?

With no output schema, the description must describe return values and does so adequately by listing the column/type/flag/index details. Only minor omissions remain, such as error behavior for an unknown table or the exact shape of the returned schema object.

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 single 'table' parameter is 100% documented in the schema, so the baseline of 3 applies. The description adds no naming/qualification rules (e.g., schema-qualified names, case sensitivity) beyond what the schema states.

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

Purpose4/5

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

States a specific verb ('describe') and resource ('a table') and enumerates what is returned: columns, types, flags, and secondary indexes. It is distinguishable from list_tables and database_overview by its single-table focus, though it never names those siblings.

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?

Usage is only implied — an agent infers it should call this when it needs a table's schema. There is no explicit 'use this instead of list_tables/database_overview when...' guidance, and no note on prerequisites such as the table needing to exist.

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

execute_sqlC

Run a MongrelDB SQL statement (DataFusion). Prefer read-only SELECT for exploration.

NameRequiredDescriptionDefault
sqlYes
max_rowsNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations at all, so the description carries the full burden. It never says whether writes/DDL are permitted or persist, what permissions are required, how errors surface, or what the result looks like. "Prefer read-only SELECT" hints at risk without quantifying it.

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?

Two short sentences, zero repetition, with the core action front-loaded. It is terse to the point of under-specification, but contains no filler.

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 an arbitrary-SQL execution tool with no annotations and no output schema, the description says almost nothing about security posture, mutability, result shape, or row-limit semantics. An agent could call it correctly mechanically, but not safely or predictably.

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%, so the description must compensate. It only implicitly maps "SQL statement" to the `sql` parameter and adds the dialect hint; `max_rows` (bounds 1–10000) is never mentioned, including what it caps or whether a default applies.

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

Purpose4/5

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

States a specific verb and resource ("Run a MongrelDB SQL statement") and names the query engine (DataFusion), so the agent knows this is the raw-SQL escape hatch. It does not explicitly contrast itself with structured siblings like list_tables or describe_table, leaving differentiation implicit.

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?

"Prefer read-only SELECT for exploration" implies a usage posture (exploration vs. mutation) but never states when to call this instead of list_tables/describe_table/semantic_search, nor any exclusions. Usage is inferable but not spelled out.

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

install_dense_annA

Install ANN on a table (direct/local only). Default algorithm=hnsw, quantization=dense (full f32 cosine). Supported pairs: hnsw×{dense,binary_sign,product}, diskann×dense, ivf×dense. product requires product_num_subvectors (must divide dimension). Set rebuild=true to drop and recreate.

NameRequiredDescriptionDefault
tableYes
rebuildNoDrop existing ANN on the embedding column and recreate with the requested options
algorithmNoANN graph/structure algorithmhnsw
dimensionNo
diskann_lNoDiskANN build search-list L
diskann_rNoDiskANN max degree R
ivf_nlistNo
ivf_nprobeNo
provider_idNo
product_bitsNoBits per PQ subvector (only 8 supported)
quantizationNodense = full f32 cosine; binary_sign = legacy compact Hamming; product = PQ codesdense
backfill_limitNo
embedding_columnNoembedding
diskann_beam_widthNo
source_text_columnNo
product_num_subvectorsNoRequired for product quantization; must evenly divide dimension

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations at all, the description still carries the most important behavioral fact: rebuild=true drops and recreates the existing index, a destructive side effect the agent would otherwise not know. It also states the supported algorithm/quantization pairing matrix and the product_num_subvectors divisibility constraint. It stops short of covering cost/duration, idempotency, or what happens when an incompatible pair is requested.

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?

Four short sentences, front-loaded with the action and its scope, followed by defaults, the validity matrix, and the destructive-rebuild warning. The compact "hnsw×{dense,binary_sign,product}" notation encodes a large constraint set with almost no tokens.

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 16-parameter, annotation-free install tool this is only partially adequate: it nails the algorithm/quantization interplay but leaves nine or so tuning and plumbing parameters (diskann_l/r, ivf tuning, provider_id, backfill_limit, embedding/source columns) undescribed. Without an output schema, the description also says nothing about what the install returns or how progress is reported.

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

Parameters4/5

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

Schema coverage is only 44%, so the description must compensate, and it does for the highest-risk parameters: it supplies defaults (hnsw, dense), defines the cross-parameter validity matrix across algorithm and quantization, and explains that product requires product_num_subvectors evenly dividing dimension — a constraint the schema can only hint at. Roughly half the parameters (diskann_l/r, ivf_nlist/nprobe, provider_id, backfill_limit, diskann_beam_width, source_text_column) receive no guidance in either place.

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

Purpose4/5

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

"Install ANN on a table" is a specific verb plus resource, and it adds a scope qualifier ("direct/local only") that tells the agent this is a local-index build rather than a remote/managed operation. It never names a sibling such as reindex or semantic_search, so the boundary with those tools is left to inference.

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 "direct/local only" parenthetical and the rebuild=true note imply some usage context, but there is no explicit statement of when to call this versus reindex, or what prerequisites exist (existing embedding column, provider availability). The reader must infer the call conditions.

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

list_embedding_providersB

List embedding providers available in the viewer.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden; it implies a read-only enumeration via 'List' but never states safety, whether results are cached, or whether the 'viewer' scope differs from what the server exposes. For a zero-parameter listing operation the residual risk is low, so this is adequate but thin.

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?

A single front-loaded sentence with no filler or redundancy; every word contributes to the meaning.

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?

There is no output schema, so the description should indicate what a provider entry looks like (name only, or name plus model/config). It doesn't, leaving the agent unsure what it will receive, though the operation itself is simple enough that little else is required.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies.

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

Purpose4/5

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

Specific verb 'List' plus resource 'embedding providers' and a scope qualifier ('available in the viewer'). An agent can distinguish it from list_tables or semantic_search from the name alone, though the description does not explicitly contrast with those siblings.

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 gives no when-to-use, when-not-to-use, or prerequisite guidance. It never states the relationship to semantic_search, install_dense_ann, or reindex, which are the natural follow-on/alternative tools once an agent knows which providers exist.

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

list_tablesA

List all tables in the open MongrelDB database with row counts and index capabilities.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. It does disclose useful behavior beyond the name by promising row counts and index capabilities in the result, and 'List' implies a read-only operation, but it never states that it is non-destructive or whether counts are computed live versus cached.

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?

A single front-loaded sentence with no filler; the scope and returned fields are delivered immediately. Every clause 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?

With no output schema, the description usefully names what comes back (tables, row counts, index capabilities), which is the main thing an agent needs to know. It stops short of explaining result ordering or size, but for a zero-parameter enumeration tool that is a minor gap.

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

Parameters4/5

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

The tool takes zero parameters, which sets the baseline at 4. There is nothing parameter-wise for the description to explain, and it correctly avoids inventing filtering options.

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

Purpose4/5

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

The description states a specific verb and resource ('List all tables') plus the scope ('in the open MongrelDB database') and the payload returned ('row counts and index capabilities'). It is clearly distinct from describe_table in spirit, but it never names that sibling, so an agent must infer the enumeration-vs-detail split.

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 explicit statement of when to call this instead of describe_table, database_overview, or semantic_search, and no prerequisites or exclusions. The discovery use case is only implied by the word 'List'.

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

reindexA

Run engine REINDEX maintenance (analyze + compact + GC). Omit table for the whole database; pass table for one table.

NameRequiredDescriptionDefault
tableNoOptional table name. Empty/omit = REINDEX entire database.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description bears the full behavioral burden. It does disclose the concrete maintenance steps and 'GC' hints at mutation, but it omits whether the operation is blocking, how expensive or long-running it is, and whether it should be avoided during active workloads — material gaps for a database-wide maintenance operation.

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?

Two tight sentences with no filler; the operation and its sub-steps come first, followed immediately by the scoping rule. Every clause carries information.

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 low-complexity, single-optional-parameter tool with no output schema, the description covers purpose and scope adequately. The remaining hole is operational impact (duration, locking, permissions) which matters for a whole-database REINDEX but is not addressed.

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 100% and the single parameter is already documented as 'Optional table name. Empty/omit = REINDEX entire database.' The description restates that behavior rather than adding format, naming, or validation detail beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Run') and resource ('engine REINDEX maintenance') and even enumerates the sub-operations (analyze + compact + GC), so the agent knows exactly what the call does. It doesn't explicitly contrast with any sibling, but no sibling tool offers maintenance, so confusion is unlikely.

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?

'Omit table for the whole database; pass table for one table' gives clear scope guidance for the parameter. However, it never says when to choose this tool (e.g. after bulk loads or deletes) or whether there are preconditions, costs, or times to avoid running it.

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.

  1. 9 tool updatesv1.6.7
    • First observedconstellation
    • First observeddatabase_overview
    • First observeddescribe_table
    • First observedexecute_sql
    • First observedinstall_dense_ann
    • First observedlist_embedding_providers
    • First observedlist_tables
    • First observedreindex
    • First observedsemantic_search

TDQS

B3.4/5.0

Scored across 9 tools

Disambiguation3/5

Most tools are distinct, but schema-inspection duties overlap: list_tables vs database_overview both report tables, and describe_table vs constellation both expose columns and indexes. Descriptions hint at differences (connection-level vs graph-level), yet an agent can plausibly pick the wrong one for a simple 'what tables exist' or 'what indexes are here' question. Execution-oriented tools (execute_sql, semantic_search, install_dense_ann, reindex) are clearly separated.

Naming Consistency3/5

Eight of nine names are snake_case, but the verb_noun pattern is broken by noun-only entries (constellation, reindex) and a noun_noun entry (database_overview). Naming is still readable and predictable enough to infer intent, but it is not a uniform convention.

Tool Count5/5

Nine tools is well within the ideal 3-15 range and each maps to a real operation in a database viewer (inspect, query, index, maintain, discover providers). No tool feels redundant enough to remove wholesale, and none of the surface is padded.

Completeness4/5

Exploration, ANN setup, maintenance, and provider discovery are all covered, with execute_sql acting as a general escape hatch for anything missing. Minor gaps remain: no way to drop/uninstall an ANN index schema-side, no explain/query-plan tool, and no explicit listing of installed ANN indexes per column beyond describe_table.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers