{"id":15293,"library":"airtable-mcp-server","title":"Airtable Model Context Protocol Server","description":"The `airtable-mcp-server` package provides a Model Context Protocol (MCP) server designed to enable Large Language Models (LLMs) with read and write access to Airtable databases. It exposes a set of tools allowing LLMs to inspect Airtable schemas, then read and write records. The current stable version is 1.13.0, indicating a pre-1.x release cadence focusing on feature additions and minor fixes, with frequent patch and minor updates. Key differentiators include its adherence to the Model Context Protocol, providing structured access to Airtable via LLMs, and its ease of deployment via `npx` or integration with platforms like Claude Desktop, Cursor, and Cline. It handles schema inspection, record manipulation, and attachment uploads, abstracting Airtable's API for AI agents.","status":"active","version":"1.13.0","language":"javascript","source_language":"en","source_url":"https://github.com/domdomegg/airtable-mcp-server","tags":["javascript","typescript"],"install":[{"cmd":"npm install airtable-mcp-server","lang":"bash","label":"npm"},{"cmd":"yarn add airtable-mcp-server","lang":"bash","label":"yarn"},{"cmd":"pnpm add airtable-mcp-server","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency for implementing the Model Context Protocol, vital for server functionality.","package":"@modelcontextprotocol/sdk","optional":false},{"reason":"Used as the underlying web server framework for handling HTTP requests.","package":"express","optional":false},{"reason":"The official Airtable API client, essential for interacting with Airtable databases.","package":"airtable","optional":false}],"imports":[{"note":"Primarily an ESM module. `startServer` is the main function for programmatic server instantiation.","wrong":"const { startServer } = require('airtable-mcp-server');","symbol":"startServer","correct":"import { startServer } from 'airtable-mcp-server';"},{"note":"TypeScript type for configuring the server, useful for programmatic setup.","symbol":"ServerConfig","correct":"import type { ServerConfig } from 'airtable-mcp-server';"},{"note":"TypeScript type defining options for Airtable API interaction, typically part of `ServerConfig`.","symbol":"AirtableOptions","correct":"import type { AirtableOptions } from 'airtable-mcp-server';"}],"quickstart":{"code":"import { startServer } from 'airtable-mcp-server';\n\nconst PORT = process.env.PORT ? parseInt(process.env.PORT, 10) : 3000;\nconst AIRTABLE_API_KEY = process.env.AIRTABLE_API_KEY ?? '';\nconst AIRTABLE_BASE_ID = process.env.AIRTABLE_BASE_ID ?? '';\n\nasync function main() {\n  if (!AIRTABLE_API_KEY) {\n    console.error('AIRTABLE_API_KEY environment variable is required.');\n    process.exit(1);\n  }\n\n  console.log(`Starting Airtable MCP server on port ${PORT}...`);\n  try {\n    const server = await startServer({\n      port: PORT,\n      airtableApiKey: AIRTABLE_API_KEY,\n      airtableBaseIds: AIRTABLE_BASE_ID ? [AIRTABLE_BASE_ID] : [], // Optional: specify base IDs\n      // Additional configuration options can be added here\n    });\n    console.log(`Airtable MCP server listening at http://localhost:${PORT}`);\n\n    // Optional: Graceful shutdown\n    process.on('SIGTERM', () => {\n      console.log('SIGTERM signal received: closing HTTP server');\n      server.close(() => {\n        console.log('HTTP server closed');\n      });\n    });\n  } catch (error) {\n    console.error('Failed to start server:', error);\n    process.exit(1);\n  }\n}\n\nmain();","lang":"typescript","description":"This quickstart demonstrates how to programmatically start the Airtable MCP server using its `startServer` function, configuring it with an Airtable API key and an optional base ID, and setting up a basic shutdown handler."},"warnings":[{"fix":"Review the new MCP SDK architecture and update any custom server logic or extensions to align with the changes introduced in v1.9.6.","message":"The package underwent a 'Refactor to modern MCP SDK architecture'. Users relying on internal structures or extending the server's previous architecture may experience breaking changes.","severity":"breaking","affected_versions":">=1.9.6"},{"fix":"Upgrade to v1.13.0 or newer to benefit from the fix that addresses body size limits. If on an older version and unable to upgrade, manual configuration of `express.json({ limit: '...' })` might be necessary if running programmatically.","message":"Previously, the `express.json()` body size limit could cause issues with large payloads, leading to silent failures or unexpected behavior when writing extensive records or attachments.","severity":"gotcha","affected_versions":"<1.13.0"},{"fix":"Review your data payloads for `createRecord` and `updateRecords` operations to ensure they are compatible with Airtable's typecasting behavior. Adjust data types if unintended coercions occur.","message":"The `createRecord` and `updateRecords` functions now include `typecast: true` by default. This change affects how data types are handled during write operations, potentially coercing values if the provided data does not strictly match Airtable field types.","severity":"gotcha","affected_versions":">=1.12.0"},{"fix":"Update any tools or configurations that consume the server's `server.json` metadata to conform to the new schema introduced in v1.9.1.","message":"The `server.json` schema was updated to 'MCP registry schema 2025-10-17'. While not directly breaking for the server's runtime, integrators or tools relying on the older schema for metadata may experience issues.","severity":"deprecated","affected_versions":"<1.9.1"}],"env_vars":null,"last_verified":"2026-04-21T00:00:00.000Z","next_check":"2026-07-20T00:00:00.000Z","problems":[{"fix":"Set the `AIRTABLE_API_KEY` environment variable with a valid Airtable Personal Access Token (e.g., `export AIRTABLE_API_KEY='pat123.abc123'`). Ensure the token has appropriate scopes and access to the desired bases.","cause":"The server was started without the necessary Airtable Personal Access Token configured in the environment variables.","error":"AIRTABLE_API_KEY environment variable is required."},{"fix":"Upgrade to `airtable-mcp-server` v1.13.0 or newer. If running an older version programmatically, you might need to manually configure the `express.json` middleware with a larger `limit` option.","cause":"An attempt was made to send a large data payload (e.g., many records or a large attachment) to the server, exceeding the configured `express.json()` body size limit.","error":"Failed to handle large payload: Request body too large"},{"fix":"This issue was resolved in v1.10.0. Ensure you are using `airtable-mcp-server` v1.10.0 or newer.","cause":"An issue occurred during server startup related to the `smithery.yaml` entry point for OAuth metadata.","error":"OAuth metadata startup error"}],"ecosystem":"npm"}