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
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_table_contextA

Read one table. Call it before writing SQL against a table, with purpose: query: DDL, the Joins list (declared foreign keys, joins dbprint inferred from column names or measured from values, and joins a person added, tagged annotated - minus any a person rejected; a join mentioned only in the table's prose description is not in it), a data dictionary, the value lists a predicate is written from, with their counts and coverage, and each nullable column's null share, plus notes that apply to the whole database. Call it with the default purpose: profile to describe the data - statistics such as null rates, cardinality and ranges, joins, the table's prose description and notes. Use search_columns or list_tables first when the table is not yet known, and resolve_value to check how one phrase is spelled in one column. Paged: md and yaml end every page but the last with a next_cursor line, json carries it as a key; a section too long for one page continues on the next, never dropped. Under profile, md Notes summarise each column - a long value list shows its 5 most frequent values - while json and yaml carry the statistics whole; for json/yaml a _corrupted field names any of the table's print files that failed to parse.

list_tablesA

List a connection's tables, optionally narrowed by an fnmatch pattern over the dotted names. Use it to see which tables exist, their row counts, and whether each table's statistics are stale: detail: true adds each table's type, row_count, columns and profiled_at, and a freshness verdict - live, stale, or dormant when profiled_at is unreadable - with its age_days and the max_age_days it is judged against. A table whose threshold cannot be resolved carries threshold_error instead of a verdict. To find columns rather than tables, use search_columns; for the print's raw table index, get_manifest. Paged: every reply carries the total matched, and next_cursor while more remain.

search_columnsA

Find columns across every table - the first call when the table holding a fact is not yet known. Filters, all optional and ANDed: a name glob, a text search over column names and their notes, and classification/sql_type/sensitivity/looks_like/redacted globs and a candidate_key match - for example every column holding an email address (looks_like: email) or contact details (sensitivity: contact). Read a table found this way with get_table_context; list tables rather than columns with list_tables. A match on a table read in part carries its scope block with rows_scanned/row_count, so a caller can tell a scanned-set number or key from a table-wide one; a match carrying a looks_like verdict carries the sampled/matched draw behind it, since a verdict from two values reads identically to one from ten thousand otherwise. A match carries sensitivity/redacted/candidate_key (and candidate_key_exception where the ratio falls short of 1.0) whenever the column does, so filtering on any of them returns the matched category, not just a bare column name. Paged: every reply carries the total matched, and next_cursor while more remain. A result carries unreadable_tables only when a table's own statistics or annotations failed to parse, on its first page: a statistics failure drops that table's columns from matches entirely; an annotations-only failure still returns them, without the annotation. A looks_like search also carries switched_off_tables on its first page, naming each table whose looks_like detection was switched off, where a non-match is not a finding.

resolve_valueA

Resolve a phrase, a code or a spelling against one column's published values, before writing a literal into a filter whose stored spelling get_table_context does not already list in full. Answers, in order of preference: stored - the text is a listed value, or folds to one, and the reply carries the spelling a predicate must use; definition - the text names what a value's note says it means; nearest - the listed values closest to the text, ranked; none; or unavailable where the column publishes no value list, lost it on the latest print, or redacts it. Every reply carries the column's coverage and how many values the print listed, plus a caveat sentence wherever that list is a sample - a spelling absent from a sample is not evidence it is absent from the column. An exhaustive list of at most fifty values rides along whole as domain, so a small vocabulary needs one call; on a table read in part, exhaustive is false, the reply carries the table's scope and row_count, and domain is the scanned rows' whole domain. Paged: every page repeats the scalar keys; the answer list comes before domain.

get_manifestA

Return the print's index for a connection - its tables and the files each has, not a semantic catalogue of what they mean. Use it for an index field no other tool projects; for table names, row counts and staleness, list_tables with detail: true is shorter and already judges each table's freshness. The tables map is paged in FQN order with total and next_cursor; every other key of the document rides the first page whole, failed_tables filtered by pattern like tables.

get_diffA

Answer what changed between the database's last two prints: the recorded diff, whose summary counts every kind of change and whose changes list names each one - tables and columns added, removed or retyped, relationships changed, statistics that drifted. A statistic with no drift event did not change between the two runs; a table counted in unevaluated_tables was not compared. The changes list is paged in recorded order with total and next_cursor; every other key of the document rides the first page whole. A table's current state, rather than what changed, is get_table_context's answer.

get_referenceA

Look up the dbprint format specification or the assertion DSL specification by section number, or the reading guide by heading: what a print's field means, or what a finding's spec_ref (e.g. '§2.2.4') refers to. A section returns its own text and lists its direct subsections, each read by its own number or heading; omit section for the heading tree. The guide is the one this dbprint version ships, not the copy stored with a print. Paged like get_table_context's md. Depends on no connection or print; what one print's tables hold is get_table_context's and list_tables' answer.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
spec referenceThe spec specification, whole. get_reference returns one section by number
assertions referenceThe assertions specification, whole. get_reference returns one section by number
production manifestIndex of the tables in connection production's print. list_tables with detail: true projects it per table with a freshness verdict; get_manifest returns it filtered by pattern
production diffWhat changed between the last two prints of connection production, without events about a join a person rejected. get_diff returns it filtered by table or kind
production reading guideHow to read this print's fields - vocabulary, traps and reading order. Read it before interpreting a field no tool description explains
production connection notesNotes people wrote on the whole database; get_table_context carries them on every table it reads
arboretum.fixture.shape_probe ddlarboretum.fixture.shape_probe: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.fixture.shape_probe statisticsarboretum.fixture.shape_probe: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.fixture.shape_probe relationshipsarboretum.fixture.shape_probe: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.accession ddlarboretum.seedbank.accession: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.accession statisticsarboretum.seedbank.accession: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.accession relationshipsarboretum.seedbank.accession: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.accession descriptionarboretum.seedbank.accession: The table's prose description, written by people. get_table_context has it
arboretum.seedbank.accession statistics_annotationsarboretum.seedbank.accession: Column and value notes people wrote. get_table_context includes them, and search_columns `text` searches them
arboretum.seedbank.accession relationships_annotationsarboretum.seedbank.accession: Notes people wrote on joins, including the joins a person rejected and the ones a person added; no other resource or tool lists a rejected join
arboretum.seedbank.accession_summary ddlarboretum.seedbank.accession_summary: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.accession_summary statisticsarboretum.seedbank.accession_summary: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.accession_summary relationshipsarboretum.seedbank.accession_summary: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.accession_summary statistics_annotationsarboretum.seedbank.accession_summary: Column and value notes people wrote. get_table_context includes them, and search_columns `text` searches them
arboretum.seedbank.accession_summary relationships_annotationsarboretum.seedbank.accession_summary: Notes people wrote on joins, including the joins a person rejected and the ones a person added; no other resource or tool lists a rejected join
arboretum.seedbank.collector ddlarboretum.seedbank.collector: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.collector statisticsarboretum.seedbank.collector: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.collector relationshipsarboretum.seedbank.collector: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.collector descriptionarboretum.seedbank.collector: The table's prose description, written by people. get_table_context has it
arboretum.seedbank.germination_by_taxon_mv ddlarboretum.seedbank.germination_by_taxon_mv: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.germination_by_taxon_mv statisticsarboretum.seedbank.germination_by_taxon_mv: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.germination_by_taxon_mv relationshipsarboretum.seedbank.germination_by_taxon_mv: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.germination_by_taxon_mv statistics_annotationsarboretum.seedbank.germination_by_taxon_mv: Column and value notes people wrote. get_table_context includes them, and search_columns `text` searches them
arboretum.seedbank.germination_trial ddlarboretum.seedbank.germination_trial: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.germination_trial statisticsarboretum.seedbank.germination_trial: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.germination_trial relationshipsarboretum.seedbank.germination_trial: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.germination_trial descriptionarboretum.seedbank.germination_trial: The table's prose description, written by people. get_table_context has it
arboretum.seedbank.germination_trial statistics_annotationsarboretum.seedbank.germination_trial: Column and value notes people wrote. get_table_context includes them, and search_columns `text` searches them
arboretum.seedbank.specimen_image ddlarboretum.seedbank.specimen_image: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.specimen_image statisticsarboretum.seedbank.specimen_image: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.specimen_image relationshipsarboretum.seedbank.specimen_image: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.storage_reading ddlarboretum.seedbank.storage_reading: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.storage_reading statisticsarboretum.seedbank.storage_reading: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.storage_reading relationshipsarboretum.seedbank.storage_reading: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.taxon ddlarboretum.seedbank.taxon: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.taxon statisticsarboretum.seedbank.taxon: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.taxon relationshipsarboretum.seedbank.taxon: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.taxon descriptionarboretum.seedbank.taxon: The table's prose description, written by people. get_table_context has it
arboretum.seedbank.taxon statistics_annotationsarboretum.seedbank.taxon: Column and value notes people wrote. get_table_context includes them, and search_columns `text` searches them
arboretum.seedbank.vault ddlarboretum.seedbank.vault: DDL as extracted. get_table_context returns it together with the table's joins and value lists
arboretum.seedbank.vault statisticsarboretum.seedbank.vault: The table's statistics file as written, including each column's sketch. get_table_context returns these statistics with scope, redaction and unmeasured fields applied; read this file raw only for the sketch
arboretum.seedbank.vault relationshipsarboretum.seedbank.vault: The table's joins file, without the joins a person rejected in relationships_annotations. get_table_context lists the same joins as its Joins list, each with its detection, plus the joins a person added there
arboretum.seedbank.vault statistics_annotationsarboretum.seedbank.vault: Column and value notes people wrote. get_table_context includes them, and search_columns `text` searches them

TDQS

A4.4/5.0

Scored across 7 tools

Disambiguation4/5

Each tool has a distinct primary purpose (read one table, list tables, search columns, resolve a value, index, diff, spec lookup), and descriptions explicitly cross-reference each other to steer selection. There is minor residual overlap between list_tables and get_manifest (both expose table index info) and between get_table_context and get_manifest, but the descriptions clearly delineate the boundaries.

Naming Consistency5/5

All seven tools follow a clean verb_noun snake_case pattern: get_table_context, list_tables, search_columns, resolve_value, get_manifest, get_diff, get_reference. Consistent convention throughout.

Tool Count5/5

Seven tools is well-scoped for a database-context/print-reading server, and each tool maps to a distinct capability rather than a redundant variant.

Completeness4/5

The surface covers discovery (list_tables, search_columns), inspection (get_table_context), value resolution (resolve_value), raw index (get_manifest), change tracking (get_diff), and spec docs (get_reference). For a read-only context server this is near-complete; only tangential gaps like listing/selecting connections or refreshing prints are absent, both reasonably out of scope.