Skip to main content
Glama
questdb

mcp-server-questdb

Official

get_cell

Inspect a notebook cell's details: value, type, UI flags, last-run status, and refresh errors. Request full content to avoid truncation before rewriting.

Instructions

Get full details of a cell (value, kind via type, UI flags, chart config, last-run status + trimmed error). Three fields are LIVE-ONLY — present only while the notebook is open in the console, so absence never means "not refreshing" or "not blocked": refreshing: true while a refresh is in flight (the visible rows are still the previous round's), last_refresh_error when the last round left a failure, and auto_refresh_blocked: "contains_write" on cells auto-refresh will not run. last_run_status is unrelated to these: it stays the outcome of the last completed RUN, and a refresh never changes it. type:"markdown" marks a prose cell whose value is markdown source; SQL cells omit type. Never includes query result data. By default the value is capped at 4 KB; a capped response carries truncated: true and full_length. A truncated value is NOT the cell's real content — NEVER write it back (update_cell / apply_notebook_state value); re-read with get_full_content: true first, or keep the cell with preserve_value: true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cell_idYes
buffer_idYes
get_full_contentYesTrue returns the verbatim full value with no cap (errors above 1 MB). Required before rewriting any cell whose read came back truncated. Null/omitted applies the 4 KB cap.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.3.0

TDQS

A4.4/5.0
Behavior5/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, and it is exceptionally thorough. It explains live-only field semantics, that refreshing is reported separately from last_run_status, that markdown cells have type:'markdown' while SQL cells omit type, the 4 KB cap, truncation flags, and that a truncated value is not the cell's real content. This is far more transparent than typical descriptions.

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 long and dense, but every sentence carries load-bearing information: output contents, live-only fields, refresh semantics, markdown vs SQL, truncation, and safe writeback behavior. The purpose is front-loaded and the critical warnings are grouped well, though the long parenthetical constructions make it harder to scan quickly.

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

Completeness5/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 remarkably complete for an agent to call the tool correctly. It covers the return value's composition, the cap and how to bypass it, the meaning and non-meaning of absence for live-only fields, and the dangerous destructive interaction of writing back truncated values. The only small gap is the semantics of buffer_id and cell_id, but those are standard identifiers and the context is sufficient.

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 only 33%, so the description must compensate for undocumented parameters. get_full_content is well explained both in the schema and the description, but buffer_id and cell_id are never defined or contextualized beyond the tool name and the word 'cell'. The description adds meaningful semantics around truncation and content retrieval, but it does not fully compensate for the low schema coverage of the required identifiers.

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

Purpose5/5

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

The description names a specific verb and resource ('Get full details of a cell') and enumerates the exact content: value, type, UI flags, chart config, last-run status, and trimmed error. It also clarifies what the tool is not ('Never includes query result data'), distinguishing it from query/run siblings.

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

Usage Guidelines4/5

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

The description gives concrete usage guidance: it warns against writing a truncated value back via update_cell/apply_notebook_state, tells the agent to re-read with get_full_content: true first or use preserve_value: true, and explains when absence of live-only fields should not be interpreted as absence of activity. It does not explicitly enumerate sibling alternatives for when to choose this tool over list_cells or get_notebook_state, but the guidance is strong.

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

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/questdb/mcp-server-questdb'

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