Airtable Mcp Server について
Airtable Mcp Server(airtable-user-mcp)は、コミュニティによって保守されている VS Code 拡張機能兼 MCP サーバーで、数式・スクリプト・オートメーションの編集と、Airtable の内部 API を使ったスキーマ、ビュー、フィールドの管理を行います。公式 Airtable MCP と併用することを前提に設計されており、公開 REST API では扱えない操作を補います。
主な機能
- 0172 個のツールと manage_tools メタツール
- 02数式、ロールアップ、ルックアップフィールドの作成
- 03ビューのフィルター、ソート、グループ化の設定
- 04数式、スクリプト、オートメーション向けの言語サーバー
- 05read-only、safe-write、full などのツールプロファイル
活用シーン
- 01AI クライアントから Airtable のビューとフィールドの設定を変更する
- 02VS Code 上で Airtable の数式を編集・検証する
- 03公式 Airtable MCP と並べて登録し、操作範囲を広げる
MCP 対応
本プロジェクトは MCP サーバーとして、Airtable のスキーマ、レコード、ビュー、拡張機能に関するツールを stdio 経由で MCP クライアントに公開します。共有デーモンにより、複数のクライアントが 1 つの Airtable ブラウザーセッションを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
73掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| appId | string | はい | Airtable base/アプリケーション ID(例:"appXXX") |
| debug | boolean | いいえ | true の場合、診断用に Airtable の生の応答を出力に含めます |
詳細
Airtable の数式、スクリプト、自動化、MCP、LSP
数式・スクリプト・自動化エディター · MCP サーバー(72 個のツール + manage_tools) · 言語サーバー · AI スキル
| VS Code | Open VSX | npm · MCP | npm · LSP | MCP Registry |
|---|---|---|---|---|
|
|
|
|
|
|
Airtable Inc. とは提携していません。 コミュニティがメンテナンスするプロジェクトです。
開発は活発です — マイナーバージョン間で破壊的変更が加わる場合があります。安定性が必要な場合は、バージョンを固定してください。
主な機能
| 機能 | 説明 | ファイル形式 |
|---|---|---|
| 数式エディター | 構文ハイライト、インテリセンス、整形/圧縮 | .formula、.min.formula |
| スクリプトエディター | 補完、ホバー時のドキュメント表示、診断 | .ats、.script |
| オートメーションエディター | 補完、ホバー時のドキュメント表示、診断 | .ata、.automation |
MCP サーバー(72 個のツール + manage_tools) | Airtable の内部 API 全体 — スキーマ、ビュー、フィールド、レコード、拡張機能、テンプレート | — |
| 言語サーバー(LSP) | Neovim、Zed、Helix、OpenCode などの複数エディターに対応するスタンドアロン版 | 上記すべて |
| IDE 自動セットアップ | Cursor、Windsurf、Claude Desktop、Cline、Amp 用の MCP 設定をワンクリックで作成 | — |
| AI スキル | AI コーディングアシスタント向けに事前構築された、Airtable 固有のルールとワークフロー | — |
| デーモン + トンネル | 常時稼働するバックグラウンドサーバー。オプションで Cloudflare または ngrok によるリモートアクセスに対応 | — |
| ツールプロファイル | read-only(12 個のツール)/safe-write(54 個のツール)/full(72 個のツール)/custom の権限スコープ | — |
| OS キーチェーン認証 | SSO/2FA 対応のブラウザベースの Airtable ログイン。認証情報は OS のキーチェーンに保存 | — |
これが存在する理由
Airtable の公開 Web API では、数式フィールドの作成、ビューのフィルター設定の調整、拡張機能のインストール、本番環境に影響が出る前の数式の検証など、ビルダーが実際に必要とする最も一般的なタスクの一部が、これまで一度も提供されていません。公式の Airtable MCP サーバーは、同じ REST API を薄くラップしたものなので、これらの制約をすべて引き継いでいます。
airtable-user-mcp は、公式 Airtable MCP のアドオンであり、置き換えるものではありません。 Airtable 独自の内部 API(Web UI が使用している API)を使って、REST API では対応できない領域を補います。AI クライアントに両方のサーバーを登録すると、アシスタントは Airtable 自動化の機能をすべて利用できるようになります。レコードは公式 MCP 経由の HTTP で操作し、スキーマ、数式、ビュー、拡張機能はこのサーバー経由で操作できます。
公式 Airtable MCP に加えて airtable-user-mcp が提供する機能
これは機能範囲の比較であり、「どちらかを選ぶ」ためのものではありません。2つのサーバーは相互補完的で、並行して動作するように設計されています。
| 機能 | 公式 Airtable MCP | airtable-user-mcp |
|---|---|---|
| ツールの合計数 | 約17 | 73(72 + manage_tools) |
| 認証方式 | Personal Access Token または OAuth、スコープごとの設定 | 通常の Airtable アカウントで一度ログインするだけ(SSO/2FA 対応) |
| トランスポート | HTTP(リモート) | stdio(ローカル、プライベート) |
| データがマシンの外に出ない | ❌ リクエストは mcp.airtable.com を経由します | ✅ Airtable の API に対してローカルで実行します |
| スキーマの読み取り(ベース、テーブル、フィールド、ビュー) | 一部対応(ビュー設定は非対応) | 完全対応 — フィルター、並べ替え、グループ、表示設定、行の高さ、説明 |
| 解決済みのフィールド値を含むレコードの読み取り | 一部対応 | ✅ query_records — ルックアップ/ロールアップ/数式フィールドを完全に解決して返します |
| テキストによるレコード検索(ルックアップフィールドを含む) | ❌ ルックアップフィールドに対する FIND()/SEARCH() を使った filterByFormula は、エラーを表示せずに失敗します | ✅ query_records.search — 解決済みのすべての値を部分一致で検索します |
| レコードの複製 | ❌ | ✅ duplicate_records |
| 数式フィールドの作成 | ❌ UNSUPPORTED_FIELD_TYPE_FOR_CREATE | ✅ |
| ロールアップフィールドの作成 | ❌ | ✅ |
| ルックアップ/multipleLookupValues フィールドの作成 | ❌ | ✅ |
| カウントフィールドの作成 | ❌ | ✅ |
| 既存フィールドの数式テキストの更新 | ❌ | ✅ |
| 適用前の数式の検証 | ❌ | ✅ |
| フィールド名の変更/複製/安全な削除 | 一部対応(複製と依存関係の概要には非対応) | ✅ expectedName ガード + 依存関係のプレビュー |
| ビューの作成(グリッド/フォーム/カンバン/カレンダー/ギャラリー/ガント/リスト) | ❌(API にビュー作成エンドポイントがありません) | ✅ |
| ビューのフィルター設定/追加(ネストされた AND/OR) | ❌ | ✅ |
| ビューの並べ替え設定 | ❌ | ✅ |
| ビューのグループ化設定 | ❌ | ✅ |
| 列の順序の変更 | ❌ | ✅ |
| ビュー内の列の表示/非表示 | ❌ | ✅ |
| 行の高さの変更 | ❌ | ✅ |
| 全設定を含むビューの複製 | ❌ | ✅ |
| ビューの説明、セルの折り返し、カバー、色の設定、カレンダーの日付、固定列 | ❌ | ✅ |
| サイドバーのセクション(作成、名前変更、移動、削除) | ❌ | ✅ |
| レコードテンプレート(作成、事前入力、複製、適用、削除) | ❌ | ✅ |
| フォームのメタデータ(説明、リダイレクト、アトリビューション、ブランディング) | ❌ | ✅ |
| 拡張機能/ブロックの管理(インストール、有効化、名前変更、複製、削除) | ❌ | ✅ |
| ダッシュボードページの作成 | ❌ | ✅ |
| デーモンの自己診断(セッションが切れたか、ブラウザーがビジーか、デーモンが停止したか) | ❌ | ✅ manage_daemon の action=status、および起動/再起動/停止/トンネル/トークンのローテーション |
| ツールプロファイルとツールごとの切り替え | ❌ | ✅ 読み取り専用(12)/安全な書き込み(54)/フル(72)/カスタム |
| 破壊的操作の安全ガード | トークンのスコープに依存 | ✅ expectedName の一致、依存関係の概要、force フラグ |
| 一括レコード作成の上限 | リクエストあたり10件 | Airtable と同じ上限を使用し、追加の制限はありません |
| VS Code/Cursor/Windsurf/Cline/Amp のワンクリックインストール | IDE ごとに JSON を手動編集 | ✅ 付属の拡張機能からワンクリックでインストール |
| IntelliSense 対応の数式エディター | ❌ | ✅(VS Code 拡張機能) |
| 認証情報の保存 | PAT を自分で管理 | OS のキーチェーン、自動更新 |
| 必要なプラン | API アクセスとトークンスコープが利用できる Airtable プラン | ログイン可能な任意のプラン |
| 価格 | 無料 | 無料、MIT |
出典:Airtable の公式 MCP ドキュメント、Airtable Web API リファレンス、および UNSUPPORTED_FIELD_TYPE_FOR_CREATE ロールアップのスレッド。
2つの MCP を一緒に使う
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 は追加で利用できます。Airtable のセットアップガイドに従って公式 Airtable MCP を登録し、同じ mcpServers ブロックにこの MCP サーバーを追加してください。
{
"mcpServers": {
"airtable-user-mcp": {
"command": "npx",
"args": ["-y", "airtable-user-mcp"]
}
}
}
MCP クライアントには、両方のサーバーのすべてのツールが公開されます。2つのエントリーは独立しているため、ワークフローに合うようにキー(airtable、airtable-official、airtable-user-mcp など)の名前を変更できます。
このリポジトリの内容
このモノレポでは、1つのソースツリーから3つの製品を提供しています。
| 製品 | インストール | |
|---|---|---|
| Airtable Formulas, Scripts, Automation, MCP & LSP — VS Code 拡張機能 | Marketplace | |
| airtable-user-mcp — スタンドアロン MCP サーバー | npx airtable-user-mcp | |
| airtable-user-lsp — Airtable 言語サーバー | npx airtable-user-lsp |
デモ
機能
MCP サーバー(72 個のツール+manage_tools)
公式 REST API では利用できない機能を使用して Airtable のベースを管理します。
| カテゴリー | ツール数 | 主な機能 |
|---|---|---|
| スキーマの読み取り | 11 | スキーマ全体を確認できます。ベース、テーブル、フィールド、ビュー、サイドバーセクション、レコードテンプレートが対象です。すべての数式フィールドをローカルファイルにダウンロードできます |
| レコードの読み取り | 1 | query_records — 解決済みのフィールド値を含む最大 1 000 件のレコードを 1 回の呼び出しで取得できます。search パラメーターはルックアップ/ロールアップフィールドでも機能します(REST API の filterByFormula では機能しません) |
| レコードの書き込み | 4 | create_records/update_records/duplicate_records/upload_attachment(URL によって multipleAttachments セルに書き込む唯一の方法です) |
| レコードの破壊的操作 | 1 | delete_records — テーブル内のレコードを一括削除します |
| テーブル管理 | 3 | テーブルの作成/名前変更/削除 |
| フィールド管理 | 9 | 数式/ロールアップ/ルックアップ/カウントフィールドの作成、数式の検証、説明の更新、単一または一括での削除 |
| ビュー設定 | 20 | フィルター、並べ替え、グループ化、列、固定表示、行の高さ、カバー、色ルール、カレンダーの日付、作成/複製/名前変更/削除 |
| サイドバーセクション | 4 | 作成、名前変更、セクションへの移動、削除(含まれるビューは自動的にグループ化されていない状態に移動します) |
| レコードテンプレート | 8 | 保存済みの行のひな形を作成/名前変更/説明の設定/セルの設定/列の設定/複製/適用/削除 |
| フォームのメタデータ | 2 | 説明、リダイレクト URL、アトリビューション、回答者へのコピー、ブランディング(レガシーのフォームビュー) |
| 拡張機能の管理 | 7 | 拡張機能の作成、インストール、有効化/無効化、名前変更、複製、削除 |
| ツール管理 | 1 | プロファイルの一覧表示、プロファイルの切り替え、ツール/カテゴリーの切り替え(メタツール。常に有効で、どのプロファイルにも属しません) |
| ベースの同期 | 1 | sync_base — ベースのスキーマ、ビュー、レコードを別のベースにコピーします。mode=plan/diff/statusは読み取り専用です。mode=applyはコピー先を変更し、policy=mirrorと確認フラグを併用すると、テーブル、フィールド、ビュー、セクション、レコードを削除できます。mode=reconcileはローカルのマッピング状態を更新します。ドリフトを検出して処理を保護し、ジャーナルを使って再開できます。 |
| デーモン制御 | 1 | manage_daemon — action=statusは読み取り専用の自己診断です。デーモンの稼働状態、トランスポート、稼働時間、トンネル URL、ライブセッションの状態(デッドセッション、Airtable 自身のレスポンス本文を含む直近のブレーカートリップ、ブラウザーのビジーキュー)を確認し、「デーモンが停止」なのか「セッションが停止」なのか「ブラウザーがビジー」なのかを判別できます。また、start/restart/stop/tunnel_enable/tunnel_disable/token_rotateも利用できます。fullプロファイルのみ。 |
ツールの全リファレンスについては、packages/mcp-server/README.mdを参照してください。
共有デーモンは 1 つ
ツールの呼び出し時に拡張機能が共有 MCP デーモンを起動するため、各 VS Code ウィンドウはウィンドウごとに 1 つずつではなく、1 つの Airtable ブラウザーセッションを使用します。この重複が、「セッションが停止しました」というエラーの大半を引き起こしていました。ダッシュボードから停止したデーモンは停止状態を維持します。また、デーモンを起動できない場合、拡張機能はウィンドウごとのサーバーにフォールバックするため、ツールを引き続き使用できます。
通常はデーモンが稼働しているため、同じマシン上の他の MCP クライアント(Claude Desktop、Cursor、Cline、Amp)はデーモンに接続し、それぞれの認証モードや HTTP クライアントではなく、デーモンの認証モードと HTTP クライアントで動作します。これは、1 つの Airtable プロファイルで 2 つのブラウザーを使うとクラッシュするため、意図的な仕様です。各クライアントは、その旨を stderr に 1 行出力します。クライアント間で 1 つのデーモンを共有するを参照してください。
LSP サーバー
airtable-user-lsp は、Airtable の数式、スクリプト、オートメーションファイル向けのスタンドアロンの言語サーバーです。VS Code に限らず、LSP 対応エディターで動作します。
# stdio mode — works standalone, no daemon needed
npx airtable-user-lsp --stdio
.formula、.ats、.ata ファイルの診断、補完、ホバードキュメント、シグネチャヘルプに対応しています。
デーモンの実行中は、airtable-user-lsp --tcp が自動的に起動し、複数のエディターで1つの言語サーバーインスタンスを共有します。TCP ポートは ~/.airtable-user-mcp/daemon.lock の port_lsp に書き込まれます。
エディターごとの設定(Neovim、Zed、OpenCode、Helix)については、packages/lsp-server/README.md をご覧ください。
対応 IDE
この拡張機能は、主要な AI 対応エディターすべてで MCP を自動設定します。
| Claude Desktop | Claude Code | Cursor | Windsurf | Cline | Amp |
VS Code をお使いでない場合は? スタンドアロンの MCP サーバーを直接ご利用ください。
npx airtable-user-mcp
掲載先
| レジストリ | リンク |
|---|---|
| VS Code Marketplace | Nskha.airtable-formula |
| npm | airtable-user-mcp |
| Open VSX | Nskha.airtable-formula |
| MCP Registry | io.github.automations-project/airtable-user-mcp |
| Glama | glama.ai/mcp/servers |
| PulseMCP | pulsemcp.com |
| MCP.so | mcp.so |
| 動画デモ — Claude Code でビュー、計算フィールド、拡張機能を管理する |
必要条件
- VS Code ^1.100.0(または
McpServerDefinitionProviderAPI を公開するフォーク) - Node.js — VS Code ランタイムに同梱されているため、別途インストールする必要はありません
- Google Chrome(または Edge/Chromium)— Airtable のログインフローでは、ヘッドレスモードで Patchright を使用します。Windows では
msedge、Linux ではchromiumにフォールバックします。対応ブラウザーが検出されない場合、拡張機能が対処方法を示す警告を表示します。
開発
これはpnpm モノレポです。
| パッケージ | 説明 |
|---|---|
packages/extension | VS Code 拡張機能ホスト(TypeScript + tsup) |
packages/webview | React ダッシュボード Webview(Vite + Tailwind v4) |
packages/shared | 共有型とメッセージプロトコル |
packages/mcp-server | airtable-user-mcp — ESM Node MCP サーバー |
packages/lsp-server | airtable-user-lsp — 数式/スクリプト/オートメーションファイル用の LSP サーバー |
scripts/ | ビルドツール(esbuild バンドラー、依存関係の同梱) |
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)
MCP サーバーのバンドル方法: scripts/bundle-mcp.mjs が packages/mcp-server/src/ を esbuild で packages/extension/dist/mcp/ にバンドルします。その後、scripts/prepare-package-deps.mjs が vsce package の実行前に patchright、patchright-core、otpauth、impit、@ngrok/ngrok を dist/node_modules/ に同梱するため、インストール済みの拡張機能では実行時に npm install が不要です。
プラットフォーム別 VSIX。 impit(Chrome-TLS HTTP クライアント)と @ngrok/ngrok(ngrok トンネルプロバイダー)は、コンパイル済みネイティブバイナリをプラットフォームごとに分かれた npm パッケージに格納しており、ビルドマシンに一致するものだけがインストールされます。そのため、1 つの VSIX にすべてのプラットフォームで動作するネイティブバイナリを含めることはできません。代わりに、プラットフォームごとに 1 つの VSIXを公開し、それぞれにそのプラットフォーム専用のバイナリだけを同梱します。VS Code と Open VSX は、各ユーザーのマシンに合ったビルドを提供します。サポート対象は次のとおりです。
| ターゲット | impit | @ngrok/ngrok |
|---|---|---|
win32-x64 | impit-win32-x64-msvc | @ngrok/ngrok-win32-x64-msvc |
win32-arm64 | impit-win32-arm64-msvc | @ngrok/ngrok-win32-arm64-msvc |
darwin-x64 | impit-darwin-x64 | @ngrok/ngrok-darwin-x64 |
darwin-arm64 | impit-darwin-arm64 | @ngrok/ngrok-darwin-arm64 |
linux-x64 | impit-linux-x64-gnu | @ngrok/ngrok-linux-x64-gnu |
linux-arm64 | impit-linux-arm64-gnu | @ngrok/ngrok-linux-arm64-gnu |
alpine-x64 | impit-linux-x64-musl | @ngrok/ngrok-linux-x64-musl |
alpine-arm64 | impit-linux-arm64-musl | @ngrok/ngrok-linux-arm64-musl |
linux-armhf(32 ビット ARM)は公開されません。impit は arm-gnueabihf ビルドを提供していないため、armhf VSIX は airtableFormula.mcp.httpClient: "impit" を指定しながら「Cannot find native binding」エラーで失敗します。同じ理由により、ターゲットを指定しないフォールバックも公開されません。
マトリックスは scripts/vsix-targets.mjs で一元的に定義され、バージョンと tarball のハッシュは pnpm-lock.yaml に固定されています。scripts/package-targets.mjs がすべてのターゲットをビルドし、scripts/assert-vsix-binaries.mjs が各成果物にそのプラットフォーム用の .node ファイルだけが含まれ、他のプラットフォーム用のファイルが含まれていないことを、scripts/native-binary-digests.json に記録された SHA-256 ダイジェストとバイト単位で照合して検証します。ダイジェストは pnpm-lock.yaml の整合性ハッシュと照合済みの tarball から記録されています。ファイル名、package.json の os/cpu、マジックナンバーはいずれも成果物自身が持つラベルであり、x64 バイナリと ARM64 バイナリ、あるいは glibc ビルドと musl ビルドを区別できません。正確なダイジェストなら区別できます。
これらを合わせると、8 つのターゲット成果物のパッケージング/アサーションスモークテストになります。1 台のマシンで 8 つの .vsix ファイルをビルドし、その内容を検証します。ただし、8 つのネイティブバインディングの実行時スモークテストではありません。1 台のホストで読み込めるのは、そのホスト用にコンパイルされたバインディングだけなので、実際に実行時ロードされるのはホストのターゲットに対応するバインディングのみです。他の 7 つについて内容を正確に照合することが、単一ホストのビルドで保証できる最も強い検証です。
スタンドアロンの npm パッケージ airtable-user-mcp は影響を受けず、引き続きユニバーサルです。npm がインストール時に、お使いのマシンに適したオプションの依存関係を解決します。
このプロジェクトを支援する
このプロジェクトは、AI コーディングツールの支援を受けて開発・保守されています。便利だと感じ、今後の開発(新しいツール、アップデート、バグ修正)を支援したい場合は、このプロジェクトの開発に主に使用している Claude Code クレジットを贈ってご支援いただけます。
ご興味がありますか?issue を作成するか、機能のリクエストやスポンサーシップについてお問い合わせください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。