Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
prompts
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
guideA

Read this first, once per session: the Rowbase knowledge base — recommended workflow, safety rules (read-only model, one statement per call), the TOON output format and SQL dialect notes. Use it before any other tool; it needs no connection. Returns a markdown document.

connectionsA

List the user's saved database connections exposed to MCP. Call this first to get the exact connection names every other tool requires. Returns a table connections[N]{name,driver,env,mode,database,tunnel} — mode is the EFFECTIVE read-only/read-write mode for MCP; env 'prod' means be extra careful — plus writes_enabled_in_mcp. No pagination: all exposed connections are returned.

databasesA

List the databases on a connection's server and which one is current. Use it when a connection has no database selected, or to work in another database (pass database to later calls); to list tables inside a database use tables instead. Returns current, databases[N] (user databases first) and system[N]. SQLite returns an empty list (one file = one database). On failure returns isError with 'error: ' (e.g. refused statement, unknown table, SQL error).

tablesA

List all tables and views of a connection/database with approximate row counts — the entry point for browsing. Use search_schema instead when you look for a concept (e.g. 'invoice') across table AND column names, and describe once you know the table. Returns tables[N]{name,kind,approx_rows} (kind = table|view; approx_rows is an estimate, may be null; use count for exact numbers). Returns every match, no pagination. On failure returns isError with 'error: ' (e.g. refused statement, unknown table, SQL error).

describeA

Show the structure of one known table: columns with type, nullability, key, default, foreign-key target (fk = table.column — use it to write JOINs) and comment, plus indexes and the tables that reference it. Use it before writing SQL against a table; use search_schema if you don't know the table name yet. Returns table, sql_name (properly quoted name for SQL), columns[N]{name,type,nullable,key,default,fk,comment}, indexes[N]{name,unique,columns} and referenced_by[N]{table,column,ref_column}. On failure returns isError with 'error: ' (e.g. refused statement, unknown table, SQL error).

search_schemaA

Find tables and columns whose name contains a keyword (case-insensitive substring; on MySQL also column comments). Use it when you know WHAT you are looking for but not WHERE it is stored; use tables instead to browse everything and describe for one known table. Returns matches[N]{table,column,type}, one row per matching column (a table-name match lists all its columns), capped at 500 rows (truncated: true when cut). On failure returns isError with 'error: ' (e.g. refused statement, unknown table, SQL error).

sampleA

Peek at a few real rows of one table (SELECT * … LIMIT n, in storage order, no sorting) to see what the data looks like before writing a query. Use query instead for specific columns, joins, sorting or aggregates, and count when you only need a number. Returns rows[N]{all columns} plus rows, truncated (true = more rows exist) and ms. Default 20 rows, capped by the server's max rows setting. On failure returns isError with 'error: ' (e.g. refused statement, unknown table, SQL error).

countA

Return the exact number of rows in a table, optionally filtered — use it to size a result before fetching it or to answer 'how many' questions. Use query instead for grouped counts (GROUP BY) or counts over joins. Returns a single line: count: N. May be slow on very large unindexed filters (timeout from settings). On failure returns isError with 'error: ' (e.g. refused statement, unknown table, SQL error).

queryA

Run exactly ONE SQL statement — the general tool for answering questions: specific columns, JOINs (follow fk from describe), filters, sorting, GROUP BY. Read-only connections accept only SELECT/SHOW/DESCRIBE/EXPLAIN/WITH/VALUES/TABLE (+PRAGMA on SQLite); multiple statements are refused. Prefer sample/count for simple peeks and totals, explain for performance. A LIMIT is added automatically when missing. Returns rows[N]{columns} plus rows, truncated (true = more rows exist — narrow with WHERE or raise limit) and ms; write statements (only if writes are enabled) return affected instead. On failure returns isError with 'error: ' (e.g. refused statement, unknown table, SQL error).

explainA

Show how the database will execute a SELECT (its query plan) to diagnose slow queries or check index use — use it instead of query when the question is about performance, not data. With analyze=true the statement is actually executed to report real timings (can be slow on big tables). Returns the plan as rows plus a hint: MySQL type=ALL or PostgreSQL 'Seq Scan' means a full table scan (consider an index or a narrower WHERE). SQLite uses EXPLAIN QUERY PLAN. On failure returns isError with 'error: ' (e.g. refused statement, unknown table, SQL error).

Prompts

Interactive templates invoked by user choice

NameDescription
setupSet up this assistant to work with Rowbase: read the guide, list connections and create a reusable skill.
exploreExplore a connection and summarize its data model.

Resources

Contextual data attached and managed by the client

NameDescription
Rowbase guideKnowledge base: workflow, safety, output format, tools.
Connections

TDQS

A4.6/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct stage of database exploration or querying, and descriptions explicitly state when to use one over another (e.g., sample vs query, count vs query, explain vs query). The only overlap is that query can technically perform many tasks, but the guidance makes boundaries clear.

Naming Consistency3/5

Names mix plural nouns (connections, databases, tables), verbs (describe, sample, count, query, explain), and one snake_case verb_noun (search_schema). While readable, there is no consistent pattern, so agents cannot rely on naming alone to infer tool type.

Tool Count5/5

Ten tools is well-scoped for a database MCP, covering connection discovery, schema browsing, data sampling, counting, querying, and performance analysis. Each tool has a clear role, and no tool feels superfluous.

Completeness5/5

The surface covers the full read-only query lifecycle from connections and databases to tables, schema search, sampling, counting, querying, and explain plans. Writes are possible via query when enabled, and no major operations for the stated domain are missing.

Maintenance

ActivityNo data
ResponsivenessNo issues