Airtable User MCP

Extensión de VS Code y servidor MCP para Airtable, editor de fórmulas, herramientas de esquema y más de 30 utilidades de automatización para bases, vistas y campos.

Documentación

airtable-user-mcp — 72 Airtable tools (plus manage_tools) your AI assistant can't get from the official Airtable REST API

Fórmulas, Scripts, Automatización, MCP y LSP de Airtable

Editor de fórmulas, scripts y automatización · Servidor MCP (72 herramientas + manage_tools) · Servidor de lenguaje · Habilidades de IA

VS CodeOpen VSXnpm · MCPnpm · LSPRegistro MCP
VS Code version
VS Code installs
Open VSX version
Open VSX downloads
npm version
npm downloads per week
LSP version MCP Registry listing

CI status Latest release Last commit GitHub stars License


No está afiliado con Airtable Inc. Este es un proyecto mantenido por la comunidad.

Desarrollo activo — Pueden aparecer cambios incompatibles entre versiones menores. Fija una versión si necesitas estabilidad.


Características principales

CaracterísticaQué haceTipos de archivo
Editor de fórmulasResaltado de sintaxis, IntelliSense, embellecer / minimizar.formula, .min.formula
Editor de scriptsAutocompletado, documentación al pasar el cursor, diagnósticos.ats, .script
Editor de automatizacionesAutocompletado, documentación al pasar el cursor, diagnósticos.ata, .automation
Servidor MCP (72 herramientas + manage_tools)API interna completa de Airtable — esquema, vistas, campos, registros, extensiones, plantillas—
Servidor de lenguaje (LSP)Soporte multieditor independiente — Neovim, Zed, Helix, OpenCodeTodo lo anterior
Configuración automática del IDEConfiguración MCP con un clic para Cursor, Windsurf, Claude Desktop, Cline, Amp—
Habilidades de IAReglas y flujos de trabajo predefinidos específicos de Airtable para asistentes de codificación con IA—
Demonio + TúnelServidor de fondo persistente; acceso remoto opcional mediante Cloudflare o ngrok—
Perfiles de herramientasread-only (12 herramientas) / safe-write (54 herramientas) / full (72 herramientas) / custom ámbitos de permisos—
Autenticación con llavero del sistemaInicio de sesión de Airtable basado en navegador con SSO/2FA — credenciales en el llavero de tu sistema operativo—

Por qué existe esto

La API web pública de Airtable nunca ha expuesto algunas de las tareas más comunes que los desarrolladores realmente necesitan: crear un campo de fórmula, ajustar el conjunto de filtros de una vista, instalar una extensión o validar una fórmula antes de que rompa producción. El servidor MCP oficial de Airtable es un envoltorio delgado sobre esa misma API REST, por lo que hereda todas esas carencias.

airtable-user-mcp es un complemento al MCP oficial de Airtable, no un reemplazo. Utiliza la propia API interna de Airtable (la que usa la interfaz web) para cubrir exactamente la superficie que la API REST no puede alcanzar. Registra ambos servidores en tu cliente de IA y tu asistente obtendrá la experiencia completa de automatización de Airtable: registros vía HTTP mediante el MCP oficial, más esquema, fórmulas, vistas y extensiones a través de este.

Architecture: AI Client → Official MCP + airtable-user-mcp → Airtable

Qué añade airtable-user-mcp además del MCP oficial de Airtable

Este es un mapa de cobertura, no una decisión de "elige uno" — los dos servidores son complementarios y están diseñados para funcionar lado a lado.

CapacidadMCP oficial de Airtableairtable-user-mcp
Total de herramientas~1773 (72 + manage_tools)
Modelo de autenticaciónToken de acceso personal o OAuth, configuración por ámbitoInicia sesión una vez con tu cuenta normal de Airtable (SSO/2FA compatible)
TransporteHTTP (remoto)stdio (local, privado)
Los datos nunca salen de tu máquina❌ Las solicitudes pasan por mcp.airtable.com✅ Se ejecuta localmente contra la API de Airtable
Lectura de esquema (bases, tablas, campos, vistas)Parcial (sin configuración de vistas)Completa — filtros, ordenaciones, agrupaciones, visibilidad, altura de fila, descripciones
Lectura de registros con valores de campo resueltosParcial✅ query_records — devuelve campos de búsqueda/acumulación/fórmula completamente resueltos
Búsqueda de registros por texto (incl. campos de búsqueda)❌ filterByFormula con FIND()/SEARCH() falla silenciosamente en campos de búsqueda✅ query_records.search — coincidencia de subcadena en todos los valores resueltos
Duplicar registros❌✅ duplicate_records
Crear campos de fórmula❌ UNSUPPORTED_FIELD_TYPE_FOR_CREATE✅
Crear campos de acumulación❌✅
Crear campos de búsqueda / multipleLookupValues❌✅
Crear campos de conteo❌✅
Actualizar el texto de fórmula de un campo existente❌✅
Validar una fórmula antes de aplicarla❌✅
Renombrar / duplicar / eliminar campos de forma seguraParcial (sin duplicado, sin resumen de dependencias)✅ con protección expectedName + vista previa de dependencias
Crear vistas (cuadrícula/formulario/kanban/calendario/galería/gantt/lista)❌ (la API no tiene endpoint de creación de vistas)✅
Establecer/añadir filtros de vistas (AND/OR anidados)❌✅
Establecer ordenaciones de vistas❌✅
Establecer agrupación de vistas❌✅
Cambiar el orden de columnas❌✅
Mostrar/ocultar columnas en una vista❌✅
Cambiar la altura de fila❌✅
Duplicar una vista con su configuración completa❌✅
Descripciones de vistas, ajuste de celdas, portadas, configuración de colores, fechas de calendario, columnas congeladas❌✅
Secciones de la barra lateral (crear, renombrar, mover, eliminar)❌✅
Plantillas de registros (crear, rellenar previamente, duplicar, aplicar, eliminar)❌✅
Metadatos de formularios (descripción, redirección, atribución, marca)❌✅
Gestión de extensiones / bloques (instalar, habilitar, renombrar, duplicar, eliminar)❌✅
Crear páginas de panel❌✅
Autodiagnóstico del demonio (¿sesión muerta? ¿navegador ocupado? ¿demonio desaparecido?)❌✅ manage_daemon action=status, además de iniciar / reiniciar / detener / túnel / rotación de tokens
Perfiles de herramientas y activadores por herramienta❌✅ solo lectura (12) / escritura segura (54) / completo (72) / personalizado
Protecciones de seguridad para acciones destructivasDepende de los ámbitos de token✅ coincidencia expectedName, resumen de dependencias, indicador force
Límite de creación de registros en lote10 / solicitudUsa el mismo límite de Airtable; sin restricción adicional
Instalación con un clic en VS Code / Cursor / Windsurf / Cline / AmpEdición manual de JSON por IDE✅ Un clic mediante la extensión complementaria
Editor de fórmulas con IntelliSense❌✅ (extensión de VS Code)
Almacenamiento de credencialesTú gestionas el PATLlavero del sistema, actualización automática
Requisito de planPlan de Airtable con acceso a API + ámbitos de tokenCualquier plan al que puedas iniciar sesión
PrecioGratisGratis, MIT

Fuentes: Documentación oficial del MCP de Airtable, Referencia de la API web de Airtable y el hilo de recopilación UNSUPPORTED_FIELD_TYPE_FOR_CREATE.


Usa ambos MCP juntos

npx -y airtable-user-mcp login          # one-time browser login
claude mcp add airtable --scope user -- npx -y airtable-user-mcp   # Claude Code

airtable-user-mcp es aditivo. Registra el MCP oficial de Airtable siguiendo la guía de configuración de Airtable y luego añade este junto a él en el mismo bloque mcpServers:

{
  "mcpServers": {
    "airtable-user-mcp": {
      "command": "npx",
      "args": ["-y", "airtable-user-mcp"]
    }
  }
}

Tu cliente MCP expondrá todas las herramientas de ambos servidores. Las dos entradas son independientes — renombra las claves (airtable, airtable-official, airtable-user-mcp, etc.) como tenga sentido para tu flujo de trabajo.


Qué hay en este repositorio

Este monorepo incluye tres productos desde un único árbol de código fuente:

ProductoInstalación
Fórmulas, Scripts, Automatización, MCP y LSP de Airtable — extensión de VS CodeMarketplace
airtable-user-mcp — servidor MCP independientenpx airtable-user-mcp
airtable-user-lsp — servidor de lenguaje de Airtablenpx airtable-user-lsp

Demostración

Using Claude Code to manage base views, computed fields & extensions — Reddit demo


Características

Servidor MCP (72 herramientas + manage_tools)

Gestiona bases de Airtable con capacidades no disponibles a través de la API REST oficial:

CategoríaHerramientasDestacados
Lectura de esquema11Inspección completa del esquema — bases, tablas, campos, vistas, secciones de la barra lateral, plantillas de registros; descarga de todos los campos de fórmula a archivos locales
Lectura de registros1query_records — hasta 1 000 registros/llamada con valores de campo resueltos; el parámetro search funciona en campos de búsqueda/acumulación (la API REST filterByFormula no)
Escritura de registros4create_records / update_records / duplicate_records / upload_attachment (la única forma de escribir celdas multipleAttachments por URL)
Registros destructivos1delete_records — eliminación en lote de registros de una tabla
Gestión de tablas3crear / renombrar / eliminar tablas
Gestión de campos9Crear campos de fórmula / acumulación / búsqueda / conteo, validar fórmulas, actualizar descripciones, eliminar uno o varios
Configuración de vistas20Filtros, ordenaciones, agrupaciones, columnas, congelación, altura de fila, portadas, reglas de color, fechas de calendario, crear / duplicar / renombrar / eliminar
Secciones de la barra lateral4Crear, renombrar, mover a sección, eliminar (promueve automáticamente las vistas contenidas a no agrupadas)
Plantillas de registros8Crear / renombrar / describir / establecer celdas / establecer columnas / duplicar / aplicar / eliminar andamios de fila guardados
Metadatos de formularios2Descripción, URL de redirección, atribución, copia para el encuestado, marca (vistas de formulario heredadas)
Gestión de extensiones7Crear, instalar, habilitar/deshabilitar, renombrar, duplicar, eliminar extensiones
Gestión de herramientas1Listar perfiles, cambiar de perfil, activar/desactivar herramientas/categorías (meta-herramienta, siempre habilitada — no forma parte de ningún perfil)
Sincronización de bases1sync_base — copia el esquema, las vistas y los registros de una base a otra. mode=plan/diff/status son de solo lectura; mode=apply modifica el destino y, con policy=mirror más los indicadores de confirmación, puede eliminar tablas, campos, vistas, secciones y registros; mode=reconcile actualiza el estado de mapeo local. Protegido contra desviaciones y reanudable mediante diario.
Control del demonio1manage_daemon — action=status es autodiagnóstico de solo lectura: estado activo del demonio, transporte, tiempo de funcionamiento, URL del túnel y el estado de la sesión en vivo (sesión muerta, último disparo del interruptor con el cuerpo de respuesta propio de Airtable, cola de navegador ocupado) que distingue "demonio desaparecido" de "sesión muerta" de "navegador ocupado". También start / restart / stop / tunnel_enable / tunnel_disable / token_rotate. Solo perfil full.

Consulta la referencia completa de herramientas en packages/mcp-server/README.md.

Un demonio compartido

La extensión inicia el demonio MCP compartido siempre que una llamada de herramienta lo necesite, de modo que cada ventana de VS Code usa una sesión de navegador de Airtable en lugar de una por ventana — esa duplicación era lo que producía la mayoría de los errores de "sesión muerta". Un demonio que detengas desde el panel permanece detenido y, si no puede iniciarse, la extensión recurre a un servidor por ventana para que tus herramientas sigan funcionando.

Debido a que normalmente hay un daemon en ejecución, otros clientes MCP en la misma máquina (Claude Desktop, Cursor, Cline, Amp) se conectan a él y, por lo tanto, se ejecutan bajo su modo de autenticación y cliente HTTP en lugar de los suyos propios — deliberadamente, ya que dos navegadores en un perfil de Airtable se bloquean. Cada uno de estos clientes imprime una línea de stderr indicándolo. Ver Compartir un daemon entre clientes.

Servidor LSP

airtable-user-lsp es un servidor de lenguaje independiente para archivos de fórmula, script y automatización de Airtable: funciona en cualquier editor compatible con LSP, no solo en VS Code.

# stdio mode — works standalone, no daemon needed
npx airtable-user-lsp --stdio

Características: diagnósticos, autocompletado, documentación al pasar el cursor y ayuda de firmas para archivos .formula, .ats y .ata.

Cuando el daemon está en ejecución, genera automáticamente airtable-user-lsp --tcp para que varios editores compartan una instancia del servidor de lenguaje. El puerto TCP se escribe en ~/.airtable-user-mcp/daemon.lock como port_lsp.

Ver packages/lsp-server/README.md para la configuración por editor (Neovim, Zed, OpenCode, Helix).


IDEs compatibles

La extensión configura automáticamente MCP para todos los principales editores con IA:

Claude DesktopClaude CodeCursorWindsurfClineAmp

¿No usas VS Code? Usa el servidor MCP independiente directamente:

npx airtable-user-mcp

Encuéntranos


Requisitos

  • VS Code ^1.100.0 (o cualquier fork que exponga la API McpServerDefinitionProvider)
  • Node.js — incluido a través del runtime de VS Code; no se necesita instalación adicional
  • Google Chrome (o Edge / Chromium) — el flujo de inicio de sesión de Airtable usa Patchright en modo headless. Se recurre a msedge en Windows y a chromium en Linux. La extensión muestra una advertencia accionable si no se detecta un navegador compatible.

Desarrollo

Este es un monorepo de pnpm.

PaqueteDescripción
packages/extensionHost de extensión de VS Code (TypeScript + tsup)
packages/webviewWebview de panel de React (Vite + Tailwind v4)
packages/sharedTipos compartidos y protocolo de mensajes
packages/mcp-serverairtable-user-mcp — Servidor MCP de Node ESM
packages/lsp-serverairtable-user-lsp — Servidor LSP para archivos de fórmula / script / automatización
scripts/Herramientas de compilación (bundler esbuild, venta de dependencias)
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)

Cómo se empaqueta el servidor MCP: scripts/bundle-mcp.mjs compila con esbuild packages/mcp-server/src/ en packages/extension/dist/mcp/. Luego scripts/prepare-package-deps.mjs vende patchright, patchright-core, otpauth, impit y @ngrok/ngrok en dist/node_modules/ antes de que se ejecute vsce package, por lo que una extensión instalada no necesita npm install en tiempo de ejecución.

VSIX específicos por plataforma. impit (el cliente HTTP Chrome-TLS) y @ngrok/ngrok (el proveedor de túnel ngrok) mantienen su binario nativo compilado en paquetes npm separados por plataforma, y solo se instala el que coincide con la máquina de compilación. Por lo tanto, un solo VSIX no puede incluir binarios nativos funcionales para todas las plataformas. En su lugar, publicamos un VSIX por plataforma, cada uno con solo sus propios binarios: VS Code y Open VSX entregan a cada usuario la compilación que coincide con su máquina. Objetivos compatibles:

Objetivoimpit@ngrok/ngrok
win32-x64impit-win32-x64-msvc@ngrok/ngrok-win32-x64-msvc
win32-arm64impit-win32-arm64-msvc@ngrok/ngrok-win32-arm64-msvc
darwin-x64impit-darwin-x64@ngrok/ngrok-darwin-x64
darwin-arm64impit-darwin-arm64@ngrok/ngrok-darwin-arm64
linux-x64impit-linux-x64-gnu@ngrok/ngrok-linux-x64-gnu
linux-arm64impit-linux-arm64-gnu@ngrok/ngrok-linux-arm64-gnu
alpine-x64impit-linux-x64-musl@ngrok/ngrok-linux-x64-musl
alpine-arm64impit-linux-arm64-musl@ngrok/ngrok-linux-arm64-musl

linux-armhf (ARM de 32 bits) no se publica: impit no incluye una compilación arm-gnueabihf, por lo que un VSIX armhf anunciaría airtableFormula.mcp.httpClient: "impit" y luego fallaría con "Cannot find native binding". Tampoco se publica un respaldo sin objetivo, por la misma razón.

La matriz se define una vez en scripts/vsix-targets.mjs; las versiones y los hashes de los tarballs están fijados a pnpm-lock.yaml. scripts/package-targets.mjs compila cada objetivo y scripts/assert-vsix-binaries.mjs verifica que cada artefacto contenga exactamente los archivos .node de su propia plataforma y no los de otra — byte por byte, contra los resúmenes SHA-256 en scripts/native-binary-digests.json, que se registran a partir de tarballs verificados contra los hashes de integridad de pnpm-lock.yaml. Los nombres de archivo, package.json os/cpu y un número mágico son etiquetas que un artefacto lleva sobre sí mismo y no pueden distinguir un binario x64 de uno ARM64, ni una compilación glibc de una musl; un resumen exacto sí puede.

En conjunto, estos son ocho smokes de empaquetado/afirmación de artefactos objetivo — ocho archivos .vsix compilados y sus contenidos verificados en una máquina. No son smokes de ejecución de ocho enlaces nativos: cualquier host individual solo puede cargar el enlace compilado para sí mismo, por lo que solo el enlace del objetivo del host recibe una carga de ejecución genuina. Verificar los otros siete por contenido exacto es la afirmación más fuerte que una compilación de un solo host puede hacer sobre ellos.

El paquete npm independiente airtable-user-mcp no se ve afectado y sigue siendo universal: npm resuelve la dependencia opcional correcta en tu propia máquina en el momento de la instalación.


Apoya este proyecto

Este proyecto se construye y mantiene con la ayuda de herramientas de codificación con IA. Si te resulta útil y quieres apoyar el desarrollo continuo (nuevas herramientas, actualizaciones, correcciones de errores), puedes contribuir regalando créditos de Claude Code, la herramienta principal utilizada para construir este proyecto.

¿Interesado? Abre un issue o contacta para discutir solicitudes de funciones y patrocinio.


Licencia

MIT