gtable
gtable.appOpen the Studio
AgentsTools

Tools

How gtable's MCP tools are named, what their hints mean, how lists page, and what is deliberately not a tool.

Every MCP tool is an operation of the REST API, generated from the same definition. A new endpoint is a new tool the day it ships, and the two cannot describe different things.

Names

A tool is named after the operation it mirrors, with the dots turned into underscores: records.list is records_list, schema.get is schema_get, rules.simulate is rules_simulate. Every page of the App API and Builder API references names its tool. Operation names never change silently: renaming one would break every agent and script written against it, so an old name is deprecated first and kept until a published date.

Hints

Each tool carries the MCP annotations a client uses to decide when to ask you first:

HintSet when
readOnlyHintthe operation only reads
destructiveHintit deletes, or rewrites many rows at once: a bulk delete, a SQL update
idempotentHintcalling it twice is the same as calling it once

A client that asks before destructive calls therefore asks at the right moments.

Lists

A list tool returns { data, meta }. While meta.hasMore is true, pass meta.nextCursor back as cursor for the next page. The tool descriptions ask the model to narrow its filter first, because walking pages spends a conversation’s context on paging rather than on thinking. Lists that are short by nature (a record’s comments, your saved views of a table) take a limit and have no cursor.

Errors come back as results

A refusal is returned as a tool result marked isError, with the same code and message the REST API would give, not as a protocol error. The model reads it and adjusts. See Errors.

What is not a tool, on purpose

OperationWhy notInstead
Uploading a filea tool call is JSON a model writes, and a file is bytesupload with the REST API, then attach the returned descriptor with an ordinary record write, which is a tool
Making or revoking a keya credential that can mint credentials turns one leak into a permanent onea person, in a signed-in browser
A person’s set-password linkit is a way to become that personhanded over by a builder, from the Studio

Large writes

Saving a page’s code sends the whole file. Through MCP that means the model writes every byte as tokens, which is slow and expensive for a large page. For anything big, use the REST API (PUT …/pages/{pageId}/code) from a script.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search gtable documentation and read it in full, instead of answering from memory.

https://gtable.app/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://gtable.app/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.