You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(mcp): address 4 open bugs from bulk-delete report
Bug 6 (HIGH): Silent success masked as timeout
- Wrap both destroyMultipleColumns calls in try/catch in deleteFields()
- On network/timeout error, call _verifyFieldsDeletion() which invalidates
cache, re-fetches schema, and checks which fields are actually gone
- Fields missing from fresh schema → succeeded (timedOut:true); still
present → failed with honest error message
Bug 7 (MEDIUM): Name-verification timeout on 300+ field tables
- Thread evalTimeoutMs through auth._rawApiCall / _apiCall / get()
- getApplicationData() now passes evalTimeoutMs:60_000 (was hardcoded 15s)
- Add getApplicationDataForTable(appId, tableId) using includeDataForTableIds
for targeted single-table fetches — avoids downloading the full base schema
when the caller already knows the tableId
- resolveTable() uses targeted fetch when tableIdOrName starts with 'tbl',
falling back to full fetch for name-based lookups
- getApplicationDataForTable() detects if server ignored the filter (returned
all tables) and stores the result in the full cache to avoid redundant fetches
Bug 5 (Partial→Fixed): Checkpoint not written on timeout
- Flows from Bug 6 fix: post-timeout verification now correctly populates
succeeded[] so the checkpoint handler has accurate data to write
Bug 3 (MEDIUM): list_fields returns full 2.7MB schema
- Add optional fieldType param: filter fields by type ("formula", "text", …)
- Add optional nameContains param: case-insensitive substring match on name
- Update tool description to mention filtering on large tables
Bug 4 (Airtable cursor behavior — not actionable)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: packages/mcp-server/src/index.js
+11-4Lines changed: 11 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -212,13 +212,15 @@ const TOOLS = [
212
212
},
213
213
{
214
214
name: 'list_fields',
215
-
description: 'List all fields (columns) in a specific table of an Airtable base.',
215
+
description: 'List fields (columns) in a table. Returns id, name, type, and typeOptions for each field. On large tables (100+ fields) use fieldType or nameContains to filter the response and reduce context size.',
0 commit comments