Skip to main content
Glama

fdic-banks-mcp-server

Query staged dataframes with SQL

fdic_dataframe_query
Read-onlyIdempotent

Run one read-only SELECT (DuckDB SQL) across the df_ dataframes that fdic_query_financials and fdic_get_deposits staged or an earlier register_as saved; joins, aggregates, window functions, and CTEs work. Before writing SQL, pass each table name to fdic_dataframe_describe to read its columns. DOUBLE columns come back as JSON numbers and dollar columns are thousands of US dollars; BIGINT results such as COUNT(*) come back as strings, so CAST them to INTEGER or DOUBLE for arithmetic. Writes, DDL, file-reading functions, and system catalogs are rejected. register_as materializes the result as a new dataframe with a fresh TTL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sqlYesOne SELECT against df_<id> tables named in a dataset field or by fdic_dataframe_describe, up to 20,000 characters.
previewNoRows to return inline (0–10,000); defaults to row_limit, and a value above row_limit is treated as row_limit. Set it low when register_as keeps the full result.
row_limitNoHard cap on rows materialized (1–10,000). A query matching more stops here and row_count_capped comes back true; use register_as to keep the whole result.
register_asNoMaterialize the full result as a new dataframe under this unused name (df_XXXXX_XXXXX: uppercase letters and digits). A name already staged fails as register_as_clash — including on a repeat of a call that already saved it. The live dataframes share a 1,000,000-row budget: the oldest are dropped to make room, and a result over the budget on its own fails as register_as_too_large. Omit to return rows only.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
capNoThe cap that bound: preview when lower, else row_limit.
rowsNoResult rows, bounded by preview and row_limit.
errorNoPresent when the call failed. Absent on success.
shownNoRows returned inline.
noticeNoGuidance when the query returned no rows or a cap withheld some.
columnsNoColumns in projection order.
row_countNoRows the query produced, up to row_limit; with register_as, the exact count of the new dataframe.
truncatedNoTrue when rows were withheld by preview or row_limit.
expires_atNoWhen the register_as dataframe is dropped (ISO 8601).
registered_asNoName of the dataframe register_as created.
row_count_cappedNoTrue when the query matched more rows than row_limit, so row_count is that cap.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.