Skip to main content
Glama

grist_add_columns

Add up to 50 new columns to an existing Grist table by defining IDs, labels, and types; returns column IDs and requires user approval.

Instructions

Add new columns to an existing table of a Grist document. Returns {doc_id, table_id, column_ids}. Use grist_create_table to create a new table and grist_list_tables to see the existing columns. Requires user approval.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
doc_idYesThe document's id from grist_list_documents, or the Document ID under the document's Settings (gear icon) in Grist. Not the shorter id in the document's address.
reasonYesOne sentence: why are you calling this tool right now?
columnsYesA JSON array of {"id": <column id>, "label": <optional label>, "type": <optional type>} objects. Types: Text (default), Numeric, Int, Bool, Date, Choice, ChoiceList, Any, Ref:<TableId>, RefList:<TableId>. 1 to 50 columns.
table_idYesThe table id from grist_list_tables, such as Contacts (not the label shown in Grist).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv6.2.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare non-read-only, non-idempotent, non-destructive, and the description adds two pieces of context not in the structured data: the 'Requires user approval' gate and the return shape {doc_id, table_id, column_ids}. It does not explain behavior on duplicate column ids or partial failure.

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, zero filler, with the core action front-loaded and the conditional guidance and approval requirement following. Every sentence 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?

There is no output schema, so stating the return shape is genuinely useful, and the approval requirement plus sibling routing cover the key operational facts. Remaining gaps (duplicate-column behavior, 1-50 limit context) are minor.

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 description coverage is 100%, so the schema already documents doc_id, table_id, columns, and reason in detail, including the column-object JSON shape and allowed types. The description adds no parameter-level meaning beyond that, matching the baseline 3.

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?

States a specific verb+resource (add columns) scoped to an existing Grist table, and explicitly names sibling tools grist_create_table and grist_list_tables. An agent can distinguish this from creating a table or listing tables without opening any schema.

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?

Points to grist_create_table for new tables and grist_list_tables for discovering existing columns, which routes the agent away from misuse. It stops short of an explicit 'use this when X' condition or exclusions (e.g. what happens if a column id already exists).

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

Deploy Server

Other Tools