Airtable MCP について
Airtable MCP サーバーは、Airtable に対する CRUD 操作、スキーマ管理、レコードコメント、Webhook、バッチ処理を MCP クライアントに提供します。AI アシスタントから Airtable のベースを読み書きしたいユーザー向けです。AIRTABLE_TOOLSET で公開するツールを絞り込めます。
主な機能
- 01ページネーション付きのレコード CRUD 操作
- 02テーブル、フィールド、ビューのスキーマ管理
- 03レコードコメントと Webhook の管理
- 04最大 10 件のバッチ処理
- 05ガバナンス制御と PII マスキング
- 06AIRTABLE_TOOLSET によるツールセット制限
活用シーン
- 01AI アシスタントによるタスクレコードの作成と更新
- 02数式条件を用いた Airtable データの検索
- 03Cursor で他の MCP サーバーとツール上限を共有
MCP 対応
Airtable MCP サーバーは、Airtable の操作を行うツール、リソース、プロンプトを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
42掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
Airtable MCP サーバー
Airtable 用の Model Context Protocol(MCP)サーバーです。完全な CRUD 操作、スキーマ管理、レコードコメント、Webhook、一括操作、ガバナンス制御、AI による分析に対応しています。
バージョン 5.1.0 | MCP プロトコル 2026-07-28(ステートレスなコア。従来の 2025 年世代のクライアントにも引き続き対応) | Claude、Codex、Cursor、Windsurf、VS Code、その他あらゆる MCP クライアントで動作します |
クイックスタート(Claude Desktop)
インストールは不要です。Claude Desktop の設定にこれを追加して、再起動するだけです。
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": ["-y", "@rashidazarang/airtable-mcp"],
"env": {
"AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN",
"AIRTABLE_BASE_ID": "YOUR_BASE_ID"
}
}
}
}
これで完了です。npx がサーバーを自動的にダウンロードして実行します。git clone も npm install も不要です。
トークンの取得方法:airtable.com/create/tokens で、以下のトークンのスコープに記載されているすべてのスコープを許可してください。Base ID の取得方法:ベースを表示したときの URL から確認できます:
https://airtable.com/[BASE_ID]/...(または省略してlist_basesを使い、ベースを動的に検索できます)。
クイックスタート(Claude Code)
ワンコマンドインストール
curl -fsSL https://raw.githubusercontent.com/rashidazarang/airtable-mcp/main/setup.sh | bash
スクリプトが前提条件を確認し、Airtable トークンの入力を求めてから、MCP 設定を ~/.claude.json に書き込みます。Claude Code を再起動するか、/mcp を実行して接続してください。
トークンを直接渡すこともできます。
curl -fsSL https://raw.githubusercontent.com/rashidazarang/airtable-mcp/main/setup.sh | bash -s -- YOUR_AIRTABLE_TOKEN
手動設定
~/.claude.json の mcpServers の下に追加します。
{
"airtable": {
"type": "stdio",
"command": "/bin/bash",
"args": ["-c", "cd /tmp && npx -y @rashidazarang/airtable-mcp"],
"env": {
"AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN"
}
}
}
bash ラッパーを使う理由:同じパッケージ名の
package.jsonがあるディレクトリから実行すると、npxがバイナリを解決できない場合があります。cd /tmp &&を付けることで、この例外的な問題を回避できます。
クイックスタート(Codex、Cursor、Windsurf、VS Code)
このサーバーは、あらゆる MCP クライアントで動作します。最新の 2026-07-28 プロトコルと 2025 年世代のクライアントの両方に自動的に対応するため、どちらも設定は不要です。
OpenAI Codex(CLI、IDE 拡張機能、ChatGPT デスクトップアプリ)
次のコマンドを実行します。
codex mcp add airtable -- npx -y @rashidazarang/airtable-mcp
または、~/.codex/config.toml(信頼済みプロジェクトの場合は .codex/config.toml)を直接編集します。
[mcp_servers.airtable]
command = "npx"
args = ["-y", "@rashidazarang/airtable-mcp"]
[mcp_servers.airtable.env]
AIRTABLE_TOKEN = "YOUR_AIRTABLE_TOKEN"
Codex CLI、IDE 拡張機能、ChatGPT デスクトップアプリは、この設定を共有します。
Cursor
~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクトごと)に追加します。
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": ["-y", "@rashidazarang/airtable-mcp"],
"env": {
"AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN",
"AIRTABLE_TOOLSET": "core"
}
}
}
}
AIRTABLE_TOOLSET=coreを使う理由:Cursor は、すべてのサーバーを合わせてエージェントが有効にできるツールを 40 個 に制限しています。このサーバーが公開するツールは 42 個です。coreプロファイルでは、レコード関連のツール(読み取り、書き込み、一括操作、ガバナンス)18 個が登録されるため、他のサーバー用の余地が残ります。Airtable が唯一の MCP サーバーで、Cursor の Tools & MCP 設定で個別のツールを無効にして上限を調整する場合は、これを省略するか、fullを設定してください。また、Cursor で MCP ツールが使えるのは Agent モードと Plan モードのみで(Ask/Edit モードでは使えません)、ツールとリソースは利用できますが、MCP プロンプトには対応していない点にもご注意ください。
Windsurf
同じ JSON ブロックを ~/.codeium/windsurf/mcp_config.json(Cascade → MCP 設定)に追加します。Windsurf ではツールごとの切り替えに対応しているため、すべてのツールを使いたい場合は個別に設定できます。
VS Code(GitHub Copilot agent mode)
.vscode/mcp.json に追加します:
{
"servers": {
"airtable": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@rashidazarang/airtable-mcp"],
"env": { "AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN" }
}
}
}
互換性に関する注意事項(すべてのクライアント)
- 両方のプロトコル世代に対応 — 最新の 2026-07-28 クライアントと、従来の 2025 年世代のクライアント(Codex、Cursor、Windsurf、Cline、Zed、その他現在広く使われているクライアント)は自動的にネゴシエーションされます。
- ツール名はクライアントに適した形式です — 単純な snake_case で、長さ制限を十分に下回り、
:と*を含みません(これらは Cursor の許可リスト構文server:toolで予約されています)。 - ログが stdout に出力されることはありません — すべてのログは stderr に出力されるため、stdio のフレーミングが破損することはありません。
- リモート/HTTP クライアント —
PORTまたはMCP_HTTP_PORTを設定してサーバーを起動し、クライアントの接続先をhttp://host:port/mcpに設定します(ステートレスなストリーミング可能 HTTP。オーケストレーター向けの/healthを提供)。 - ツールの上限 — 有効にするツールが制限されているクライアントや、エージェントのコンテキストを縮小する場合は、
AIRTABLE_TOOLSET=coreまたは明示的な許可リスト(例:AIRTABLE_TOOLSET=describe,query,list_records)を使用します。
概要
このサーバーは、Model Context Protocol を通じて Airtable と包括的に連携し、Airtable データとの自然言語によるやり取りを可能にします。すべての Airtable PAT スコープを網羅する42 個のツールと、インテリジェントな分析を実現する10 個の AI プロンプトテンプレートが含まれています。
主な機能
- 完全な CRUD 操作 — フィルタリングとページネーションを使用して、レコードの作成、読み取り、更新、削除を実行します
- レコードのコメント — レコードへのコメントの一覧表示、作成、更新、削除を実行します
- スキーマ管理 — テーブル、フィールド、ビューをプログラムで作成および変更します
- バッチ操作 — 1 回の操作で最大 10 件のレコードを処理し、パフォーマンスを向上させます
- Webhook 管理 — データ変更のリアルタイム通知を設定します
- ガバナンスとコンプライアンス — 許可リストによるガバナンス、PII のマスキング、例外の追跡を行います
- ユーザー ID —
whoamiツールでトークンの ID を検証します - AI 分析 — 予測分析、自然言語クエリ、自動インサイトのための 10 個のプロンプトテンプレート
- 複数のベースへの対応 — 複数のベースを動的に検出して操作します
- 型安全性 — 包括的な型定義を備えた完全な TypeScript サポート
プロトコルのサポート
v2 TypeScript SDK(@modelcontextprotocol/server)を使用し、MCP 2026-07-28 仕様に基づいて構築されています。
- ステートレスなコア — 共有ファクトリーから新しいサーバーインスタンスを生成し、すべてのリクエストを処理します。セッションやスティッキールーティングはありません。HTTP モードでは、どのリクエストも任意のレプリカで処理できるため、サーバーをサーバーレス環境や水平スケーリングされた環境に簡単にデプロイできます。
- 両方の世代に対応 — 最新の 2026-07-28 クライアント(リクエストごとのエンベロープ)と従来の 2025 年世代のクライアント(
initializeハンドシェイク)は、同じファクトリーで処理されます。stdio では接続ごとに世代を固定し、HTTP ではリクエストごとにステートレスなフォールバックを行います。 - トランスポート — Claude Desktop/Code などのローカルクライアント向けの stdio(
serveStdio)と、PORT/MCP_HTTP_PORTが設定されている場合のストリーミング可能 HTTP(createMcpHandler+ Node アダプター)に対応し、オーケストレーター向けの/healthエンドポイントも提供します。 - Tasks 拡張 — 意図的に実装していません。2026-07-28 仕様では Tasks がコアから
io.modelcontextprotocol/tasks拡張に移されており、このサーバーが提供するすべての操作はサブ秒で完了する Airtable API 呼び出し(バッチは最大 10 件のレコードに制限)であるため、バックグラウンドタスクのセマンティクスを追加しても利点はありません。長時間実行されるツールを追加する場合は、改めて検討します。
前提条件
- Node.js 20 以降(MCP v2 SDK で必要)
- Personal Access Token を持つ Airtable アカウント
- Airtable Base ID(省略可能 —
list_basesツールで検出できます)
トークンのスコープ
airtable.com/create/tokens で、次のスコープを設定したパーソナルアクセストークンを作成します。
| スコープ | 目的 |
|---|---|
data.records:read | レコードを読み取る |
data.records:write | レコードを作成、更新、削除する |
data.recordComments:read | レコードのコメントを読み取る |
data.recordComments:write | コメントを作成、更新、削除する |
schema.bases:read | テーブルのスキーマを表示する |
schema.bases:write | テーブルとフィールドを作成、変更する |
user.email:read | ユーザーの本人確認情報(whoami)を読み取る |
webhook:manage | Webhook を管理する(任意) |
使い方
設定が完了したら、自然言語を使って Airtable のデータを操作できます。
基本操作
- 「アクセス可能な Airtable のベースをすべて一覧表示して」
- 「Projects テーブルのすべてのレコードを表示して」
- 「優先度が「High」で、期限が明日の新しいタスクを作成して」
- 「タスク ID rec123 のステータスを「Completed」に更新して」
- 「ステータスが「Active」のレコードを検索して」
スキーマ管理
- 「このベースの完全なスキーマを表示して」
- 「Name、Priority、Due Date フィールドを含む「Tasks」という新しいテーブルを作成して」
- 「Projects テーブルに Status フィールドを追加して」
レコードのコメント
- 「レコード rec123 のすべてのコメントを表示して」
- 「このレコードに「レビューして承認しました」というコメントを追加して」
- 「自分のコメントを「修正が必要です」に更新して」
一括操作
- 「Tasks テーブルに新しいレコードを5件まとめて作成して」
- 「複数のレコードのステータスを新しい値に更新して」
- 「この3件のレコードを1回の操作で削除して」
Webhook
- 「自分のベースで有効な Webhook をすべて一覧表示して」
- 「Projects テーブルの変更を対象とする Webhook を作成して」
利用可能なツール(42)
コア操作(ツール4個)
| ツール | 説明 |
|---|---|
list_bases | 権限とともに、アクセス可能なすべてのベースを一覧表示します |
describe | ベースまたはテーブルのスキーマを説明します(詳細レベルに対応) |
query | フィルタリング、並べ替え、ページネーションを使ってレコードをクエリします |
search_records | Airtable の数式を使った高度な検索を行います |
レコードの CRUD(ツール5個)
| ツール | 説明 |
|---|---|
list_records | フィールド選択とページネーションを使ってレコードを一覧表示します |
get_record | ID を指定して単一のレコードを取得します |
create | 新しいレコードを作成します(dryRun による差分の確認が必要です) |
update | 既存のレコードを更新します(dryRun による差分の確認が必要です) |
delete_record | テーブルからレコードを削除します |
アップサート(ツール2個)
| ツール | 説明 |
|---|---|
upsert | マージフィールドに基づいてレコードを更新または作成します |
batch_upsert_records | マージ対象のフィールドを使ってレコードを一括アップサートします |
スキーマの確認(ツール4個)
| ツール | 説明 |
|---|---|
list_tables | スキーマ情報とともに、ベース内のすべてのテーブルを取得します |
get_base_schema | 任意のベースの完全なスキーマを取得します |
list_field_types | 利用可能なフィールドタイプのリファレンスガイドです |
get_table_views | テーブルのすべてのビューを一覧表示します |
テーブル管理(ツール3個)
| ツール | 説明 |
|---|---|
create_table | カスタムフィールド定義を指定してテーブルを作成します |
update_table | テーブル名と説明を変更します |
delete_table | テーブルを削除します(確認が必要です) |
フィールド管理(ツール3個)
| ツール | 説明 |
|---|---|
create_field | 既存のテーブルにフィールドを追加します |
update_field | フィールドのプロパティとオプションを変更します |
delete_field | フィールドを削除します(確認が必要です) |
一括操作(ツール3個)
| ツール | 説明 |
|---|---|
batch_create_records | 最大10件のレコードを一度に作成します |
batch_update_records | 最大10件のレコードを同時に更新します |
batch_delete_records | 1回の操作で最大10件のレコードを削除します |
Webhook 管理(5 個のツール)
| ツール | 説明 |
|---|---|
list_webhooks | 設定済みのすべての Webhook を表示します |
create_webhook | リアルタイム通知を設定します |
delete_webhook | Webhook の設定を削除します |
get_webhook_payloads | 通知履歴を取得します |
refresh_webhook | Webhook の有効期限を延長します |
ビューと添付ファイル(3 個のツール)
| ツール | 説明 |
|---|---|
create_view | ビュー(グリッド、フォーム、カレンダーなど)を作成します |
get_view_metadata | フィルターなどのビューの詳細を取得します |
upload_attachment | URL からファイルを添付します |
ベース管理(3 個のツール)
| ツール | 説明 |
|---|---|
create_base | 初期構造を設定して新しいベースを作成します |
list_collaborators | コラボレーターと権限を表示します |
list_shares | 共有ビューと設定の一覧を表示します |
レコードのコメント(4 個のツール)
| ツール | 説明 |
|---|---|
list_comments | レコードのコメントを一覧表示します |
create_comment | レコードにコメントを追加します |
update_comment | 既存のコメントを編集します |
delete_comment | コメントを削除します |
ユーザー情報(1 個のツール)
| ツール | 説明 |
|---|---|
whoami | 現在のユーザーの ID とスコープを取得します |
ガバナンスと管理(2 個のツール)
| ツール | 説明 |
|---|---|
list_governance | ガバナンスの許可リストと PII マスキングポリシーを返します |
list_exceptions | 最近の例外と修正案を一覧表示します |
AI インテリジェンススイート
高度な分析のための 10 個の AI プロンプトテンプレート:
| プロンプト | 説明 |
|---|---|
analyze_data | 異常検出を含む統計分析 |
create_report | インテリジェントなレポート生成 |
data_insights | ビジネスインテリジェンスとパターンの発見 |
optimize_workflow | 自動化の推奨事項 |
smart_schema_design | データベース最適化の提案 |
data_quality_audit | 品質評価と修正 |
predictive_analytics | 予測と傾向の予測 |
natural_language_query | コンテキストを考慮して質問を処理します |
smart_data_transformation | AI を活用したデータ処理 |
automation_recommendations | 費用対効果分析によるワークフロー最適化 |
高度な設定
Smithery Cloud
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": [
"@smithery/cli",
"run",
"@rashidazarang/airtable-mcp"
],
"env": {
"AIRTABLE_TOKEN": "YOUR_TOKEN",
"AIRTABLE_BASE_ID": "YOUR_BASE_ID"
}
}
}
}
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
AIRTABLE_TOKEN | はい | 個人用アクセストークン |
AIRTABLE_BASE_ID | いいえ | デフォルトのベース ID(list_bases で検出できます) |
AIRTABLE_TOOLSET | いいえ | 登録するツール:full(デフォルト、全 42 個)、core(レコード中心のツール 18 個。Cursor の 40 ツール上限に収まります)、またはツール名をカンマ区切りにした許可リスト |
LOG_LEVEL | いいえ | ログレベル(デフォルト:info) |
MCP_HTTP_PORT | いいえ | ホスト型デプロイで HTTP トランスポートを有効にします |
開発
ユーザーは不要です。 貢献またはサーバーの変更を希望する場合にのみ、リポジトリをクローンしてください。エンドユーザーは、上記のクイックスタートの各セクションに示すように
npxを使用してください。
git clone https://github.com/rashidazarang/airtable-mcp.git
cd airtable-mcp
npm install
npm run build
テスト
npm run test:types # Type checking
npm test # Run test suite
プロジェクト構成
airtable-mcp/
├── src/typescript/ # TypeScript implementation
│ ├── app/
│ │ ├── tools/ # 42 tool implementations
│ │ ├── prompts/ # 10 AI prompt registrations
│ │ ├── airtable-client.ts
│ │ ├── governance.ts
│ │ └── context.ts
│ └── airtable-mcp-server.ts
├── dist/ # Compiled output
├── docs/ # Documentation
├── types/ # TypeScript definitions
└── bin/ # CLI executables
トラブルシューティング
接続の問題
- MCP サーバーが実行中であることを確認します
- MCP クライアントを再起動します
- トークンに必要なスコープがあることを確認します
無効なトークン
- 個人用アクセストークンが正しいことを確認します
- トークンに必要なスコープがあることを確認します
- 認証情報に余分な空白がないか確認します
ベースが見つからない
- ベース ID が正しいことを確認します
- トークンがそのベースにアクセスできることを確認します
list_basesを使用してアクセス可能なベースを確認します
ドキュメント
貢献
貢献を歓迎します。大きな変更については、まず issue を作成して相談してください。
ライセンス
MIT ライセンス — 詳細は LICENSE を参照してください。
Support
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。