/ Каталог / Песочница / airtable-mcp-server
● Сообщество domdomegg ⚡ Сразу

airtable-mcp-server

автор domdomegg · domdomegg/airtable-mcp-server

Read and edit Airtable from chat — with a fine-grained PAT that scopes exactly which bases the AI can touch.

airtable-mcp-server by domdomegg is the community-standard Airtable MCP. Authenticates with an Airtable Personal Access Token, exposes 15+ tools for records/tables/fields/comments, and can be pinned to read-only via PAT scopes. Works with any Airtable base including enterprise workspaces.

Зачем использовать

Ключевые функции

Живое демо

Как выглядит на практике

airtable.replay ▶ готово
0/0

Установка

Выберите клиент

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Откройте Claude Desktop → Settings → Developer → Edit Config. Перезапустите после сохранения.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor использует ту же схему mcpServers, что и Claude Desktop. Конфиг проекта приоритетнее глобального.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Щёлкните значок MCP Servers на боковой панели Cline, затем "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Тот же формат, что и Claude Desktop. Перезапустите Windsurf для применения.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "airtable",
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ]
    }
  ]
}

Continue использует массив объектов серверов, а не map.

~/.config/zed/settings.json
{
  "context_servers": {
    "airtable": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "airtable-mcp-server"
        ]
      }
    }
  }
}

Добавьте в context_servers. Zed перезагружается автоматически.

claude mcp add airtable -- npx -y airtable-mcp-server

Однострочная команда. Проверить: claude mcp list. Удалить: claude mcp remove.

Сценарии использования

Реальные сценарии: airtable-mcp-server

Answer natural-language questions about your Airtable CRM

👤 Founders and ops people using Airtable as a CRM ⏱ ~10 min beginner

Когда использовать: You want to know 'who hasn't replied in 30 days?' without building a view.

Предварительные требования
  • Airtable PAT with schema.bases:read + data.records:read — airtable.com/create/tokens/new — pick only the bases you want exposed
Поток
  1. Have Claude list bases and pick the right one
    List my Airtable bases. Find the one that looks like a sales CRM and describe its tables.✓ Скопировано
    → Schema of the CRM base with table purposes
  2. Ask the real question
    In the Contacts table, find people where Last Contacted is more than 30 days ago and Status is Active. Group by Owner.✓ Скопировано
    → Filtered record list by owner
  3. Draft follow-up actions
    For each contact, draft a one-line nudge email I can send. Match their last conversation's tone.✓ Скопировано
    → Per-contact draft text

Итог: A next-action list straight from the CRM in 2 minutes.

Подводные камни
  • Linked-record fields return IDs, not names — Ask Claude to resolve linked records via a second fetch, or use list_records with returnFieldsByFieldId=false
  • Enterprise bases often have permission restrictions per-field — Verify your PAT's workspace access matches the base's enterprise policy
Сочетать с: notion

Bulk-clean messy Airtable records

👤 Ops admins inheriting a chaotic base ⏱ ~45 min intermediate

Когда использовать: A table has 3k rows with inconsistent casing, missing fields, duplicate companies.

Предварительные требования
  • PAT with data.records:write — Add the scope when creating the token; keep base scope narrow
Поток
  1. Audit the mess
    In Companies, find duplicates by normalized name, records missing Domain, and records with Website starting with http:// instead of https://.✓ Скопировано
    → Count per issue
  2. Dry-run a fix plan
    For each issue, propose a fix and show me 3 example changes BEFORE writing.✓ Скопировано
    → Preview with user approval gate
  3. Apply the approved fixes
    Approved. Apply the fixes in batches of 50 with update_records.✓ Скопировано
    → Success counts per batch

Итог: A clean table with an auditable list of what changed.

Подводные камни
  • Mass-updating triggers Airtable's per-token automation quotas — Batch at 10/s max; pause automations for the affected table during bulk ops
  • One bad update pattern ruins 500 rows — Snapshot the table (CSV export) before the first write
Сочетать с: filesystem

Use Airtable as a headless CMS for a website

👤 Indie devs and content teams ⏱ ~30 min intermediate

Когда использовать: You want editors in Airtable and publishing logic driven by an agent.

Поток
  1. Pull publish-ready records
    From the Blog table, list records where Status is 'Ready' and PublishDate is today or earlier.✓ Скопировано
    → Publish queue
  2. Transform and emit
    For each, convert the rich-text Body field to Markdown and write to /site/content/posts/<slug>.md.✓ Скопировано
    → Files appear on disk
  3. Flip the status back
    Update each record's Status to 'Published' and set PublishedAt to now.✓ Скопировано
    → Rows flipped

Итог: A one-command publish flow with Airtable as source of truth.

Сочетать с: filesystem · github

Комбинации

Сочетайте с другими MCP — эффект x10

airtable + notion

Turn an Airtable report into a Notion briefing

Pull this week's new Deals from the CRM, then create a Notion page in /Sales with a summary table.✓ Скопировано
airtable + filesystem

Use Airtable as a CMS, emit Markdown files

For every Blog record with Status=Ready, write a .md file under ./content/posts/ and flip the record to Published.✓ Скопировано
airtable + github

Auto-create GitHub issues from an Airtable bug backlog

For every Bug in the Triage view with Severity=High, open a GitHub issue in acme/api with title and repro steps.✓ Скопировано

Инструменты

Что предоставляет этот MCP

ИнструментВходные данныеКогда вызыватьСтоимость
list_bases (none) First-time discovery 1 API call
list_tables baseId: str, detailLevel?: str Map a base before querying 1 API call
describe_table baseId: str, tableId: str Know the fields before filtering 1 API call
list_records baseId, tableId, view?, filterByFormula?, sort?, pageSize? Read data with filters/sort 1 API call (paginates)
search_records baseId, tableId, searchTerm, fieldIds? Free-text search across fields 1 API call
get_record baseId, tableId, recordId Fetch a single known record 1 API call
create_record baseId, tableId, fields Insert one record 1 API call (write)
update_records baseId, tableId, records[] Batch updates 1 API call per 10 records
delete_records baseId, tableId, recordIds Destructive — confirm first 1 API call (write)
create_table baseId, name, fields[] Bootstrap a new data model 1 API call (schema write)
list_comments baseId, tableId, recordId, offset?, pageSize? Read thread history 1 API call

Стоимость и лимиты

Во что обходится

Квота API
5 requests/sec per base (Team), 50/sec on Enterprise Scale
Токенов на вызов
Schema: ~500 tokens. Record responses: 200 tokens per row depending on fields.
Деньги
Airtable free/Team/Enterprise — API access on all paid plans; free plan also exposes API
Совет
Use pageSize and filterByFormula server-side; pulling a whole table into context is wasteful.

Безопасность

Права, секреты, радиус поражения

Минимальные скоупы: schema.bases:read data.records:read
Хранение учётных данных: Fine-grained PAT in env var AIRTABLE_API_KEY; never classic user tokens
Исходящий трафик: All calls to api.airtable.com over HTTPS
Никогда не давайте: All-base access when only one base is needed webhook:manage unless required

Устранение неполадок

Частые ошибки и исправления

401 INVALID_API_KEY

PAT missing or expired. Regenerate at airtable.com/create/tokens.

Проверить: curl -H 'Authorization: Bearer $AIRTABLE_API_KEY' https://api.airtable.com/v0/meta/bases
403 NOT_AUTHORIZED

PAT doesn't include that base. Edit the token's scope list and add the base.

Проверить: curl returns bases you expect
422 INVALID_REQUEST_UNKNOWN_FIELD

Field name doesn't match schema. Re-describe the table — Airtable changes field IDs if renamed.

Проверить: call describe_table again
429 rate limit

Slow down to 5 req/sec per base; batch write operations.

Проверить: retry after 30s

Альтернативы

airtable-mcp-server в сравнении

АльтернативаКогда использоватьКомпромисс
Notion MCPYour team lives in Notion databases instead of AirtableNotion is less tabular; worse for bulk data ops
Google Sheets MCPThe data is in SheetsNo structured schema or linked records
Direct Airtable REST via fetch MCPYou want one-off calls and don't want another MCPYou write every URL by hand

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills