はじめに
Airtableは、表計算のシンプルさとデータベースの柔軟性を組み合わせたクラウドベースのプラットフォームです。プロジェクト管理、CRM、イベント企画など、さまざまな用途で使われています。一方、**Model Context Protocol(MCP)**は、AI(例:Claude)を外部データやツールと標準化された方法で接続するプロトコルです。このシリーズでは、AirtableとMCPを統合し、データ管理を強化するエージェントAIを構築する方法を学びます。たとえば、プロジェクトデータをAIが取得して要約したり、タスクを自動化したりできます。
第1章では、AirtableとMCPの基本を理解し、Airtableからデータを取得するシンプルなMCPサーバーを構築します。Claude Desktopと接続して、データ管理の第一歩を踏み出しましょう。AirtableとAIの可能性にワクワクしている方は、ぜひ一緒に始めましょう!
AirtableとMCPの概要
Airtableとは?
Airtableは、以下のような特徴を持つデータ管理ツールです:
- 直感的なUI:スプレッドシートのようなインターフェースで簡単にデータ管理。
- 強力なAPI:REST APIでデータ取得や操作が可能。
- カスタマイズ性:テンプレートやビューで多様なニーズに対応。
- コラボレーション:チームでのリアルタイム共同作業をサポート。
MCPの役割
MCPは、AIにAirtableのデータを提供する橋渡し役です。MCPサーバーを通じて、AIは以下を行えます:
- データ取得:Airtableのテーブルからプロジェクトやタスク情報を取得。
- アクション実行:新しいレコードを追加、データを更新。
- 自動化:データに基づいてタスクや通知を生成。
なぜAirtableとMCPを組み合わせる?
この組み合わせは、以下のようなシナリオで強力です:
- プロジェクト管理:AIがAirtableのタスクデータを分析し、進捗を報告。
- イベント企画:AIがスケジュールや参加者リストを整理。
- CRM:AIが顧客データを基にフォローアップを提案。
開発環境の準備
MCPサーバーとAirtableを統合するには、以下の環境を準備します:
- Python 3.8以降:サーバー開発用。
- mcpライブラリ:JSON-RPC通信を処理(仮定のライブラリ、公式ドキュメントを参照)。
- pyairtableライブラリ:Airtable APIとの通信用。
- Claude Desktop:MCP対応のAIクライアント。
- テキストエディタ:VS Code推奨。
インストールコマンド:
pip install mcp jsonrpcserver pyairtable python-dotenv
Airtableのセットアップ
-
プロジェクト作成:
-
Airtableにアクセスし、新しいベースを作成(例:
MCP-Projects
)。 - テーブルを作成(例:
Projects
)し、以下のフィールドを追加:-
Name
(テキスト):プロジェクト名 -
Description
(長編テキスト):説明 -
Created At
(日付):作成日
-
- テストデータを入力:
Name Description Created At プロジェクトA MCP統合テスト 2025-04-15 プロジェクトB AI自動化プロジェクト 2025-04-16
-
Airtableにアクセスし、新しいベースを作成(例:
-
APIキーの取得:
- Airtableアカウント設定でPersonal Access Tokenを作成。
- スコープ:
data.records:read
を選択。 - トークンとベースID、テーブル名を記録。
-
環境変数の設定:
.env
ファイルに以下を追加:AIRTABLE_TOKEN=your_airtable_token AIRTABLE_BASE_ID=your_base_id AIRTABLE_TABLE_NAME=Projects
コード例:Airtable用MCPサーバー
AirtableのProjects
テーブルからデータを取得するMCPサーバーを構築します。
from mcp import MCPServer
from pyairtable import Table
import os
from dotenv import load_dotenv
class AirtableServer(MCPServer):
def __init__(self, host, port, airtable_token, base_id, table_name):
super().__init__(host, port)
self.table = Table(airtable_token, base_id, table_name)
self.register_resource("get_projects", self.get_projects)
def get_projects(self, params):
try:
records = self.table.all()
projects = [
{
"id": record["id"],
"name": record["fields"].get("Name", ""),
"description": record["fields"].get("Description", ""),
"created_at": record["fields"].get("Created At", "")
}
for record in records
]
return {"status": "success", "projects": projects}
except Exception as e:
return {"status": "error", "message": str(e)}
if __name__ == "__main__":
load_dotenv()
server = AirtableServer(
host="localhost",
port=8099,
airtable_token=os.getenv("AIRTABLE_TOKEN"),
base_id=os.getenv("AIRTABLE_BASE_ID"),
table_name=os.getenv("AIRTABLE_TABLE_NAME")
)
print("Airtable MCPサーバーを起動中: http://localhost:8099")
server.start()
コードの説明
-
Table:
pyairtable
を使ってAirtableテーブルに接続。 -
get_projects:
Projects
テーブルから全レコードを取得し、ID、名前、説明、作成日をフォーマット。 - register_resource:リソースを登録し、AIがアクセス可能に。
- start():サーバーを起動。
前提条件
- Airtableベースに
Projects
テーブルが存在。 -
.env
ファイルに正しいAIRTABLE_TOKEN
、AIRTABLE_BASE_ID
、AIRTABLE_TABLE_NAME
が設定済み。
サーバーのテスト
サーバーが正しく動作するか確認します:
-
サーバー起動:
python airtable_server.py
コンソールに「Airtable MCPサーバーを起動中: http://localhost:8099」と表示。
-
データ取得のテスト:
Pythonでリクエストを送信:import requests import json url = "http://localhost:8099" payload = { "jsonrpc": "2.0", "method": "get_projects", "params": {}, "id": 1 } response = requests.post(url, json=payload) print(json.dumps(response.json(), indent=2, ensure_ascii=False))
期待されるレスポンス:
{ "jsonrpc": "2.0", "result": { "status": "success", "projects": [ { "id": "rec123", "name": "プロジェクトA", "description": "MCP統合テスト", "created_at": "2025-04-15" }, { "id": "rec456", "name": "プロジェクトB", "description": "AI自動化プロジェクト", "created_at": "2025-04-16" } ] }, "id": 1 }
Claude Desktopとの接続
サーバーをClaude Desktopに接続します:
-
設定ファイルの編集:
Claude Desktopの設定ファイル(例:claude_desktop_config.json
)に以下を追加:{ "mcp_servers": [ { "name": "AirtableServer", "url": "http://localhost:8099", "auth": "none" } ] }
-
Claudeでテスト:
Claude Desktopを起動し、プロンプトを入力:プロジェクト一覧を教えてください。
レスポンス例:
Airtableから取得したプロジェクト: - プロジェクトA:MCP統合テスト(2025-04-15) - プロジェクトB:AI自動化プロジェクト(2025-04-16)
次のステップ
このMCPサーバーは、AirtableとAIの連携の基礎です。次の第2章では、Airtableにレコードを追加・更新する機能を実装し、タスク管理を自動化するエージェントを構築します。たとえば、AIが新しいタスクをAirtableに追加したり、ステータスを更新したりできます。Airtableの自動化に興味がある方は、ぜひお楽しみに!
まとめ
この第1章では、AirtableとMCPの基本を学び、シンプルなMCPサーバーを構築してプロジェクトデータを取得しました。Airtableの柔軟なデータ管理とMCPの標準化された接続を組み合わせることで、AIを強力なデータアシスタントに変えられます。次章以降では、タスク自動化、データ分析、イベント管理へと進化させます。
役に立ったと思ったら、「いいね」や「ストック」をしていただけると嬉しいです!次の章でまたお会いしましょう!