コンテンツにスキップ

MCP で接続する

D2B の MCP サーバは https://d2b.dev/mcp/(Streamable HTTP)。認証は 2 通りです。ホストのサインイン(OAuth 2.1。ブラウザで承認し、1 時間有効のトークンをホストが自動更新)か、PAT の Bearer ヘッダ。ツールは REST / CLI / SDK と同じ面で、型付きスキーマ付きの tool calling として使えます(現在のツール一覧はホストの tool list がそのまま最新です)。

接続すると、初期化応答の instructions に運用規範(どのツールをどの順で、ファイルは参照で取り込む、派生は transform で、409 は読み直す、区切りで commit_snapshot、片付けは delete_workbook …)が入ります。ホストが instructions を切り詰める場合は、同じ文面を d2b://guide リソースで読めます。リポジトリに貼るのは接続と経路の選択だけで十分です(コーディングエージェントから使う)。

ワークスペースの provision も MCP から行えます(provision_workspace / delete_workspace。workspaces:create / workspaces:delete スコープを持つアカウント全体のキーが必要で、ワークスペースに固定されたキーは兄弟ワークスペースを作れません)。

URL を登録するだけで、ホストが https://d2b.dev/mcp/ の 401 から認可サーバーを見つけ、ブラウザで D2B の同意画面を開きます。画面ではアプリ名、戻り先のホスト、与える権限(workbooks の read / write / delete と cloud-files:read)、そしてどのアカウントで動くか(既定アカウントか、開発者アカウントのひとつ)を確認して承認します。発行されるアクセストークンは 1 時間有効で、ホストがリフレッシュトークンで更新します。コンソールの 設定 > トークン に oauth:<アプリ名> として並ぶので、接続単位でいつでも失効できます。

アプリ名はホスト側の自己申告で、D2B は検証しません。心当たりのない同意画面は拒否してください。ホストが OAuth に対応していない場合や、CI のような無人環境では、従来どおり PAT の Bearer ヘッダを使います。

Terminal window
claude mcp add d2b --transport http https://d2b.dev/mcp/

ヘッダを付けずに登録すると初回にサインインを求められます。無人環境では PAT を渡します:

Terminal window
claude mcp add d2b --transport http https://d2b.dev/mcp/ \
--header "Authorization: Bearer $D2B_PAT"

PAT を使う場合は workbook スコープ + レート上限付きの最小権限トークンを推奨します(クイックスタート §1)。

目的ツール
発見list_my_data / get_schema(include_json_schema) / profile_table / get_lineage / get_downstream / search
読むread_table / query_sql / validate_sql
検証するreview_table / review_workbook(根拠付きの指摘。元ファイルの数式、表の不変条件、ラベルと定義の整合。mode="agent" はジョブを返すので get_job で待つ)
取り込む(参照が主経路)ingest_url / request_upload → ingest_upload / list_cloud_files → import_cloud_file / track_onedrive_file / ingest_file
構造の確認・原本踏襲analyze_source / get_parse_spec / update_parse_spec / materialize_source / revise_source
器(ワークブック・ワークスペース)list_my_workspaces / create_workbook / delete_workbook / provision_workspace / delete_workspace
作る・直すcreate_table / add_transform / list_transforms / upsert_rows / delete_rows / write_a1 / put_sheet / get_sheet / list_sheets
スキーマadd_column / rename_column / retype_column / drop_column / rename_table
数式・説明set_formula_column / list_formula_columns / clear_formula_column / set_artifact_description / set_column_description / set_table_style / get_table_style
履歴list_snapshots / commit_snapshot / restore_snapshot / diff_snapshots / recompute_stale / list_ops / undo_op
衝突・同期・納品list_conflicts / resolve_conflict / export_tables / bind_external_sheet / list_sync_bindings / unbind_external_sheet / list_file_links / sync_file_link

ツール入力は厳格に型付けされています(enum / 構造化モデル。生成時にハーネス側で不正値を弾けます)。唯一データ依存で型付けできない upsert_rows.rows は、get_schema(name, include_json_schema=true) が返す「そのテーブルの 1 行分 JSON Schema」で実行時に拘束できます。

エラーは REST と同じ problem+json の語彙(suggested_fix 付き)で返ります — エラーの読み方。

トランスポートは stateless な streamable HTTP です — サーバ側に会話セッションは保持されず、各リクエストが自己完結します(リトライ・水平スケールに安全)。