airtable-user-mcp
The airtable-user-mcp server provides 62 tools for comprehensive Airtable management, leveraging Airtable's internal API to cover features beyond the official REST API.
Schema & Read (9 tools)
Get full base schema, list tables, get table/field/view details, and retrieve detailed view configuration (filters, sorts, grouping, column order, visibility, row height, etc.)
Table Management (3 tools)
Create, rename, and delete tables (delete requires an
expectedNamesafety guard)
Field Management (8 tools)
Create any field type, including computed fields (formula, rollup, lookup, count) not supported by the official API
Validate formula expressions, update field config/formulas, rename, update descriptions, duplicate (optionally copying values), and delete fields (with dependency checking)
View Management (20 tools)
Create views (grid, form, kanban, calendar, gallery, gantt, list), duplicate, rename, delete, and update descriptions
Set/append filters (nested AND/OR), apply sorts and grouping (replace or append), show/hide and reorder columns, change row height
Sidebar Sections (4 tools)
Create, rename, move, and delete sidebar sections (deletion auto-promotes contained views)
Record Templates (8 tools)
Create, rename, describe, set cells/columns, duplicate, apply, and delete saved row scaffolds
Form Metadata (2 tools)
Update description, redirect URL, attribution, and branding for legacy form views
Extension Management (7 tools)
Create, install, enable/disable, rename, duplicate, and remove extensions; create dashboard pages
Tool/Profile Management (1 tool)
List and switch profiles (read-only, safe-write, full, custom); toggle individual tools or categories
Provides tools for managing Airtable bases with capabilities not available through the official REST API, including schema inspection, field management (formula/rollup/lookup/count fields), view configuration (filters, sorts, grouping), field metadata management, and extension management.
Supports integration with the Amp IDE as one of the AI-enabled editors where the MCP server can be auto-configured through the VS Code extension.
Airtable Formulas, Scripts, Automation, MCP & LSP
Formula, script & automation editor · MCP server (72 tools + manage_tools) · Language server · AI skills
Not affiliated with Airtable Inc. This is a community-maintained project.
Active development — Breaking changes may land between minor versions. Pin to a version if you need stability.
Top Features
Feature | What it does | File types |
Formula Editor | Syntax highlighting, IntelliSense, beautify / minify |
|
Script Editor | Completions, hover docs, diagnostics |
|
Automation Editor | Completions, hover docs, diagnostics |
|
MCP Server (72 tools + | Full Airtable internal API — schema, views, fields, records, extensions, templates | — |
Language Server (LSP) | Standalone multi-editor support — Neovim, Zed, Helix, OpenCode | All above |
IDE Auto-Setup | One-click MCP config for Cursor, Windsurf, Claude Desktop, Cline, Amp | — |
AI Skills | Pre-built Airtable-specific rules and workflows for AI coding assistants | — |
Daemon + Tunnel | Persistent background server; optional Cloudflare or ngrok remote access | — |
Tool Profiles |
| — |
OS Keychain Auth | Browser-based Airtable login with SSO/2FA — credentials in your OS keychain | — |
Related MCP server: Airtable MCP Server
Why this exists
Airtable's public Web API has never exposed some of the most common tasks builders actually need: creating a formula field, tweaking a view's filter set, installing an extension, or validating a formula before it breaks production. The official Airtable MCP server is a thin wrapper over that same REST API, so it inherits every one of those gaps.
airtable-user-mcp is an add-on to the official Airtable MCP, not a replacement. It uses Airtable's own internal API (the one the web UI uses) to cover exactly the surface area the REST API can't reach. Register both servers in your AI client and your assistant gets the full Airtable automation experience — records over HTTP via the official MCP, plus schema, formulas, views, and extensions via this one.
What airtable-user-mcp adds on top of the official Airtable MCP
This is a coverage map, not a "pick one" decision — the two servers are complementary and designed to run side-by-side.
Capability | Official Airtable MCP | airtable-user-mcp |
Total tools | ~17 | 73 (72 + |
Auth model | Personal Access Token or OAuth, per-scope setup | Log in once with your normal Airtable account (SSO/2FA supported) |
Transport | HTTP (remote) | stdio (local, private) |
Data never leaves your machine | ❌ Requests go through | ✅ Runs locally against Airtable's API |
Schema read (bases, tables, fields, views) | Partial (no view config) | Full — filters, sorts, groups, visibility, row height, descriptions |
Read records with resolved field values | Partial | ✅ |
Search records by text (incl. lookup fields) | ❌ | ✅ |
Duplicate records | ❌ | ✅ |
Create formula fields | ❌ | ✅ |
Create rollup fields | ❌ | ✅ |
Create lookup / multipleLookupValues fields | ❌ | ✅ |
Create count fields | ❌ | ✅ |
Update formula text of an existing field | ❌ | ✅ |
Validate a formula before applying | ❌ | ✅ |
Rename / duplicate / safely delete fields | Partial (no duplicate, no dependency summary) | ✅ with |
Create views (grid/form/kanban/calendar/gallery/gantt/list) | ❌ (API has no create-view endpoint) | ✅ |
Set/append view filters (nested AND/OR) | ❌ | ✅ |
Set view sorts | ❌ | ✅ |
Set view grouping | ❌ | ✅ |
Change column order | ❌ | ✅ |
Show/hide columns in a view | ❌ | ✅ |
Change row height | ❌ | ✅ |
Duplicate a view with its full configuration | ❌ | ✅ |
View descriptions, cell wrap, covers, color config, calendar dates, frozen columns | ❌ | ✅ |
Sidebar sections (create, rename, move, delete) | ❌ | ✅ |
Record templates (create, pre-fill, duplicate, apply, delete) | ❌ | ✅ |
Form metadata (description, redirect, attribution, branding) | ❌ | ✅ |
Extension / block management (install, enable, rename, duplicate, remove) | ❌ | ✅ |
Create dashboard pages | ❌ | ✅ |
Daemon self-diagnosis (session dead? browser busy? daemon gone?) | ❌ | ✅ |
Tool profiles & per-tool toggles | ❌ | ✅ read-only (12) / safe-write (54) / full (72) / custom |
Destructive-action safety guards | Relies on token scopes | ✅ |
Batch record create limit | 10 / request | Uses the same Airtable limit; no added restriction |
VS Code / Cursor / Windsurf / Cline / Amp one-click install | Manual JSON edit per IDE | ✅ One click via the companion extension |
Formula editor with IntelliSense | ❌ | ✅ (VS Code extension) |
Credentials storage | You manage the PAT | OS keychain, auto-refresh |
Plan requirement | Airtable plan with API access + token scopes | Any plan you can log into |
Price | Free | Free, MIT |
Sources: Airtable's official MCP docs, Airtable Web API reference, and the UNSUPPORTED_FIELD_TYPE_FOR_CREATE rollup thread.
Use both MCPs together
npx -y airtable-user-mcp login # one-time browser login
claude mcp add airtable --scope user -- npx -y airtable-user-mcp # Claude Codeairtable-user-mcp is additive. Register the official Airtable MCP following Airtable's setup guide, then add this one alongside it in the same mcpServers block:
{
"mcpServers": {
"airtable-user-mcp": {
"command": "npx",
"args": ["-y", "airtable-user-mcp"]
}
}
}Your MCP client will expose every tool from both servers. The two entries are independent — rename the keys (airtable, airtable-official, airtable-user-mcp, etc.) however makes sense for your workflow.
What's In This Repo
This monorepo ships three products from one source tree:
Product | Install | |
Airtable Formulas, Scripts, Automation, MCP & LSP — VS Code extension | ||
airtable-user-mcp — Standalone MCP server |
| |
airtable-user-lsp — Airtable language server |
|
Demo
Features
MCP Server (72 Tools + manage_tools)
Manage Airtable bases with capabilities not available through the official REST API:
Category | Tools | Highlights |
Schema Read | 11 | Full schema inspection — bases, tables, fields, views, sidebar sections, record templates; download all formula fields to local files |
Record Read | 1 |
|
Record Write | 4 |
|
Record Destructive | 1 |
|
Table Management | 3 | create / rename / delete tables |
Field Management | 9 | Create formula / rollup / lookup / count fields, validate formulas, update descriptions, delete single or bulk |
View Configuration | 20 | Filters, sorts, grouping, columns, freezing, row height, covers, color rules, calendar dates, create / duplicate / rename / delete |
Sidebar Sections | 4 | Create, rename, move-into-section, delete (auto-promotes contained views to ungrouped) |
Record Templates | 8 | Create / rename / describe / set cells / set columns / duplicate / apply / delete saved row scaffolds |
Form Metadata | 2 | Description, redirect URL, attribution, copy-to-respondent, branding (legacy form views) |
Extension Management | 7 | Create, install, enable/disable, rename, duplicate, remove extensions |
Tool Management | 1 | List profiles, switch profile, toggle tools/categories (meta-tool, always enabled — not part of any profile) |
Base Sync | 1 |
|
Daemon Control | 1 |
|
See the full tool reference in packages/mcp-server/README.md.
One shared daemon
The extension starts the shared MCP daemon whenever a tool call needs one, so every VS Code window uses one Airtable browser session instead of one per window — that duplication is what produced most "session dead" errors. A daemon you stop from the dashboard stays stopped, and if it cannot start, the extension falls back to a per-window server so your tools keep working.
Because a daemon is usually running, other MCP clients on the same machine (Claude Desktop, Cursor, Cline, Amp) attach to it and therefore run under its auth mode and HTTP client rather than their own — deliberately, since two browsers on one Airtable profile crash. Each such client prints one stderr line saying so. See Sharing one daemon across clients.
LSP Server
airtable-user-lsp is a standalone language server for Airtable formula, script, and automation files — works in any LSP-capable editor, not just VS Code.
# stdio mode — works standalone, no daemon needed
npx airtable-user-lsp --stdioFeatures: diagnostics, completions, hover documentation, and signature help for .formula, .ats, and .ata files.
When the daemon is running, it auto-spawns airtable-user-lsp --tcp so multiple editors share one language server instance. The TCP port is written to ~/.airtable-user-mcp/daemon.lock as port_lsp.
See packages/lsp-server/README.md for per-editor configuration (Neovim, Zed, OpenCode, Helix).
Supported IDEs
The extension auto-configures MCP for all major AI-enabled editors:
Claude Desktop | Claude Code | Cursor | Windsurf | Cline | Amp |
Don't use VS Code? Use the standalone MCP server directly:
npx airtable-user-mcpFind Us
Registry | Link |
VS Code Marketplace | |
npm | |
Open VSX | |
MCP Registry | |
Glama | |
PulseMCP | |
MCP.so | |
Video demo — managing views, computed fields & extensions with Claude Code |
Requirements
VS Code ^1.100.0 (or any fork exposing the
McpServerDefinitionProviderAPI)Node.js — bundled via the VS Code runtime; no separate install needed
Google Chrome (or Edge / Chromium) — the Airtable login flow uses Patchright in headless mode. Falls back to
msedgeon Windows andchromiumon Linux. The extension shows an actionable warning if no supported browser is detected.
Development
This is a pnpm monorepo.
Package | Description |
| VS Code extension host (TypeScript + tsup) |
| React dashboard webview (Vite + Tailwind v4) |
| Shared types and message protocol |
|
|
|
|
| Build tooling (esbuild bundler, dep vendoring) |
pnpm install # install all packages
pnpm build # build shared → webview → mcp bundle → extension
pnpm package # build + create airtable-formula-X.Y.Z.vsix
pnpm test # run all unit tests
pnpm dev # start webview dev server (browser preview)How the MCP server is bundled: scripts/bundle-mcp.mjs esbuilds packages/mcp-server/src/ into packages/extension/dist/mcp/. Then scripts/prepare-package-deps.mjs vendors patchright, patchright-core, otpauth, impit and @ngrok/ngrok into dist/node_modules/ before vsce package runs, so an installed extension needs no npm install at runtime.
Platform-specific VSIXes. impit (the Chrome-TLS HTTP client) and @ngrok/ngrok (the ngrok tunnel provider) keep their compiled native binary in separate per-platform npm packages, and only the one matching the build machine is ever installed. A single VSIX therefore cannot carry working native binaries for every platform. Instead we publish one VSIX per platform, each vendoring only its own binaries — VS Code and Open VSX hand each user the build matching their machine. Supported targets:
Target |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
linux-armhf (32-bit ARM) is not published: impit ships no arm-gnueabihf build, so an armhf VSIX would advertise airtableFormula.mcp.httpClient: "impit" and then fail with "Cannot find native binding". No untargeted fallback is published either, for the same reason.
The matrix is defined once in scripts/vsix-targets.mjs; versions and tarball hashes are pinned to pnpm-lock.yaml. scripts/package-targets.mjs builds every target and scripts/assert-vsix-binaries.mjs verifies each artifact contains exactly its own platform's .node files and no other's — byte-for-byte, against the SHA-256 digests in scripts/native-binary-digests.json, which are recorded from tarballs verified against pnpm-lock.yaml's integrity hashes. Filenames, package.json os/cpu, and a magic number are all labels an artifact carries about itself and cannot distinguish an x64 binary from an ARM64 one, or a glibc build from a musl one; an exact digest can.
Together these are eight target artifact packaging/assertion smokes — eight .vsix files built and their contents verified on one machine. They are not runtime smokes of eight native bindings: any single host can only load the binding compiled for itself, so only the host target's binding receives a genuine runtime load. Verifying the other seven by exact content is the strongest claim a single-host build can make about them.
The standalone npm package airtable-user-mcp is unaffected and stays universal — npm resolves the right optional dependency on your own machine at install time.
Support This Project
This project is built and maintained with the help of AI coding tools. If you find it useful and want to support continued development (new tools, updates, bug fixes), you can contribute by gifting Claude Code credits — the primary tool used to build this project.
Interested? Open an issue or reach out to discuss feature requests and sponsorship.
License
Available Tools
67 toolsapply_record_templateA
Apply (instantiate) a record template to create a new record pre-filled with the template's field values. Returns the new record data.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| templateId | Yes | The template ID (rtpXXX) to instantiate | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds that it creates a new record and returns the data. It does not disclose additional behaviors like required permissions, reversibility, or side effects. The description adds modest value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise, front-loaded with the action, and contains no redundant information. It effectively communicates the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create operation with low complexity, the description covers the essential purpose and return value. It lacks mention of prerequisites (e.g., template existence) or error conditions, but the annotations and schema fill in some context. Overall, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description does not add any extra detail about parameter semantics beyond what the schema provides. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'apply' and the resource 'record template', indicating it instantiates a template to create a new record. It differentiates from siblings like create_record_template (which creates the template itself) and duplicate_record_template (which duplicates an existing template).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a pre-filled new record is needed from a template, but it does not provide explicit when-to-use, when-not-to-use, or alternative methods. The context is clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_view_sortsAIdempotent
Apply sort conditions to a view. Default mode replaces all existing sorts — pass an empty array with operation="replace" to clear. Use operation="append" to add new sorts on top of the view's existing sort stack without rewriting them.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID (e.g. "viwXXX") | |
| sorts | Yes | Array of sort conditions. Empty array [] clears all sorts when operation="replace". | |
| operation | No | How the given sorts interact with existing sorts. "replace" (default) overwrites; "append" adds the provided sorts after the existing sort stack (secondary priority). | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and non-destructive writes. The description adds behavioral details on mode behavior and clearing, which complements the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, directly stating the tool's purpose and key usage modes, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain return values, but it adequately covers the input behavior and modes. It is sufficiently complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining the effect of operations and how to clear sorts, going beyond the schema's basic parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it applies sort conditions to a view, distinguishes between replace and append modes, and is distinct from sibling tools which handle other view modifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use replace vs append, including how to clear sorts. It does not explicitly mention alternatives or when not to use, but the context is sufficient for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_extensionA
Create a new extension (block) in an Airtable base. Returns the block ID needed for installation. Use this to register custom extensions before installing them.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| name | Yes | Name for the extension | |
| releaseId | Yes | The release ID of the extension (e.g. "blrXXX") | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations do not provide rich behavioral hints (readOnlyHint=false, destructiveHint=false). Description adds that it returns the block ID, but does not disclose side effects, prerequisites, or limitations beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous information. Front-loaded with the key action and result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema documentation and a clear purpose, the description covers the main usage. Could mention error conditions or prerequisites, but overall adequate for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have descriptions in the schema, achieving 100% coverage. The description does not add additional context beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a new extension (block) in an Airtable base' with specific verb 'create' and resource 'extension'. Distinguishes from sibling 'install_extension' by mentioning it returns block ID needed for installation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to register custom extensions before installing them', indicating the workflow order. Does not explicitly list when not to use, but context implies creation before installation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_extension_dashboardB
Create a new extension dashboard page in a base. Extensions are installed onto dashboard pages.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| name | Yes | Name for the dashboard page | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only (false) and not destructive (false). The description only says it creates a page and extensions are installed onto it, but does not disclose side effects, required permissions, or what happens on failure. Since annotations already provide some safety info, the description adds minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, efficient, and to the point. Every word adds value, no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 3 parameters and no output schema, the description does not explain what the tool returns (e.g., a page ID), error conditions, or how it relates to other dashboard tools. It lacks completeness for an agent to fully understand usage without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are documented in the input schema (100% coverage). The description does not add any extra meaning beyond what the schema already provides for appId, name, and debug. With high schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and the resource 'extension dashboard page', with context 'in a base'. It also explains that extensions are installed onto dashboard pages, distinguishing it from sibling tools like 'create_extension' which likely creates the extension itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like 'install_extension' or 'create_extension'. It provides no prerequisites, exclusions, or context about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_fieldA
Create a new field in an Airtable table. Supports all field types including computed fields (formula, rollup, lookup, count) that are not available via the official API.
FIELD TYPES (fieldType parameter): Supported names: "text", "multilineText", "number", "checkbox", "date", "singleSelect", "multipleSelects", "rating", "formula", "rollup", "lookup", "count" Friendly aliases (auto-normalized): "url" → type: "text" with validatorName = "url" "email" → type: "text" with validatorName = "email" "phone" / "phoneNumber" → type: "text" with validatorName = "phoneNumber" "dateTime" → type: "date" with isDateTime: true
TYPE OPTIONS by fieldType: formula: { formulaText: "..." } rollup: { relationColumnId: "fldLINK", foreignTableRollupColumnId: "fldTARGET", formulaText: "SUM(values)" } (formulaText is REQUIRED — e.g. "SUM(values)", "COUNTA(values)", "IF(OR(values='X'),1,0)")) (old keys fieldIdInLinkedTable/recordLinkFieldId are auto-translated for backward compat) lookup: { relationColumnId: "fldLINK", foreignTableRollupColumnId: "fldTARGET" } (old keys fieldIdInLinkedTable/recordLinkFieldId are auto-translated for backward compat) count: { recordLinkFieldId } number (integer): { format: "integer", negative: false } number (currency): { format: "currency", symbol: "$", precision: 2, negative: false } number (percent): { format: "percentV2", precision: 2, negative: false } date / dateTime: { dateFormat: "Local"|"us"|"european"|"iso"|"friendly", timeFormat: "12hour"|"24hour", timeZone: "UTC"|"client"|, shouldDisplayTimeZone: true|false, isDateTime: true (auto for dateTime) } singleSelect: { choices: [{ name: "Option A", color: "blue" }], default: "selXXX" } multipleSelects: { choices: [{ name: "PC", color: "blue" }, { name: "Xbox", color: "cyan" }], default: ["selXXX"] } text / multilineText / checkbox / rating: omit typeOptions entirely — passing {} causes a 422
SELECT CHOICES:
Pass choices as an array [{ name, color? }] or as an object { selXXX: { name, color? } }.
The client auto-adds id inside each choice value, generates choiceOrder, and sets disableColors: false.
Color names (confirmed): "blue", "cyan", "teal", "green", "yellow", "orange", "red", "pink", "purple", "gray".
"default" sets the pre-selected value: string ID for singleSelect, array of IDs for multipleSelects.
To add/remove choices without losing existing ones, call get_table_schema first and include ALL choices in the update.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID to create the field in (e.g. "tblXXX") | |
| name | Yes | Name for the new field | |
| fieldType | Yes | The field type. Canonical or friendly alias — see tool description for full list. | |
| typeOptions | No | Type-specific config. See tool description for shape per fieldType. | |
| description | No | Optional field description | |
| insertAfterFieldId | No | Optional: field ID to insert after. Omit to append at end. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation flags (readOnlyHint: false, destructiveHint: false) are clear. The description adds context like auto-normalization of aliases and the need to call get_table_schema to preserve existing choices, going beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but verbose with many details and repeated examples. It is well-organized with headings but could be more concise for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, many field types, no output schema), the description covers all necessary details: field types, typeOptions structures, choice formats, color names, and backward compatibility, making it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds extensive meaning for typeOptions and choices, including examples, required keys, and default behaviors, significantly enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new field in an Airtable table' and explicitly mentions support for all field types including computed fields not available via the official API, distinguishing it from sibling tools like 'create_formula_field'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive guidance on when to use each field type with typeOptions and choices. However, it does not explicitly mention when NOT to use this tool or compare with siblings like 'create_formula_field'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_formula_fieldA
Create a new formula field — shorthand for create_field with type "formula". Use create_field for all other field types (singleSelect, rollup, number, etc.). Returns { columnId }.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID (e.g. "tblXXX") | |
| name | Yes | Name for the new formula field | |
| formulaText | No | The formula expression | |
| formulaFilePath | No | Path to a local .formula or .fx file. When provided, reads formula from file instead of formulaText (unblocks large formulas that exceed LLM output limits). The # AT: metadata header is stripped automatically. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond annotations: explains return value {columnId} and behavior of formulaFilePath (strips metadata). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 params, no output schema, and minimal annotations, description covers purpose, differentiation, parameter alternatives, and return value. Lacks permissions or error info, but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. Description adds value by explaining formulaFilePath as alternative to formulaText and debug flag purpose, lifting score to 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a new formula field' and explicitly distinguishes from sibling create_field by specifying it's a shorthand for formula type only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool vs create_field (formula vs other types) and explains the formulaFilePath alternative for large formulas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_record_templateA
Create a new record template for a table. Returns the generated templateId (rtp-prefixed). After creating, use set_record_template_cell to pre-fill field values.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID (tblXXX) | |
| name | No | Template name. Default: "New template" | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations offer no help (readOnlyHint=false, destructiveHint=false); the description only states it creates, omitting details on idempotency, error conditions, or side effects. The agent lacks insight into behavioral traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose, return value, and a follow-up step. No extraneous information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core function and return, but lacks explanation of the debug parameter, default name behavior, and broader context of record templates within the sibling tool set. Given no output schema, more detail could be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 4 parameters with descriptions (100% coverage); the description adds no extra meaning beyond the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a record template for a table, specifies the return value (rtp-prefixed templateId), and differentiates from siblings like set_record_template_cell by providing a sequential workflow hint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a single follow-up recommendation (use set_record_template_cell) but does not contrast with other sibling tools like apply_record_template or duplicate_record_template, nor does it specify when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tableA
Create a new table in an Airtable base. Returns the generated table ID. The table starts with default fields (Name, Notes, Attachments, Status, etc.) — use list_fields after creation to inspect them.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| name | Yes | Name for the new table | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that the tool returns a table ID and creates default fields, but does not disclose side effects like duplicate name handling or quotas. It provides basic behavioral context but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and return value. Every sentence adds value: purpose, return, default fields, and post-creation hint. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with no output schema, the description covers the return value, default fields, and suggests a follow-up action. It does not address constraints like name uniqueness or limits, but given the low complexity, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no new meaning beyond the schema for appId and name. The debug parameter description is identical to the schema. With high coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new table in an Airtable base. Returns the generated table ID.', which precisely identifies the action and resource. It distinguishes from sibling tools like delete_table or rename_table, and provides additional context about default fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating the action and suggesting 'use list_fields after creation to inspect them', but does not explicitly define when to use this tool versus alternatives like create_field or when not to use it. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_viewB
Create a new view in an Airtable table. Optionally copy configuration from an existing view. View types: "grid", "form", "kanban", "calendar", "gallery", "gantt", "levels" (list view).
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID to create the view in | |
| name | Yes | Name for the new view | |
| type | No | View type: "grid", "form", "kanban", "calendar", "gallery", "gantt", "levels" (list). Default: "grid". | |
| copyFromViewId | No | Optional: view ID to copy configuration from (creates a fresh view with same settings). | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but the description does not elaborate on behavioral traits such as error handling, limits, or side effects. It adds no value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that convey the purpose and key options. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks an output schema, and the description does not mention return values, error cases, or prerequisites. Given the complexity and many sibling tools, more guidance on when to use this versus duplicate_view would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all parameters. The description adds minor context about optional copy and view types but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new view') and the resource ('Airtable table'). It also mentions the optional copy-from-existing feature and lists all view types, making it distinct from siblings like create_table or duplicate_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not explicitly state when to use it over alternatives like duplicate_view. The mention of copying configuration hints at a use case but lacks clear exclusions or context for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_view_sectionA
Create a new sidebar section in a table. Returns the new section ID (vsc-prefixed). Use move_view_to_section to populate it with views.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID (tbl-prefixed) | |
| name | Yes | Section name (emojis allowed, e.g. "🚀 Posting workflow") | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (only readOnlyHint=false, destructiveHint=false, etc.), so the description carries some burden. It reveals the return of a vsc-prefixed section ID, indicating a non-destructive write operation. However, it lacks details on error conditions, validation, or side effects beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. It provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with 4 parameters and no output schema, the description covers the purpose, return value, and a hint about the next tool. It is nearly complete but would benefit from explicitly stating that the section is created in the specified table (implied by parameters).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all parameters. The description adds no new parameter-level meaning, thus baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create'), resource ('new sidebar section'), and scope ('in a table'). It also distinguishes from the sibling tool 'move_view_to_section' by suggesting its use for populating, avoiding confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to use 'move_view_to_section' to populate the section with views, providing clear next steps. However, it does not specify when not to use this tool or any prerequisites (e.g., table existence).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fieldADestructive
Delete a field from an Airtable table. Requires fieldId AND expectedName as a safety guard — deletion is refused if the name does not match. ⚠️ Irreversible: deleted field data is permanently lost and cannot be recovered. Always checks downstream dependencies first (formula fields, lookups, rollups referencing this field); returns dependency info without deleting unless force=true.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| fieldId | Yes | The field/column ID to delete (e.g. "fldXXX") | |
| expectedName | Yes | The expected name of the field. Must match exactly or deletion is refused. | |
| force | No | When true, delete even if the field has downstream dependencies (other fields referencing it). Default: false. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds irreversibility warning, dependency check behavior, and force flag effect, all beyond annotations' destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with action and guard, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully explains all key aspects for a 5-param tool with no output schema: safety, irreversibility, dependencies, debug option.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning: expectedName as safety guard, force as dependency override, debug for diagnostics, beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'delete' and resource 'field from an Airtable table'. Distinct from siblings like 'delete_fields' and 'create_field'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains safety guard requiring expectedName and force parameter for dependencies, but doesn't explicitly contrast with delete_fields or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fieldsADestructive
Delete multiple fields from an Airtable table in a single call. Each entry requires fieldId and expectedName as a safety guard (deletion is refused if names do not match). Fields are processed sequentially and all are attempted even if some fail — partial results are always returned. Optionally writes a JSON checkpoint file after each deletion so the batch can be resumed if interrupted.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| fields | Yes | Fields to delete. Each entry must have fieldId and expectedName. | |
| force | No | When true, delete each field even if it has downstream formula/rollup dependencies. Default: false. | |
| checkpointFile | No | Absolute path to a JSON file updated after each deletion. Stores remaining fields so the batch can be resumed after a crash. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant context beyond annotations: safety guard with expectedName, sequential processing, partial results on failure, checkpoint for resumability, and force parameter for dependencies. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, focused paragraph that front-loads the main action and essential behaviors. Every sentence adds information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key behaviors (safety, partial results, checkpoint, force) for a destructive batch operation. However, the return value format is not described; it only mentions 'partial results are always returned' without detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds meaning: the expectedName is a safety guard, checkpoint enables resumption, force handles dependencies, and debug adds diagnostics. Adds value beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it deletes multiple fields from an Airtable table. Differentiated from sibling tools like 'delete_field' (singular) and 'update_field_config' (modification, not deletion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for batch deletion with safety guard, sequential processing, and optional checkpoint. However, it doesn't explicitly say when to prefer this over the singular 'delete_field' tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_record_templateADestructive
⚠️ DESTRUCTIVE — Permanently delete a record template. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| templateId | Yes | The template ID (rtpXXX) to delete | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructive hint annotation (destructiveHint: true) already indicates irreversibility. The description adds 'This cannot be undone' and a warning emoji, which reinforces but does not significantly extend beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a clear warning, front-loading the destructive nature. Every word adds value and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with no output schema, the description covers the essential behavioral aspect (permanent deletion). It is complete enough given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully described in the input schema (100% coverage). The description adds no additional meaning to the parameters beyond what is already provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('delete') and resource ('record template') with a warning about permanence. It is specific and distinguishable from sibling tools like create_record_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., duplicate_record_template or update_record_template). Only a destructive warning is provided, lacking context about prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tableADestructive
Delete a table from an Airtable base. Requires both tableId AND the expected table name as a safety guard — refuses to delete if the name does not match. Airtable rejects deleting the last remaining table in a base.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID to delete (e.g. "tblXXX") | |
| expectedName | Yes | The expected name of the table. Must match exactly or deletion is refused. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds value beyond annotations by explaining the name-match safety guard and Airtable's last-table policy. Annotations declare destructiveHint=true consistent with deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Efficiently conveys key behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a destructive tool with 4 params. Covers safety guard and edge case (last table). No output schema, but agent can infer return from context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds that expectedName must match exactly and debug outputs raw response, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Delete a table from an Airtable base' with specifics about safety guard. Distinct from siblings that delete other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use (deleting a table) and behavioral constraints (name matching, last table rejection). Lacks explicit alternatives but gives sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_viewADestructive
Delete a view from a table. Cannot delete the last remaining view in a table.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID to delete (e.g. "viwXXX") | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds the important constraint of not being able to delete the last view, providing behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the verb 'Delete', no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output information, but for a delete operation this is acceptable. The constraint is clearly stated, and parameters are well-documented in schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description does not add new meaning to parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete a view from a table' and adds a specific constraint. It distinguishes from sibling tools like delete_field or delete_table.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting a view and mentions a constraint (cannot delete last view), but does not provide explicit when-to-use vs alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_view_sectionADestructiveIdempotent
Delete a sidebar section. Views inside the section are NOT deleted — Airtable auto-promotes them to ungrouped at the table-level position the section used to occupy. Verified 2026-04-30.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| sectionId | Yes | The section ID (vsc-prefixed) | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and idempotentHint=true. The description goes beyond by explicitly stating that views are NOT deleted and are auto-promoted, and includes a 'Verified' date for reliability. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second provides crucial behavioral nuance. No fluff. Front-loaded with the action. The 'Verified' date adds a minor but useful trust signal without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, behavior, and parameter context well, but since there is no output schema, it does not describe what the tool returns (e.g., success confirmation or error structure). This is a minor gap for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaningful detail beyond the schema for parameters like appId, sectionId, or debug. The schema already notes that sectionId is 'vsc-prefixed', and debug's effect is described in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Delete a sidebar section' (verb+resource) and distinguishes the behavior from sibling tools like delete_view by clarifying that views inside the section are not deleted but promoted to ungrouped. This provides clear purpose and differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies the key behavioral result (views are auto-promoted), guiding users on when to use this tool (to remove a section while keeping its views). It does not explicitly mention when not to use or list alternative tools, but the context from sibling names implies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_base_formulasARead-onlyIdempotent
Download ALL formula fields from a base to local .formula files, organized into per-table subfolders. Each file includes a # AT: header with appId, tableId, fieldId, fieldName, description, and resultType. Tables with no formula fields are silently skipped. outputDir defaults to the current working directory when omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| outputDir | No | Local directory to write files into. Defaults to process.cwd() when omitted. Structure: outputDir/<Table Name>/<Field Name>.formula | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds valuable context: tables with no formula fields are silently skipped, outputDir defaults to cwd, and the file format includes a # AT: header with specific fields. This goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding essential information. It is front-loaded with the core action and output, then details about headers, skipping, and defaults. No redundancy or filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and moderate complexity, the description covers the main behavior, output format, edge cases (silent skip), and defaults. It ensures an agent can invoke the tool correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the outputDir structure (outputDir/<Table Name>/<Field Name>.formula), that it defaults to cwd when omitted, and that debug includes raw Airtable response. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Download ALL formula fields from a base to local .formula files, organized into per-table subfolders.' This specifies the action (download), resource (all formula fields from a base), and output structure, distinguishing it from similar tools like download_formula_field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly explains when to use (when needing all formula fields) by mentioning the silent skip of tables without formula fields, but it does not explicitly state alternatives or when not to use. Sibling tools like download_formula_field exist for single field downloads, but no guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_formula_fieldARead-onlyIdempotent
Download the formula text of a formula field to a local file. Writes a .formula file with a # AT: metadata header (appId, tableId, fieldId, fieldName) so the file can later be uploaded back with update_formula_field or the VS Code right-click command. When outputPath is omitted, returns the formula text without writing a file.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| fieldId | Yes | The formula field ID (e.g. "fldXXX") | |
| outputPath | No | Local file path to write the .formula file. When omitted, returns formula text in the response without writing a file. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, and idempotent behavior. The description adds valuable context about the file writing process, the metadata header format, and the conditional return behavior when 'outputPath' is omitted. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and each sentence provides distinct, necessary information. No redundant or missing elements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, read-only annotations, and thorough schema documentation, the description is nearly complete. It explains the core behavior and file format. Optional debug parameter usage is not mentioned, but this is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter definitions. The description only restates the behavior of 'outputPath' already covered in the schema, adding no novel semantic information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Download') and the resource ('formula text of a formula field'), and distinguishes it from siblings like 'download_base_formulas' by specifying it targets a single field. It also explains the file format and metadata header, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for downloading a formula field's text with optional file writing, and mentions future interaction with 'update_formula_field' or VS Code commands. However, it does not explicitly state when to use this tool over alternatives (e.g., 'download_base_formulas' for bulk), leaving some guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_extensionB
Duplicate an installed extension on a dashboard page.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| sourceInstallationId | Yes | The installation ID to duplicate | |
| pageId | Yes | The dashboard page to place the duplicate on | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool modifies state (readOnlyHint=false) but is not destructive. The description adds no behavioral details beyond the name, such as whether the duplicate preserves configuration, requires permissions, or what happens to the original. Since annotations are present, the bar is lower, but the description still adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence without fluff. It efficiently conveys the core action. However, given the tool has four parameters, a slightly more detailed description could improve utility without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should at least hint at the return value (e.g., new installation ID or success status). It currently provides no output information, making it incomplete for a mutating tool with no structured output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not elaborate on any parameter purpose or usage beyond what the schema already provides, such as clarifying that 'debug' enables diagnostic output. No added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('duplicate') and the resource ('installed extension on a dashboard page'), making the tool's purpose immediately understandable. It distinguishes this tool from siblings like 'install_extension' or 'duplicate_field'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'install_extension' or 'create_extension'. It does not mention scenarios or constraints, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_fieldB
Duplicate (clone) a field in a table. Optionally also duplicate the cell values.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID | |
| sourceFieldId | Yes | The field ID to duplicate | |
| duplicateCells | No | Also copy cell values. Default: false | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description does not disclose side effects (e.g., whether the original field remains unchanged, any permission requirements, or rate limits). Annotations are all false, so description carries full burden but provides minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is concise and front-loaded with the core action; no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters all described in schema and no output schema, the description covers the core purpose but omits return value expectations or error handling notes. Adequate for a simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are described inline. The description adds the term 'clone' which synonymizes with 'duplicate', but no new meaning beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action 'Duplicate (clone) a field' and the resource 'in a table', clearly distinguishing from other duplication tools among siblings like duplicate_extension or duplicate_records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus creating a field from scratch or other alternatives; no mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_recordsA
Duplicate one or more existing records within a table. Creates exact copies of the specified source records in the same table and view. Returns the new record IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID containing the records to duplicate | |
| viewId | Yes | The view ID to paste the duplicated records into | |
| sourceRowIds | Yes | Array of record IDs to duplicate (e.g. ["recXXX", "recYYY"]) | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it is not read-only, not destructive, not idempotent. The description adds that it creates exact copies and returns new record IDs, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action, no unnecessary words. Every sentence provides essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, it correctly indicates return value (new record IDs). Covers main purpose and scope. Could mention error handling or limits, but overall sufficient for a moderate-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema, except confirming that duplication is within the same table and view, which is already in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it duplicates records, creates exact copies, and returns new IDs. This distinguishes it from sibling tools like duplicate_field or duplicate_view, which operate on different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage by stating it duplicates records within the same table and view, but lacks explicit when-to-use or when-not-to-use compared to alternatives. No direct mention of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_record_templateA
Duplicate a record template within the same or a different table. Returns the new template ID.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| sourceTemplateId | Yes | Source template ID (rtpXXX) | |
| tableId | Yes | Target table ID (tblXXX) — can be the same table or a different one | |
| newName | No | Optional name for the copy. Defaults to the original name. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is not read-only and not destructive. The description adds that it returns the new template ID, but lacks details on side effects, permissions, or error states. With annotations present, this is adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one describing the action and one stating the return value. Highly concise with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no output schema, and minimal annotations, the description is minimal. It covers the main purpose and return but omits details like what is duplicated (e.g., settings, cells) and prerequisites. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all parameters, so the description adds no additional parameter semantics. Per guidelines, baseline score is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (duplicate), the resource (record template), and the scope (within same or different table), and specifies the return value (new template ID). This differentiates it from sibling tools like create_record_template and apply_record_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context (duplicate in same or different table) but does not explicitly state when to use this tool versus alternatives. No when-not or exclusion criteria are provided, but the use case is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate_viewA
Duplicate an existing view with all its configuration (filters, sorts, field visibility, etc).
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID the view belongs to | |
| sourceViewId | Yes | The view ID to duplicate (e.g. "viwXXX") | |
| newName | Yes | Name for the duplicated view | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) are consistent but provide limited behavioral hints. The description adds that configuration is duplicated, but omits details like original view modification, error conditions (e.g., duplicate name), and output format. With no output schema, more transparency would benefit agent invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 14 words, efficiently front-loaded with core purpose. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter duplication tool with no output schema, the description is adequate but incomplete. Missing constraints like name uniqueness, return value hint, and confirmation that the original view is unaltered. Moderate complexity warrants more contextual detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All five parameters are described in the input schema (100% coverage). The description does not add new meaning beyond what the schema provides, satisfying the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Duplicate an existing view' with specific verb and resource, and explicitly lists what configuration is copied (filters, sorts, field visibility). This distinguishes it from sibling tools like duplicate_field, duplicate_records, and other view operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or alternatives is provided. Usage is implied by the name and description, but lacks exclusions or prerequisite notes common in high-scoring examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_base_schemaARead-onlyIdempotent
Get the full schema of an Airtable base — all tables, fields (with typeOptions), and views in one call. Use this when you need fields or views; use list_tables when you only need table names/IDs (faster, lighter). Returns { tables: [...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID (e.g. "appXXX") | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds the return format '{ tables: [...] }' which is useful but no additional behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the tool's purpose. Every word serves a purpose, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only schema retrieval tool, the description covers purpose, usage guidance, parameter semantics via schema, and output format. No gaps given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage, describing both parameters (`appId` and `debug`). The description does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the full schema of an Airtable base, including tables, fields, and views. It distinguishes itself from the sibling tool `list_tables` by specifying that this tool is for detailed schema info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus `list_tables`: use this when fields or views are needed, and `list_tables` for just table names/IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_schemaARead-onlyIdempotent
Get the full schema for a single table — all fields (with typeOptions) and views. Use instead of get_base_schema when you only need one table (faster, less context). Use list_fields when you need fields only without view data. Returns { id, name, fields: [...], views: [...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableIdOrName | Yes | The table ID (e.g. "tblXXX") or exact table name | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds return structure details ({ id, name, fields, views }) and notes speed/context benefits, complementing annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with clear front-loading: purpose first, then usage alternatives, then return structure. Every sentence adds value, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only schema retrieval tool, description covers purpose, usage, and return format. Lacks error handling or prerequisites but is sufficient given annotations and schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all 3 parameters. The tool description adds no additional meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves full schema for a single table, including fields with typeOptions and views. It distinguishes from sibling tools get_base_schema (faster, less context) and list_fields (fields only), providing specific verb+resource differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance: use instead of get_base_schema when only one table needed, and list_fields when only fields needed. Provides clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewARead-onlyIdempotent
Read a view's live configuration from the base. Returns filters, sorts, groupLevels, columnOrder (rich per-column visibility + width), frozenColumnCount, colorConfig, metadata (view-type specific, e.g. gallery cover, calendar date field), rowHeight, description. Use this before update_view_filters / apply_view_sorts / update_view_group_levels to audit current state and choose between replace and append modes.
Data source: internally hits /v0.3/table/{tableId}/readData with includeDataForViewIds=[viewId]. The application/read endpoint alone does NOT return filter/sort/group state — that's why the update tools need either "append" mode or a prior get_view call to merge safely.
Fields:
filters: { filterSet: [...], conjunction: "and"|"or" } | null
sorts: [{ id, columnId, ascending }] | null (stored as lastSortsApplied internally)
groupLevels: [{ id, columnId, order, emptyGroupState }] | null
columnOrder: [{ columnId, visibility, width? }]
visibleColumnOrder: [columnId] — derived from columnOrder for convenience
metadata: type-specific config (gallery.coverColumnId, calendar.dateColumnId, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID (e.g. "viwXXX") | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds detail about internal API usage and state retrieval limitations, going beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose, followed by usage guidance, data source detail, and field definitions. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description thoroughly documents all return fields, data source, and usage context, making it fully informative for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions. Description adds meaning to the debug parameter and lists return fields, providing helpful context for parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a view's live configuration, listing all returned components. It distinguishes from siblings like update_view_filters and apply_view_sorts by specifying its audit purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use this tool before update tools to audit current state and choose between replace and append modes. Explains why the application/read endpoint alone is insufficient, providing clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
install_extensionA
Install an extension onto a dashboard page. Requires a block ID (from create_extension) and a page ID (from create_extension_dashboard).
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| blockId | Yes | The block ID (e.g. "blkXXX") | |
| pageId | Yes | The dashboard page ID (e.g. "bipXXX") | |
| name | Yes | Display name for this installation | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only and not destructive, and the description confirms it is a mutation action. However, it adds no additional behavioral details such as idempotency, error conditions, or side effects, relying heavily on annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, comprising two short sentences. Every word adds value, with the action stated first followed by necessary prerequisites.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description should hint at the response (e.g., success indicator). It also omits mention of the debug parameter and any potential errors. While it covers the basic action and dependencies, completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover all parameters (100% coverage). The description adds value by linking blockId and pageId to their source tools, but does not elaborate on name or debug beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool installs an extension onto a dashboard page. It distinguishes from sibling tools like create_extension and create_extension_dashboard by specifying the required source IDs, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions that the tool requires a block ID from create_extension and a page ID from create_extension_dashboard, providing clear prerequisite context. However, it does not include when not to use the tool or alternatives, slightly limiting guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_fieldsARead-onlyIdempotent
List fields in a table — returns id, name, type, and typeOptions per field. Use instead of get_table_schema when you need fields only (no view data). Use fieldType or nameContains filters on large tables to reduce context size. Returns [{ id, name, type, typeOptions }].
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableIdOrName | Yes | The table ID (tblXXX) or exact name | |
| fieldType | No | Return only fields of this type, e.g. "formula", "text", "number", "checkbox" | |
| nameContains | No | Return only fields whose name contains this substring (case-insensitive) | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent; description adds return format details and the effect of debug parameter, but lacks info on potential limits or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-loaded with purpose, followed by usage guidance and filter advice; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations, the description fully explains what it returns and how to narrow results; no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage; description reinforces filter purposes but adds no new semantic details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists fields in a table with specific fields (id, name, type, typeOptions) and distinguishes from sibling get_table_schema by noting when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly recommends using this tool instead of get_table_schema when only fields are needed, and advises using filters on large tables to reduce context size.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_record_templatesARead-onlyIdempotent
List all record templates for a table. Templates are embedded in the base scaffolding data. If the templates array is empty, pass debug:true and inspect the raw response to locate the templates key — the API path may vary by base.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID (tblXXX) | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant context beyond annotations, including the fact that templates are embedded in base scaffolding data, that the API path may vary, and how to use debug for troubleshooting. This fully complements the readOnlyHint and idempotentHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences: first states the primary purpose, second provides essential troubleshooting guidance. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers the main use case and edge case (empty templates array). It could briefly mention the expected response structure, but the annotations already cover safety and idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameter descriptions (100% coverage). The description adds extra value by explaining when and why to use the debug parameter, which goes beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'record templates' with scope 'for a table', which is specific and unambiguous. It distinguishes itself from sibling tools like apply_record_template and create_record_template by focusing on listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on using the debug parameter when the templates array is empty, and explains the underlying data structure (embedded in base scaffolding). However, it does not explicitly say when NOT to use this tool or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesARead-onlyIdempotent
List all tables in a base with their IDs and names — lightweight scaffolding call (no field data). Use this when you only need table IDs/names; use get_base_schema or get_table_schema when you also need fields or views. Returns [{ id, name }].
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, destructive, and idempotent hints. The description adds context: lightweight, no field data, and return format. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with robust annotations and schema, the description is complete: it states what it returns and suggests alternatives. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add significant meaning beyond the schema descriptions for appId and debug.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all tables with IDs and names, and positions it as a lightweight call without field data. It distinguishes from siblings like get_base_schema and get_table_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (only need table IDs/names) and when to use alternatives (get_base_schema or get_table_schema for fields/views).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_viewsARead-onlyIdempotent
List all views in a specific table with their IDs, names, and types.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableIdOrName | Yes | The table ID or name | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior. Description adds that it returns IDs, names, types but does not disclose potential pagination, ordering, or error handling. Adequate but not enriched beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with complete information, no redundancy. Front-loaded verb and object. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with annotations and full schema coverage, description covers purpose, scope, and return fields. No output schema, but fields are named. Missing minor details like ordering or error conditions, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. Description adds no new meaning beyond 'list all views'; the debug parameter's effect is already described in schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists all views in a specific table, including IDs, names, and types. It distinguishes from sibling tools like create_view, delete_view, get_view, and list_view_sections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for retrieving view metadata but does not explicitly state when to use over alternatives like get_view or list_view_sections. No guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_view_sectionsARead-onlyIdempotent
List all sidebar sections for a table. Sections are user-organized groupings of views in the Airtable left sidebar (e.g. "🚀 Posting workflow", "🗑️ Sold workflow"). Returns each section's id, name, and the views inside it. The table-level tableViewOrder is a mixed list of view IDs and section IDs at the top level — when a view is inside a section, it appears in that section's viewOrder, NOT in the table's.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableIdOrName | Yes | Table ID (preferred) or unambiguous table name | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds valuable context about the output structure (id, name, views) and explains the relationship between section viewOrder and table-level tableViewOrder, exceeding what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and provides necessary details in a logical order. While somewhat lengthy, each sentence adds value, and the structure is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return structure (id, name, views) and the ordering nuance. All parameters are described in the schema, and the tool's read-only nature is conveyed through annotations and description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions. The description does not add new semantic meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'sidebar sections for a table', and distinguishes it from sibling tools that handle views directly. It provides concrete examples of section names, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (to list sections and their views) and provides context about how section ordering relates to tableViewOrder. However, it does not explicitly state when not to use it or mention alternatives like list_views.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_toolsAIdempotent
Control which tools are available. Actions: list_profiles, switch_profile, get_tool_status, toggle_tool, toggle_category. Use this to switch between read-only, safe-write, full, or custom profiles, or enable/disable individual tools.
Active profile: "full" — all tools enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The action to perform | |
| profile | No | Profile name for switch_profile action (read-only, safe-write, full, custom) | |
| tool | No | Tool name for toggle_tool action | |
| category | No | Category name for toggle_category action (read, table-write, table-destructive, field-write, field-destructive, view-write, view-destructive, extension) | |
| enabled | No | Enable (true) or disable (false) for toggle_tool / toggle_category actions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true, but the description adds no behavioral context beyond listing actions. It does not discuss effects like persistence of changes or authentication needs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, front-loading the core purpose followed by actions. Every sentence adds value with no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lacks details on what each action returns. However, for a tool management function, it covers basic usage. It could mention that actions are idempotent or provide example responses, but it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds value by enumerating the actions and implicitly listing profile options ('read-only, safe-write, full, custom'), but it does not elaborate beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Control which tools are available' and lists five specific actions, making the purpose immediately clear. It is distinct from sibling tools that manipulate records, fields, or views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states usage scenarios: switching profiles and enabling/disabling tools. It provides the current active profile context. It does not explicitly mention when not to use or alternatives, but the intended use is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_overall_columnsAIdempotent
Move one or more columns to a new position in the overall index (visible + hidden). Sibling of move_visible_columns. Index 0 is the leftmost column in the underlying full order.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID | |
| columnIds | Yes | Field IDs to move | |
| targetOverallIndex | Yes | Destination index in the overall (visible + hidden) ordering | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No contradiction with annotations; description correctly implies non-destructive, idempotent move. However, it adds no extra context about side effects, permissions, or errors beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and key concept, no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so return value is unexplained. Missing preconditions like view existence or appId validity. Adequate for a simple mutation but could provide more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by clarifying index meaning (leftmost in underlying order) but does not elaborate on each parameter beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves columns to a new position in the overall index (visible and hidden), distinguishes from sibling move_visible_columns, and explains indexing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names sibling tool as alternative, implying when to use (overall vs visible), but does not explicitly state when to choose this tool over the sibling or provide prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_view_to_sectionAIdempotent
Move a view (or a section itself) within the sidebar. The single endpoint covers four user actions depending on the arguments:
viewId + sectionId → put the view INTO that section at targetIndex
viewId + sectionId: null → move the view OUT to ungrouped at table-level targetIndex
sectionId-as-viewIdOrSectionId + targetIndex → reorder the section among other sections
viewId + same section → reorder the view within its current section For section reorders, targetIndex is into the table's top-level mixed viewOrder; for in-section moves, it's into that section's viewOrder.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID (tbl-prefixed) | |
| viewIdOrSectionId | Yes | A view ID (viw...) or section ID (vsc...) to move | |
| targetIndex | Yes | Destination index (0 = top). Per-section for in-section moves; per-table for section reorders. | |
| targetSectionId | No | Optional vsc-prefixed section ID to move INTO. Omit (or pass null) to move the view to ungrouped. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, not destructive. Description adds substantial behavioral context: explains how targetIndex works differently for section reorders vs in-section moves, and mentions the debug parameter. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single well-structured paragraph with a clear front-loaded purpose statement and numbered list of four cases. Every sentence adds essential behavior info; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all four use cases and explains targetIndex semantics. However, no mention of return value (no output schema) or error conditions. Given complexity (6 params, 4 required), slightly more context on output/errors would be ideal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters have schema descriptions (100% coverage). The tool description adds value by explaining the combinatorial semantics (e.g., viewId+sectionId vs viewId+null) and the dual meaning of targetIndex, which goes beyond what each parameter description provides individually.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states it moves a view or section within the sidebar and enumerates four distinct use cases with argument patterns. This clearly differentiates it from sibling tools like create_view or reorder_view_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description lists four specific actions and their argument combinations, implicitly guiding when to use each variant. However, it does not explicitly state contraindications or compare with alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_visible_columnsAIdempotent
Move columns by visible-only index (index 0 = leftmost shown column, hidden columns not counted). Use when you want to position relative to what the user sees. Use move_overall_columns when you need to position relative to the full underlying column order including hidden fields. ⚠️ The API preserves existing relative order of supplied IDs — to place columns in a custom sequence, issue one call per column with incrementing targets.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID | |
| columnIds | Yes | Field IDs to move as a contiguous block to targetVisibleIndex. ⚠️ The Airtable API preserves existing relative order of the supplied IDs — it does NOT re-sequence them by input array order. To place columns in a specific custom sequence, issue separate single-column calls with incrementing targets (e.g. ["fldA"]→1, ["fldB"]→2, ["fldC"]→3). | |
| targetVisibleIndex | Yes | Destination index in the visible-only column ordering (0 = leftmost visible) | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No contradiction with annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true). The description adds key behavioral context: the API preserves existing relative order of supplied IDs, and warns about the need for multiple calls for custom sequencing. Also notes the debug parameter for diagnostics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short sentences plus a warning line. Every sentence adds value—purpose, differentiation, and behavioral nuance. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior, usage guidance, and a critical API caveat. No output schema exists, but the debug parameter hints at response content. Could mention that the change is persistent or any error conditions, but overall sufficient for a focused mutation tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already includes thorough parameter descriptions (e.g., the caveat on columnIds). The tool description does not add new meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Move') and resource ('columns by visible-only index'), clarifying that index 0 is the leftmost shown column. It explicitly distinguishes from the sibling 'move_overall_columns' by contrasting visible-only vs full column order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear guidance on when to use: 'Use when you want to position relative to what the user sees.' Directly names the alternative 'move_overall_columns' for different needs. Also warns about the API preserving relative order and advises one call per column for custom sequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_recordsARead-onlyIdempotent
Read records from an Airtable table view. Returns resolved field values including lookup fields. Supports optional client-side text search across all field values — unlike the REST API filterByFormula approach, this search works correctly on lookup fields. Fetch up to 1000 records per call.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID (e.g. "tblXXX") | |
| viewId | Yes | The view ID (e.g. "viwXXX") — determines row order and visible fields | |
| columnIds | No | Optional: specific field IDs to fetch. Omit to fetch all fields. | |
| limit | No | Maximum number of records to fetch before filtering (1–1000). Default: 100. Increase if search returns too few results. | |
| search | No | Optional case-insensitive substring to match against any field value. Works on lookup fields, formula fields, and multi-select arrays. Applied after fetching — increase limit if you need to search more records. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that search is client-side, applied after fetching, and that up to 1000 records are fetched per call. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose, and each sentence adds value. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains key behaviors: resolved field values, optional search, limit. No output schema, so return format is implied but not detailed. Covers main aspects well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context beyond schema, especially for the search parameter (works on lookup fields) and limit (up to 1000).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads records from an Airtable table view and returns resolved field values including lookup fields. It differentiates from siblings by highlighting its client-side search that works on lookup fields, which is distinct from other tools like list_fields or get_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implicit usage context: use for reading records with optional search, and advises increasing limit for search. However, it lacks explicit when-not-to-use or direct comparison with sibling tools beyond the search mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_extensionBDestructive
Remove an installed extension from a dashboard.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| installationId | Yes | The block installation ID to remove (e.g. "bliXXX") | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true. The description adds the context that removal is from a dashboard, which goes beyond annotations but does not detail side effects, audit logs, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the tool's purpose. No unnecessary words, but could benefit from a brief usage note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the existence of annotations and a thorough schema, the description covers the basic purpose. However, it omits return value details (no output schema) and error scenarios, making it slightly incomplete for complex usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds no additional meaning beyond the schema, such as format hints or common usage patterns. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'remove' and the resource 'installed extension from a dashboard'. Among sibling tools dealing with extensions (install, create, duplicate, rename, update state), removal is uniquely identified, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, it does not mention that this is irreversible or that the extension should be installed first. No exclusion criteria or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_extensionCIdempotent
Rename an installed extension.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| installationId | Yes | The block installation ID (e.g. "bliXXX") | |
| name | Yes | New name for the extension | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it is idempotent, non-destructive, and not read-only. The description adds no further behavioral context, such as immediate effect, error handling, or scope of impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is front-loaded and to the point, though slightly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple rename operation, the description is adequate but could mention immediate effect or constraints (e.g., name uniqueness). No output schema increases the need for clarity, but the operation is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the description adds no extra parameter meaning. Baseline 3 is appropriate as the schema already documents each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'rename' and the resource 'installed extension', distinguishing it from sibling rename tools like rename_field and rename_table. It is direct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., update_extension_state for other modifications). It lacks context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_fieldAIdempotent
Rename a field (column) in an Airtable table. Pre-validates the field exists before mutating.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| fieldId | Yes | The field/column ID to rename | |
| newName | Yes | The new name for the field | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=false and idempotentHint=true, and the description adds the important detail 'Pre-validates the field exists before mutating', which is not in annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no superfluous text. The core action is front-loaded, and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple rename operation with no output schema, the description covers the essential context: what it does (rename), the resource (field), and an extra behavioral guarantee (pre-validation). Could optionally note return value, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 4 parameters described in schema). The description does not add additional meaning beyond what the schema already provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Rename' and resource 'field (column) in an Airtable table'. The additional detail about pre-validation further clarifies the behavior. Unambiguously distinguishes from siblings like rename_table, rename_view, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., duplicate_field, update_field_config). The description focuses solely on the rename action without providing context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_record_templateBIdempotent
Rename an existing record template.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| templateId | Yes | The template ID (rtpXXX) | |
| name | Yes | New template name | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotence and non-destructive mutation, but the description adds no extra behavioral context (e.g., uniqueness constraints, effect on references).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and presence of idempotentHint, completeness is adequate but lacks details on return value or constraints. Could benefit from mentioning that renaming is immediate and irreversible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no additional meaning beyond the schema's parameter descriptions. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (rename) and the resource (record template), distinguishing it from sibling tools like 'rename_field' or 'rename_table'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or prerequisites. The description only states the function, no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_tableAIdempotent
Rename a table in an Airtable base.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID to rename (e.g. "tblXXX") | |
| newName | Yes | The new name for the table | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description does not add any additional behavioral context (e.g., that renaming does not affect data or references), so it adds no value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb. It is appropriately sized for a simple tool, though it could include slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, and no output schema, the description is minimally adequate. However, it lacks guidance on usage and side effects, which would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not mention any parameters or add meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (rename) and the resource (table in an Airtable base). This distinguishes it from sibling tools that rename other resources (e.g., rename_field, rename_view).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or when alternatives (like rename_field) are appropriate. Usage is implied by the tool's name and parameters, but no exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_viewCIdempotent
Rename a view.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID to rename (e.g. "viwXXX") | |
| newName | Yes | The new name for the view | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true, but the description adds no extra behavioral context (e.g., effects on data, reversibility, or permissions). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two words, but it adds little value beyond the tool name. It could be expanded with one sentence about purpose without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full schema coverage, the description is minimally viable. However, it lacks any mention of the tool's role within the broader set of view operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description adds no additional meaning beyond the schema, which is acceptable but not exceeding baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Rename a view' clearly states the verb (rename) and resource (view). It is specific enough to distinguish from sibling tools like 'rename_view_section' or 'rename_field', though it does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'rename_view_section' or 'rename_table'. No context on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_view_sectionBIdempotent
Rename a sidebar section.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| sectionId | Yes | The section ID (vsc-prefixed) | |
| name | Yes | New section name | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false, which the description implicitly matches (renaming is idempotent and non-destructive). However, the description does not add any behavioral details beyond these annotations, such as whether renaming affects other references or has side effects. With annotations covering the essential traits, the description adds minimal value but is not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, frontloaded sentence of five words: 'Rename a sidebar section.' It is perfectly concise with no redundant information, efficiently stating the tool's action and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 4 params, full schema coverage, and no output schema, the description is minimally adequate. However, it lacks context about what a 'sidebar section' is, how to obtain a section ID, or any constraints on the new name. Given the tool's low complexity and the presence of annotations, it just barely meets the bar for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters (appId, sectionId, name, debug) have clear descriptions in the input schema (100% coverage). The tool description does not add any further semantic information about the parameters, so it relies entirely on the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Rename a sidebar section' clearly states the action (rename) and the resource (sidebar section). The tool name matches, but it doesn't differentiate from sibling tools like 'rename_view' or 'rename_record_template', though the context is clear enough. Score 4 because it's specific but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like 'move_view_to_section' or 'create_view_section'. There are no prerequisites mentioned (e.g., needing the section ID). The description is purely declarative without any usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_view_fieldsAIdempotent
Reorder the fields (columns) displayed in a view. Accepts a partial map: pass only the field IDs you want to move, e.g. { "fldX": 1 } to move fldX to position 1. Other fields keep their relative order. Index 0 is the leftmost position after the primary field. Internally the tool reads the view's current columnOrder, applies the moves, and sends the complete map (the underlying internal API rejects single-key inputs with FAILED_STATE_CHECK — user report 2026-04-30 §2.6).
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID (e.g. "viwXXX") | |
| fieldOrder | Yes | Map of field IDs to target column indices: { "fldXXX": 0, "fldYYY": 1, "fldZZZ": 2 }. Index 0 is the leftmost position after the primary field. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by revealing internal behavior: 'reads the view's current columnOrder, applies the moves, and sends the complete map.' It also documents a real user-edge case about the internal API rejecting single-key inputs. Since annotations only provide basic hints (idempotentHint=true), this added context significantly enhances transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of just two sentences. The first sentence immediately states the purpose, and the second packs usage instructions, indexing rules, and a critical internal behavior note. Every sentence earns its place with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, nested object, no output schema), the description covers key aspects: partial map usage, indexing, internal process, and a user-reported edge case. However, it does not describe the normal return value (only mentions debug output includes raw response). With no output schema, a brief note on what is returned in non-debug mode would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters with descriptions (100% coverage), so the description's added value is moderate. It explains that 'fieldOrder' is a partial map and clarifies indexing, which reinforces schema info. The debug parameter's behavior is also clarified. This adds meaningful context but does not introduce entirely new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Reorder the fields (columns) displayed in a view.' It specifies that it accepts a partial map and explains indexing (index 0 is leftmost after primary field). This is a specific verb+resource combination that distinguishes it from sibling tools like 'move_visible_columns' or 'set_view_columns' by focusing on precise field ordering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: 'Accepts a partial map: pass only the field IDs you want to move... Other fields keep their relative order.' It also warns about the underlying internal API rejecting single-key inputs. However, it does not explicitly state when to use this tool versus alternatives like 'move_visible_columns' or 'set_view_columns', missing an opportunity to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_calendar_date_columnsAIdempotent
Set the date-column ranges shown on a Calendar view. Each entry is either { startColumnId } for single-point events or { startColumnId, endColumnId } for range events. The array form lets a single calendar overlay multiple date series at once (e.g. "Created date" + "Start → End range" together).
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The Calendar view ID | |
| dateColumnRanges | Yes | Array of date-column-range entries. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, and the description adds useful behavioral context about allowing multiple date series in one array. No contradictions; the description clarifies the tool's effect beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and every word adds value. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested parameters and no output schema, the description sufficiently explains the input structure. It could mention return behavior (e.g., success/failure), but the core functionality is well-covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the schema by explaining the structure of dateColumnRanges entries, the optional endColumnId for range events, and the ability to combine multiple date series. With 100% schema coverage, this goes above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: setting date-column ranges on a Calendar view. It explains the format for single-point and range events, and provides an example. This differentiates it from sibling tools like set_view_columns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for configuring calendar views but does not provide explicit when-to-use or when-not-to-use guidance. Given many sibling view-related tools, more context would help the agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_form_metadataAIdempotent
Update one or more legacy-form-view metadata properties in a single call. Unset properties are not touched. Each property fans out to its own atomic Airtable endpoint.
Supported properties: description — intro text shown above the form afterSubmitMessage — "thank you" text after submission redirectUrl — URL to redirect to after submit refreshAfterSubmit — post-submit behavior (e.g. "REFRESH_BUTTON") shouldAllowRequestCopyOfResponse — boolean: show "send me a copy" toggle to respondents shouldAttributeResponses — boolean: track which user submitted (for signed-in respondents) isAirtableBrandingRemoved — boolean: hide Airtable branding (paid plans only)
Note: "form title" is the view name itself — use rename_view to change it. "Field labels on the form" use a per-field endpoint that has not been captured yet.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The form view ID | |
| description | No | Intro text shown above the form (omit to leave unchanged) | |
| afterSubmitMessage | No | Confirmation text shown after submission | |
| redirectUrl | No | URL to redirect to after submit | |
| refreshAfterSubmit | No | Post-submit behavior (e.g. "REFRESH_BUTTON") | |
| shouldAllowRequestCopyOfResponse | No | Allow respondents to request a copy of their submission | |
| shouldAttributeResponses | No | Track which signed-in user submitted each response | |
| isAirtableBrandingRemoved | No | Hide the Airtable branding on the form (paid plans) | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true, which the description does not contradict. The description adds transparency by noting that unset properties are untouched and that it fans out to atomic Airtable endpoints. This exceeds the baseline set by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action and then lists properties. It is reasonably concise but could be trimmed further since the properties are also described in the schema. No unnecessary sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input details well but does not explain the output (no output schema). It omits error handling, response format, and prerequisites (e.g., must be a legacy form). Given the lack of output schema, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description lists supported properties with brief explanations that partially duplicate the schema. It adds marginal context (e.g., 'intro text shown above the form') but does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates legacy-form-view metadata properties in a single call. It lists supported properties and distinguishes from sibling tools like rename_view for changing the form title, providing specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (updating form metadata) and explicitly notes alternatives: rename_view for title changes and a per-field endpoint for field labels. It could be more explicit about not using it for non-form views, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_form_submission_notificationAIdempotent
Toggle email-on-submit notifications for a specific user on a form view. Per-user, not per-form (separate from set_form_metadata).
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The form view ID | |
| userId | Yes | The Airtable user ID to enable/disable notifications for (usr-prefixed) | |
| shouldEnable | Yes | true to send email-on-submit, false to stop | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true, readOnlyHint=false, destructiveHint=false. The description adds that it is a per-user toggle, which is consistent with idempotency. It doesn't reveal additional behavioral traits like permissions or side effects, but the combination of annotations and description sufficiently covers the behavior for this simple mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with the key action and differentiator. Every sentence adds value and is appropriately concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward toggle tool with 5 parameters and no output schema, the description along with annotations and schema covers the essential information. Missing output description is minor, and the tool's behavior is clear given its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all 5 parameters. The tool description does not add extra semantic value beyond what's already in the input schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (toggle), the resource (email-on-submit notifications for a specific user on a form view), and distinguishes from sibling set_form_metadata. The verb 'toggle' and resource are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly says 'Per-user, not per-form (separate from set_form_metadata)', which tells the agent when to use this tool versus an alternative. While it doesn't exhaustively list all when-not cases, it provides clear context for differentiation among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_record_template_cellAIdempotent
Pre-fill a field value on a record template.
CELL OBJECT TYPES (verified via API capture 2026-05-01):
Static value (text, number, boolean, single-select choice ID): { "type": "static", "value": "some text" } { "type": "static", "value": 42 } { "type": "static", "value": true } { "type": "static", "value": "selXXXXXXXXXXXXXX" } ← single-select: pass choice ID
Linked record(s): { "type": "linkedRows", "value": [{ "foreignRowId": "recXXX", "foreignRowDisplayName": "Record Name" }] }
To clear a field, omit the cellObject or pass null value.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| templateId | Yes | The template ID (rtpXXX) | |
| columnId | Yes | Field ID (fldXXX) | |
| cellObject | Yes | Cell value object. Must have "type" ("static" or "linkedRows") and "value". | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show idempotentHint=true, and description reinforces with clear cell object format and clearing instructions. No contradictions. Missing discussion of authorization or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: one-sentence purpose followed by bullet examples. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers nested cellObject well. No output schema expected. Could mention success indicators but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters, but description adds significant value with concrete examples (how to pass single-select choice ID, linked record arrays) that exceed schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Pre-fill a field value on a record template' using specific verb+resource. It distinguishes from sibling tools like apply_record_template or set_record_template_visible_columns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides examples for static and linkedRows cell types, and how to clear a field. Implicitly guides when to use (for setting default values on templates) but lacks explicit when-not-to-use or comparisons with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_record_template_visible_columnsAIdempotent
Set which columns are shown (pre-fillable) on a record template. Pass an empty array to show all columns. isPartialSelection:true means only listed columns are shown; false means all are shown.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| templateId | Yes | The template ID (rtpXXX) | |
| columnIds | Yes | Ordered list of field IDs to show. Empty array shows all. | |
| isPartialSelection | No | true = show only listed columns; false = show all. Default: true | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, destructiveHint=false. The description adds behavioral details: how empty array and isPartialSelection affect output. No contradictions, and it enriches understanding beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences cover purpose, empty array behavior, and isPartialSelection. No fluff, front-loaded with main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters are explained, annotations cover safety, and no output schema needed. For a mutation tool with idempotency and no destructiveness, the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value: explains that empty columnIds shows all, and clarifies isPartialSelection and debug parameter meaning. Goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets which columns are shown on a record template, using the verb 'Set' and specifying the resource. It distinguishes from sibling tools like set_view_columns by targeting record templates specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use the tool: pass an empty array to show all columns, and clarifies the isPartialSelection parameter. While it doesn't explicitly contrast with siblings, the context makes it clear this is for record templates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_view_cell_wrapAIdempotent
Toggle whether long cell values wrap (multi-line) or truncate (single-line with ellipsis).
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID | |
| shouldWrapCellValues | Yes | true to wrap, false to truncate | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the toggle action and the two states (wrap vs truncate), which aligns with the idempotentHint annotation. It adds behavioral context beyond the annotations by clarifying the visual effect on cell values. However, it does not elaborate on any side effects or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the purpose. It is front-loaded with the verb and uses clear terminology ('multi-line', 'ellipsis'). There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains what the tool does given its simplicity. It does not require an output schema explanation. However, it could explicitly state that it applies to a specific view (implied by parameters but not the description).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning beyond the schema; it only restates the boolean parameter's effect. The parameters are self-explanatory from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Toggle') and clearly identifies the resource ('long cell values wrap...or truncate'). It directly states the effect on the view's display behavior, which distinguishes it from sibling tools like 'set_view_columns' or 'set_view_color_config'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool or when not to use it. It provides no comparison to alternative tools, such as those for setting column widths or line height. The usage context is implied by the toggle behavior, but no guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_view_color_configAIdempotent
Apply a color config to a view (Kanban / Gallery / Calendar). Currently supports type: "selectColumn" — card colors are taken from a single-select field's choice colors. Other types (e.g. rule-based coloring) exist in Airtable's UI but their payload shapes have not been fully captured yet — passing an unknown type is forwarded as-is so callers can experiment.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID | |
| colorConfig | Yes | Color config object. Verified shape: { type: "selectColumn", selectColumnId: "fld...", colorDefinitions: null }. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and non-destructive. The description adds transparency by explaining that known type 'selectColumn' takes colors from a single-select field, and unknown types are forwarded as-is for experimentation. This exceeds annotation-only info, though it could mention response behavior (e.g., success indicator). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, each serving a purpose: first states action and scope, second explains supported type and caution. No filler, front-loaded with core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description mentions debug parameter for diagnostics, providing some return context. However, it lacks typical success/failure indicators and prerequisites (e.g., view existence). Adequate but not comprehensive for a mutation with nested objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions already included. The tool's description only reiterates the colorConfig shape already in the schema, adding no new parameter information. Baseline 3 applies because the schema adequately documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Apply' and resource 'a color config to a view', listing supported view types (Kanban, Gallery, Calendar). It distinguishes the tool from siblings like set_view_columns by specifying the unique operation of setting color configuration, and adds nuance by noting the supported type and forwarding behavior for unknown types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for setting card colors via selectColumn type, but does not explicitly state when to use this tool versus alternatives (e.g., set_view_columns for column settings). It warns about unknown types but lacks explicit when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_view_columnsAIdempotent
One-shot view-column reset: hides every column then shows only visibleColumnIds in the given left-to-right order, with optional freeze. Use this for fresh view setup or full layout rewrites. Use show_or_hide_view_columns when you only want to toggle specific columns without touching the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID (viw-prefixed) | |
| visibleColumnIds | Yes | Field IDs to show, in left-to-right order. All other fields are hidden. | |
| frozenColumnCount | No | Optional. If set, freezes this many columns from the left. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the exact behavior (hides everything then shows selected columns) and the effect of optional freeze. Annotations indicate idempotentHint=true, and the description does not contradict any annotation. It adds the 'one-shot' reset context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences. The first sentence states the core functionality, and the second provides usage guidance. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters (all well-documented in schema), no output schema, and clear annotations, the description covers the main behavior and usage context. The 'debug' parameter is mentioned in schema but not in description, but the description's completeness is adequate for agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description does not need to elaborate much. It briefly mentions 'optional freeze' which aligns with frozenColumnCount. No additional parameter info is necessary given the schema completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action as a one-shot view-column reset, explaining that it hides all columns then shows only the specified ones in order. It distinguishes itself from the sibling tool 'show_or_hide_view_columns' by contrasting the use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('fresh view setup or full layout rewrites') and when to use an alternative ('show_or_hide_view_columns' for toggling specific columns without resetting). This provides clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_view_coverAIdempotent
Set the cover-image field and crop/fit mode for Kanban or Gallery views. Pass coverColumnId: null to remove the cover. Either field can be passed independently — the other is left untouched.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID | |
| coverColumnId | No | Attachment field ID to use as cover (or null to remove) | |
| coverFitType | No | How the cover image is displayed | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond annotations: mentions null to remove cover and independent field behavior. Annotations indicate idempotent and non-destructive, which aligns. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with action and resource. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality, removal, and field independence. Could mention that view type must be Kanban or Gallery, but overall sufficient for a set tool without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. Description adds value by clarifying independent field behavior and null usage for removal, beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb (set), resource (cover-image field and crop/fit mode), and scope (Kanban or Gallery views). Differentiates from sibling tools by being specific to cover images, and explains that fields can be set independently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on removing the cover via null and that fields are independent. Does not explicitly state when to use this tool over alternatives, but siblings indicate it is the only cover-related tool, so sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_or_hide_all_columnsAIdempotent
Show or hide every column in a view in one call. Use when you want a clean all-visible or all-hidden baseline. Use set_view_columns when you want to show a specific subset (it hides all then shows only the listed IDs). Use show_or_hide_view_columns for selective per-column toggles.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID | |
| visibility | Yes | true to show all, false to hide all | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not add behavioral context beyond what annotations already provide. Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=false, which adequately convey the safety profile. The description merely restates the action, adding no extra details about side effects, permissions, or behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the main action, and every sentence serves a purpose: function, usage, alternatives. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (4 parameters, 3 required, no output schema) and the presence of detailed annotations and sibling comparisons, the description is fully complete. It explains what the tool does, when to use it, and how it differs from similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as all four parameters have descriptions in the schema. The tool description itself adds no additional meaning beyond the schema's parameter descriptions. With high coverage, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'Show or hide every column in a view in one call.' It clearly distinguishes from sibling tools set_view_columns and show_or_hide_view_columns by stating the scope (all columns vs specific subset or selective toggles).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('when you want a clean all-visible or all-hidden baseline') and provides clear alternatives with specific tool names: 'Use set_view_columns when you want to show a specific subset... Use show_or_hide_view_columns for selective per-column toggles.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_or_hide_view_columnsAIdempotent
Show or hide specific columns in a view without affecting others. Pass field IDs + a visibility flag — every listed ID is set to that state, all other columns are untouched. Use set_view_columns instead when you want to define the full visible set from scratch. Use show_or_hide_all_columns to bulk-toggle every column at once.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID (e.g. "viwXXX") | |
| columnIds | Yes | Array of field IDs to show or hide | |
| visibility | Yes | true to show, false to hide | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true, destructiveHint=false. The description adds critical behavioral context: 'every listed ID is set to that state, all other columns are untouched.' This explains the non-destructive, incremental nature beyond what annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: first states purpose, second explains mechanism with clarity, third gives alternative tool recommendations. Every sentence adds value, no fluff. The important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, 100% schema coverage, and no output schema, the description covers the tool's operation well. It explains the effect on columns and provides usage context. However, it doesn't describe the return value or error scenarios, which could be useful for a tool that modifies state. Still, for a simple toggle with idempotentHint, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds semantic value by clarifying that 'every listed ID is set to that state' (i.e., all columnIds are toggled to the same visibility flag) and that other columns remain unaffected. The debug parameter is also mentioned. This provides meaningful context beyond the schema's property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Show or hide specific columns in a view without affecting others.' It identifies the specific verb ('show or hide') and resource ('columns in a view'), and distinguishes itself from siblings like 'set_view_columns' and 'show_or_hide_all_columns' by highlighting the incremental nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance: 'Use `set_view_columns` instead when you want to define the full visible set from scratch. Use `show_or_hide_all_columns` to bulk-toggle every column at once.' This clearly tells the agent when to use this tool versus alternatives, with named siblings and specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_extension_stateBIdempotent
Enable or disable an extension installation.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| installationId | Yes | The block installation ID (e.g. "bliXXX") | |
| state | Yes | "enabled" or "disabled" | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive behavior. The description adds no further behavioral details beyond stating the action, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is concise and front-loaded. However, it could include more useful information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, minimal description. Lacks information about return values, error handling, or context like what 'extension installation' means, though the tool is simple.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the schema (100% coverage). The tool description adds no additional parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Enable or disable') and the resource ('extension installation'), which distinguishes it from siblings like 'install_extension' or 'remove_extension'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'install_extension' or 'remove_extension'. Missing context for prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_field_configAIdempotent
Update the configuration of any field — computed OR non-computed. Works for formula, rollup, lookup, count, singleSelect, multipleSelects, number, date, text, and all other field types.
COMMON typeOptions by fieldType:
formula: { formulaText: "IF({Field}, 1, 0)" } rollup: { relationColumnId: "fldLINK", foreignTableRollupColumnId: "fldTARGET", formulaText: "SUM(values)" } (formulaText is REQUIRED; old keys fieldIdInLinkedTable/recordLinkFieldId auto-translated) lookup: { relationColumnId: "fldLINK", foreignTableRollupColumnId: "fldTARGET" } (old keys fieldIdInLinkedTable/recordLinkFieldId auto-translated) count: { recordLinkFieldId: "fldXXX" } singleSelect: { choices: [{ name: "Option A", color: "blue" }], default: "selXXX" } multipleSelects: { choices: [{ name: "PC", color: "blue" }, { name: "Xbox", color: "cyan" }], default: ["selXXX"] } number: { format: "integer"|"decimal"|"currency"|"percentV2", precision: 2, symbol: "$", negative: false } text / multilineText / checkbox: omit typeOptions entirely — passing {} causes a 422
SELECT CHOICES:
Pass choices as array [{ name, color? }] or object { selXXX: { name, color? } }.
Color names (confirmed): "blue", "cyan", "teal", "green", "yellow", "orange", "red", "pink", "purple", "gray".
"default" = pre-selected value: string ID for singleSelect, array of IDs for multipleSelects.
ADDING TO AN EXISTING SELECT FIELD (merge, not replace): Choices not in the list are DELETED. To add without losing existing choices:
Call get_table_schema — each existing choice has { id, name, color }
Pass the full list: existing entries WITH their id, new entries WITHOUT: { choices: [{ id: "selXXXXXXXXXXXXXX", name: "Existing" }, { name: "New Choice", color: "pink" }] }
REPLACING ALL CHOICES: just pass the new choices without any IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| fieldId | Yes | The field/column ID (e.g. "fldXXX") | |
| fieldType | Yes | The field type: "formula", "rollup", "lookup", "count", "singleSelect", "multipleSelects", "number", "date", "text", etc. | |
| typeOptions | Yes | Type-specific options — see tool description for shapes per fieldType. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (idempotentHint=true, readOnlyHint=false, destructiveHint=false), the description warns that choices not passed are deleted, which is crucial destructive behavior. It also notes that text fields must omit typeOptions to avoid errors, and that old rollup keys are auto-translated. These details add significant behavioral context not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections, examples, and warnings. It uses headings ('COMMON typeOptions by fieldType', 'SELECT CHOICES', 'ADDING TO AN EXISTING SELECT FIELD') to organize information. Despite its length, every sentence provides essential guidance, making it efficient and appropriately detailed for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description fully covers input parameters and their variations. It addresses multiple field types, edge cases (e.g., preserving existing choices), and error conditions (e.g., 422 for text fields). This ensures an agent can correctly invoke the tool without missing critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds immense value by providing concrete examples and rules for typeOptions per fieldType, explaining the choices format with colors and default IDs, and detailing the merge vs. replace logic. This goes far beyond the schema's brief descriptions, making parameter usage clear and reducing guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates any field configuration, computed or non-computed, and lists numerous field types. This distinguishes it from siblings like create_field (creates new fields) and delete_field (removes fields). The verb 'update' paired with 'field configuration' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive usage guidance for different field types, including examples of typeOptions and how to handle choice fields (adding vs. replacing). However, it does not explicitly state when to prefer this tool over similar siblings like update_formula_field, nor does it mention prerequisites or when not to use it. The guidance is implicit but comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_field_descriptionAIdempotent
Update the description text of a field.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| fieldId | Yes | The field/column ID (e.g. "fldXXX") | |
| description | Yes | The new description text | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a mutation (readOnlyHint=false) but idempotent. The description adds 'update' behavior, but does not disclose whether the description is replaced entirely or what happens if the field does not exist. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no superfluous words. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with 3 required params and no output schema, the description covers the basic operation. However, it lacks mention that the field must exist or that the description is fully replaced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are fully described in the input schema (100% coverage). The description adds no additional meaning beyond the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the target ('description text of a field'), distinguishing it from sibling tools like 'rename_field' or 'update_field_config'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., 'rename_field' for renaming the field name). The usage is implied by the task of updating a description, but no exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_formula_fieldAIdempotent
Update the formula body of an existing formula field — shorthand for update_field_config with type "formula". Automatically preserves existing format/precision typeOptions (e.g. percentV2, precision). Use update_field_config to change the field type or other typeOptions.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| fieldId | Yes | The field/column ID (e.g. "fldXXX") | |
| formulaText | No | The new formula text | |
| formulaFilePath | No | Path to a local .formula or .fx file. When provided, reads formula from file instead of formulaText (unblocks large formulas that exceed LLM output limits). The # AT: metadata header is stripped automatically. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, readOnlyHint=false, destructiveHint=false. Description adds context about preserving existing format/precision typeOptions, which is useful behavioral insight beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences conveying purpose, usage, and key behaviors with no redundancy. Front-loaded with action, earning its sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and moderate complexity, the description adequately covers purpose, usage, behavioral context, and parameter semantics. Missing return value info is acceptable since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but description adds meaning by explaining the file path option for large formulas and automatic stripping of metadata header, providing value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool updates the formula body of a formula field, identifies it as a shorthand for update_field_config with type 'formula', and distinguishes from siblings like update_field_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (to update formula body) and when to use the sibling update_field_config (to change field type or other typeOptions), providing clear guidance and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_frozen_column_countAIdempotent
Set the frozen-column divider position for a grid view. The first N columns from the left are frozen and stay visible during horizontal scroll.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID | |
| frozenColumnCount | Yes | Number of columns to freeze (counted from the left). 0 unfreezes all. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotency. The description adds that setting to 0 unfreezes all, which is useful. However, it does not disclose behavior on non-grid views or required permissions, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences effectively communicate the core functionality with no wasteful words. Could potentially be more succinct but already well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose but lacks constraints (e.g., valid range for frozenColumnCount, behavior if view is not a grid). No output schema exists, so description should be more precise. Adequate for a simple tool but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal extra meaning beyond schema (e.g., 'frozen-column divider position') but does not explain the debug parameter. The schema already describes each param adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the frozen-column divider position for a grid view, specifying that the first N columns freeze. This distinguishes it from other view manipulation siblings like set_view_columns or apply_view_sorts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for freezing columns in a grid view but provides no explicit when-to-use or when-not-to-use guidance. No alternative tools are mentioned, though siblings exist for other view settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_record_template_descriptionAIdempotent
Set or update the description text of a record template.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| templateId | Yes | The template ID (rtpXXX) | |
| description | Yes | Description text (pass empty string to clear) | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and readOnlyHint=false, so the description adds moderate value by noting 'pass empty string to clear' for the description parameter. However, it omits other behavioral traits like error handling or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no fluff, but could be expanded to include usage guidance or parameter tips without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with full schema descriptions and annotations, the description is adequate but lacks usage context to differentiate from siblings. No output schema exists, so return value expectations are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 4 parameters with detailed descriptions (100% coverage). The tool description adds no extra parameter insight beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set or update' and the resource 'description text of a record template', making the tool's purpose unambiguous. It distinguishes itself from siblings like 'rename_record_template' and 'set_record_template_cell'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no context on when to use this tool vs alternatives. While the purpose is clear, there is no guidance on prerequisites, exclusions, or comparison with sibling tools like 'set_record_template_cell'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_view_descriptionAIdempotent
Update the description text of a view.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID (e.g. "viwXXX") | |
| description | Yes | The new description text. Use empty string to clear. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and non-destructive. Description adds no extra behavioral details such as side effects or response format, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence front-loads the core action. No redundant or extraneous wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (simple text update) and absence of output schema, the description is mostly sufficient. Could optionally mention return behavior (e.g., returns updated view), but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by noting that the description parameter can be an empty string to clear the existing text, which is not explicitly stated in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'update' and resource 'description text of a view'. Distinguishes from sibling tools like rename_view or update_field_description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives like update_field_description or update_record_template_description. Implicit usage is clear, but lacks explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_view_filtersAIdempotent
Update the filter configuration of a view. Supports AND/OR conjunctions, nested filter groups, and Airtable's internal filter operators.
FILTER FORMAT: Leaf filter: { columnId: "fldXXX", operator: "", value: } Nested group: { type: "nested", conjunction: "and"|"or", filterSet: [...] } Clear filters: { filterSet: [], conjunction: "and" } (or pass filters: null)
Filter IDs (flt-prefixed) are auto-generated — do NOT include them.
OPERATORS by field type — verified against Airtable's internal API (2026-04-17 capture; user report 2026-04-30):
Text / URL / Email / Phone:
"=" (exact match — value: string)
"!=" (not equal)
"contains" (value: string)
"doesNotContain"
"isEmpty" / "isNotEmpty" — input-side; auto-rewritten to "=" / "!=" "" before sending (the internal API rejects them on text fields with FAILED_STATE_CHECK)
Number / Percent / Currency:
"=", "!=", "<", ">", "<=", ">=", "isEmpty", "isNotEmpty"
Single select:
"=" (value: "selXXX" — the choice ID, NOT the choice name)
"!="
"isAnyOf" / "isNoneOf" (value: ["selXXX", "selYYY"] — array of choice IDs)
"isEmpty" / "isNotEmpty"
Multiple select:
"hasAnyOf", "hasAllOf", "hasNoneOf", "isExactly", "isEmpty", "isNotEmpty"
Checkbox:
"=" (value: true|false)
Date (absolute):
"is", "isBefore", "isAfter", "isOnOrBefore", "isOnOrAfter", "isEmpty", "isNotEmpty"
value: ISO date string e.g. "2026-01-15"
Date (relative) — "isWithin":
value: { "mode": "", "timeZone": "", "shouldUseCorrectTimeZoneForFormulaicColumn": true }
timeZone: IANA string e.g. "Europe/Istanbul", "America/New_York", "UTC"
Modes (no numberOfDays): "pastWeek", "pastMonth", "pastYear",
"nextWeek", "nextMonth", "nextYear",
"thisCalendarMonth", "thisCalendarYear"
Modes (add numberOfDays key): "pastNumberOfDays", "nextNumberOfDays"
Example — past week: { "operator": "isWithin", "value": { "mode": "pastWeek", "timeZone": "UTC", "shouldUseCorrectTimeZoneForFormulaicColumn": true } }
Example — past N days: { "operator": "isWithin", "value": { "mode": "pastNumberOfDays", "numberOfDays": 7, "timeZone": "UTC", "shouldUseCorrectTimeZoneForFormulaicColumn": true } }
Example — this month: { "operator": "isWithin", "value": { "mode": "thisCalendarMonth", "timeZone": "UTC", "shouldUseCorrectTimeZoneForFormulaicColumn": true } }
Formula / Lookup / Rollup (text result type):
Same as Text. "isEmpty" / "isNotEmpty" are auto-rewritten to "=" / "!=" "".
Linked record (foreignKey):
"contains" (value: linked record name) works.
"isEmpty" / "isNotEmpty" do NOT work — the call throws a clear error directing
you to a helper formula like IF(LEN({Linked} & "")>0,"yes","") and a "=" / "!=" filter on that helper.
AUTO-NORMALIZATION (applied client-side before the request):
"is" → "=" (the internal API does not recognize "is")
"isNot" → "!="
"isAnyOf" with a single-element array or scalar value → "=" with scalar value
"isEmpty" → "=" "" on text / formula(text) / lookup(text) / rollup(text) fields
"isNotEmpty" → "!=" "" on text / formula(text) / lookup(text) / rollup(text) fields For single-select, value must be the choice ID (selXXX) — use get_base_schema to find IDs.
NESTING LIMIT:
The internal API accepts at most 2 levels of nesting (top conjunction + one
layer of nested groups). Deeper trees are rejected with FAILED_STATE_CHECK.
Workaround: flatten by repeating shared conditions inside each leaf group,
e.g. (A AND B) OR (A AND C) instead of A AND (B OR C) if you need
another nested AND inside the OR. The error message returned by this tool
flags depth-related failures explicitly.
EXAMPLES: Text equals: { filterSet: [{ columnId: "fldXXX", operator: "=", value: "Prime" }], conjunction: "and" } SingleSelect equals: { filterSet: [{ columnId: "fldXXX", operator: "=", value: "selABC123" }], conjunction: "and" } Text contains: { filterSet: [{ columnId: "fldXXX", operator: "contains", value: "hello" }], conjunction: "and" } Number range: { filterSet: [{ columnId: "fldX", operator: ">=", value: 10 }, { columnId: "fldX", operator: "<=", value: 100 }], conjunction: "and" } Nested (a AND (b OR c)): { filterSet: [{ columnId: "fldA", operator: "contains", value: "x" }, { type: "nested", conjunction: "or", filterSet: [{ columnId: "fldB", operator: "=", value: 1 }] }], conjunction: "and" }
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID to update filters on (e.g. "viwXXX") | |
| filters | Yes | Filter configuration object with filterSet array and conjunction. See tool description for format and examples. | |
| operation | No | How the given filters interact with existing filters. "replace" (default) overwrites; "append" adds the provided filterSet entries to the existing top-level filterSet (useful when you only want to add conditions without rewriting the whole filter payload). | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors beyond annotations: auto-normalization of operators, nesting limits (at most 2 levels), and specific field-type operator restrictions (e.g., isEmpty on linked records throws an error). Annotations only provide idempotentHint=true and non-destructive hint, so the description adds significant behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with clear sections (FILTER FORMAT, OPERATORS, AUTO-NORMALIZATION, etc.). It is front-loaded with the purpose. While every sentence provides value, it could be slightly more concise without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of filter configurations across many field types, the description covers all necessary details: format, operators, auto-normalization, nesting limits, and examples. No output schema exists, but return values are not critical for this tool's use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds enormous value by detailing filter format, operators per field type, auto-normalization, nesting limits, and examples. The schema description for the 'filters' parameter explicitly refers to the tool description, showing the description is essential for understanding the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update the filter configuration of a view,' specifying the verb (update) and resource (view's filter configuration). It distinguishes from sibling tools like apply_view_sorts and set_view_columns by focusing specifically on filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive guidance on how to construct filters, but does not explicitly state when to use this tool versus alternatives or when not to use it. Usage is implied through the detailed format and operator explanations, but no exclusions or comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_view_group_levelsAIdempotent
Set grouping on a view. Default mode replaces all existing group levels — pass an empty array with operation="replace" to clear grouping. Use operation="append" to add new group levels below the existing ones without rewriting them.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID (e.g. "viwXXX") | |
| groupLevels | Yes | Array of group levels. Empty array [] clears grouping when operation="replace". | |
| operation | No | How the given groupLevels interact with existing ones. "replace" (default) overwrites; "append" adds the provided levels after the existing group stack. | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: describes behavior of replace (overwrites) and append (adds below), and how to clear grouping. No contradiction with annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then mode details. Every sentence is essential and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: setting, appending, clearing. No output schema, but debug parameter hints at raw response. Could mention return values, but overall sufficient for a 5-param tool with full schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all parameters. The description does not add extra parameter semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set grouping on a view.' with specific verb and resource, and distinguishes two modes (replace vs append) which differentiates it from sibling tools like update_view_filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use replace (default) vs append, and how to clear grouping with an empty array and operation='replace'. Provides clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_view_row_heightAIdempotent
Change the row height of a grid view.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID (e.g. "viwXXX") | |
| rowHeight | Yes | Row height: "small", "medium", "large", or "xlarge" | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotency and non-destructive behavior. The description adds that the tool applies to grid views only, which is helpful context beyond annotations. However, it does not disclose potential errors for non-grid views or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 8 words, front-loaded with verb and resource. No unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (4 params, no output schema), the description is adequate. It specifies the view type (grid) and the action. Could mention idempotency or prerequisites, but annotations cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not elaborate on parameters beyond what schema provides, and the rowHeight values are already listed in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Change' and resource 'row height of a grid view', clearly distinguishing it from sibling tools like update_view_filters or set_view_cell_wrap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., set_view_cell_wrap for wrap settings). No when-not-to-use or prerequisite conditions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_formulaARead-onlyIdempotent
Validate a formula expression before creating or updating a formula field. Returns whether the formula is valid and what result type it produces (text, number, etc). Use this before create/update to catch errors early.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| tableId | Yes | The table ID where the formula will be used | |
| formulaText | Yes | The formula expression to validate | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns validity and result type, but doesn't describe error behavior or rate limits, which is acceptable given annotations cover safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and key information. Every sentence adds value without repetition or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple validation tool with annotations and no output schema, the description is complete: it explains purpose, usage guidance, and return value (validity and result type). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description doesn't add meaning beyond the schema; it merely refers to 'formula expression' which matches the formulaText parameter already described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly describes the tool's function ('Validate a formula expression') and its context ('before creating or updating a formula field'). Explicitly differentiates from sibling tools like create_formula_field by focusing on validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use this before create/update to catch errors early.' Does not explicitly mention when not to use, but the purpose is clear and distinct from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly defined purpose with detailed descriptions, enabling an agent to distinguish even closely related operations (e.g., move_overall_columns vs move_visible_columns). There is no overlap that would cause confusion.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_field, list_tables, update_view_filters). No mixed conventions or ambiguous verb choices.
With 67 tools, the server is far beyond the typical 3-15 well-scoped range. While it covers many aspects of Airtable, the number is excessive and would overwhelm an agent, leading to slower selection.
Surprisingly missing fundamental record CRUD operations (create_record, update_record, delete_record) despite having many advanced features like view configuration and extension management. This gap severely limits the server's usefulness for core Airtable tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Official Airtable MCP server — database and operations layer for agents.
Airtable MCP Pack — wraps the Airtable REST API v0
Glide's official MCP server — build, manage, and operate GlideOS apps, data, and workflows.
The official Planning Center MCP server for interacting with your ministry's data.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA Model Context Protocol server that provides read and write access to Airtable databases. This server enables LLMs to inspect database schemas, then read and write records.3,739456TypeScriptMIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that provides tools for programmatically managing Airtable bases, tables, fields, and records through Claude Desktop or other MCP clients.122,03675MIT
- AlicenseNot gradedqualityBmaintenanceA production-ready MCP server for Airtable that enables programmatic management of bases, tables, fields, and records through Claude Desktop or other MCP clients using Effect for type-safe and robust API interactions.171MIT
- AlicenseNot gradedqualityDmaintenanceExtends Airtable MCP server with full CRUD, bulk import/upsert, data analysis, schema validation, and data export capabilities.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Automations-Project/VSCode-Airtable-Formula'
If you have feedback or need assistance with the MCP directory API, please join our Discord server