このガイドでは、ReoGrid Studio を手元の AI ツール群に接続する方法を順を追って説明します。読み終える頃には、Claude Code で「このデータをスプレッドシートにして」と頼むだけで、ライブの studio.reogrid.net URL が返ってくるようになります。

ReoGrid Studio をご存じない方向けに簡単に説明すると、studio.reogrid.net でホストされる、公開 MCP エンドポイント付きのブラウザ上スプレッドシートです。AI エージェントが ReoGridJsonDocument を公開すると、共有可能な短縮 URL が返ってきます。背景については ReoGrid Studio のご紹介 を参照してください。


エンドポイント

押さえておくべきエンドポイントは 1 つだけです。

POST https://api-studio.reogrid.net/studio/mcp

JSON-RPC 2.0(MCP 標準のトランスポート)を話します。認証なし、匿名アクセス可、IP あたり 1 時間 30 回までのレート制限付きです。公開されているツールは 4 つあります。

ツール用途
get_schemaReoGridJsonDocument の基本スキーマと、拡張機能のインデックスを返す
get_feature_spec個別機能(filter、frozen、cellTypes など)のスキーマ詳細を返す
publish_sheetドキュメントを公開し { id, url, createdAt } を返す
get_sheet公開済みドキュメントを id で取得する

get_schemaget_feature_spec という 2 段階の探索を採用することで、公開スキーマを任意のエージェントのコンテキストウィンドウに収まるサイズに保ちつつ、必要に応じて全機能の詳細にアクセスできるようにしています。AI クライアントはこのパターンを自然と汲み取り、未知の機能が必要になった時点で get_feature_spec を呼び出します。


Claude Code から(推奨)

Claude Code は Anthropic 公式の CLI です。リモート MCP サーバーを標準でサポートしています。次のコマンドで Studio MCP を追加します。

claude mcp add --transport http --scope user reogrid-studio https://api-studio.reogrid.net/studio/mcp

--scope user フラグを付けると、マシン上のすべてのプロジェクトで利用できるようになります。フラグを省略(または --scope local を指定)すれば、現在のディレクトリ限定で登録されます。

登録されたか確認します。

claude mcp list

一覧に reogrid-studio が HTTP URL とともに表示されていれば成功です。

最初の会話

任意のプロジェクトで Claude Code を開いて、次のように頼んでみてください。

「Q1 の売上があります: 東京 1200/1450/1600、大阪 900/1100/1250、名古屋 700/850/950(1月/2月/3月)。月別合計と Q1 合計の列を持つきれいなスプレッドシートを作って、reogrid-studio で公開してください」

Claude Code は Studio のツールを自律的に使い始めます。典型的なトレースは次のようになります。

  1. mcp__reogrid-studio__get_schema() — 基本形状と機能インデックスを読み取る
  2. mcp__reogrid-studio__get_feature_spec({ feature: "frozen" }) — 使いたい機能の詳細仕様を取得する
  3. mcp__reogrid-studio__publish_sheet({ doc, title }) — 公開し、URL を受け取る

応答の最後に公開 URL が含まれます。クリックすればスプレッドシートが開きます。

便利なプロンプトパターン

  • 分析したデータを可視化する: 「今計算した行を、適切な数値書式付きで Studio シートとして公開してください」
  • 記述から組み立てる: 「現実的な 15 件のプロダクトバックログを生成して、ヘッダーフィルタ付きで公開してください」
  • ファイルから変換する: data.csv を読み込み、地域別に集計し、合計列に条件付き書式を付けた状態で Studio シートとして公開してください」

Claude は必要なスキーマや機能をその場で取りに行きますので、JSON の形状を逐一指示する必要はありません。


Claude Desktop から

Claude Desktop も同じ MCP プロトコルを話します。設定ファイルを編集してください。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Studio サーバーを追加します。

{
  "mcpServers": {
    "reogrid-studio": {
      "type": "http",
      "url": "https://api-studio.reogrid.net/studio/mcp"
    }
  }
}

Claude Desktop を再起動すると、ツールが会話のツール一覧に現れます。プロンプトの書き方は Claude Code と同じです。

お使いの Claude Desktop が HTTP MCP サーバーをネイティブにサポートしていない場合は、mcp-remote ブリッジを使ってください。

{
  "mcpServers": {
    "reogrid-studio": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api-studio.reogrid.net/studio/mcp"]
    }
  }
}

Cursor から

Cursor~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト単位)で MCP をサポートしています。

{
  "mcpServers": {
    "reogrid-studio": {
      "url": "https://api-studio.reogrid.net/studio/mcp"
    }
  }
}

ウィンドウをリロードすると、Composer の利用可能ツールに Studio が表示されます。プロンプトパターンは同じです。


Anthropic API から(アプリケーション開発者向け)

Claude とプログラム的にやり取りするアプリケーションを構築している場合は、API レベルの MCP コネクタを利用してください。MCP クライアントを自前で動かす必要がなく、Anthropic 側でループを処理してくれます。

import Anthropic from "@anthropic-ai/sdk"

const client = new Anthropic() // 環境変数 ANTHROPIC_API_KEY を読み込みます

const response = await client.beta.messages.create({
  model: "claude-opus-4-7",
  max_tokens: 16000,
  system:
    "You are a data visualization assistant. Use the reogrid-studio MCP to " +
    "publish data as live spreadsheets. End your reply with the URL.",
  messages: [
    {
      role: "user",
      content:
        "Q1 support tickets — Email Jan 423 Feb 401 Mar 456, " +
        "Chat Jan 612 Feb 689 Mar 745, Phone Jan 234 Feb 220 Mar 198. " +
        "Build a clean spreadsheet with monthly totals and publish it.",
    },
  ],
  mcp_servers: [
    {
      type: "url",
      url: "https://api-studio.reogrid.net/studio/mcp",
      name: "studio",
    },
  ],
  tools: [{ type: "mcp_toolset", mcp_server_name: "studio" }],
  betas: ["mcp-client-2025-11-20"],
})

// response.content には text、mcp_tool_use、mcp_tool_result のブロックが
// 交互に並びます。公開 URL は publish_sheet の最後の mcp_tool_result と
// 多くの場合最後のテキストブロックに現れます。

注意点:

  • ベータヘッダー mcp-client-2025-11-20 が必須です。betas: で指定し、client.beta.messages.create(...) を呼び出します。
  • サーバー側ループにはデフォルトの上限があります。到達した場合 stop_reason: "pause_turn" で応答が返るので、response.contentassistant ターンとして messages に追記し、再送して継続させます。
  • コストは Opus 4.7 のレートでシナリオあたり概ね 0.15〜0.20 USD 程度です(スキーマレスポンスが約 16 KB あり、入力トークンの大半を占めます)。試行錯誤の段階では claude-sonnet-4-6 を使うと安く済みます。
  • 同じパターンが Python でも動作します。Anthropic SDK MCP connector のドキュメント を参照してください。

公開された内容を確認する

公開のたびに { id, url, createdAt } が返されます。保存されているドキュメントは get_sheet で取得できます。

curl -sS -X POST https://api-studio.reogrid.net/studio/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_sheet","arguments":{"id":"YOUR_SHORT_ID"}}}'

Claude Code から直接呼び出すこともできます: 「シート 9mkzWpAibo4K34 を取得して、セル数を教えてください」


トラブルシューティング

/studio/mcp への GET で HTTP 405 — 期待通りの挙動です。エンドポイントは POST 専用で、MCP のサーバー送信イベント(SSE)半分は実装されていません — 4 つのツールのいずれもサーバープッシュを必要としないためです。POST するクライアントは問題なく動きます。

HTTP 429 または JSON-RPC code: -32000 "rate limit exceeded" — IP に対する 1 時間 30 回の公開制限を超過しています。1 時間待つか、まとめて公開してください。読み取り系の呼び出し(get_schematools/listget_sheet)も同じバケットを共有します。

JSON-RPC code: -32602 "doc.format must be \"reogrid-json\"" — AI クライアントが間違った封筒で公開を試みています。ドキュメントが format: "reogrid-json"version: 1、そして空でない workbook.sheets[] に厳密に 1 つだけシートを含む構造になっているか確認してください(Phase 1 は単一シートのみ)。

code: -32602 "Unknown feature: …"get_feature_spec をインデックスに含まれない機能名で呼び出しています。先に get_schema を呼び、返ってきたリストから feature.name を選んでください(conditionalFormatscellTypesfilteroutlinesprotectionalternateRowsviewfrozennumberFormatsrichText)。

公開したシートがブラウザで空白に見えるpublish_sheet のレスポンスを確認してください。URL は返ってきているのにシートが空に見える場合、get_sheet でドキュメントを取得し直して doc.workbook.sheets[0].cells を確認してください。セルが欠落している場合、AI がセル座標フィールド名を間違えて構築しています(row / col ではなく、0 オリジンの r / c を使う必要があります)。


今後の予定

ReoGrid Studio Phase 1 は単一シート、匿名アクセス、レート制限付き、無料です。Phase 2 のロードマップ候補は次のとおりです。

  • 複数シートのワークブック
  • API キーベースのクォータと商用プラン
  • 公開済みシートのプログラム的な更新・削除
  • 大規模データセットやサーバー側集計向けの Server-Sent Events 対応

特定の機能を必要としている Phase 2 のユースケースがあれば、Issue を立てるかご連絡ください — 具体的な需要が優先順位を決めます。


まとめ

# Claude Code — コマンド 1 つで追加してそのままプロンプト
claude mcp add --transport http --scope user reogrid-studio https://api-studio.reogrid.net/studio/mcp
// Claude Desktop / Cursor — MCP 設定に追加
{
  "mcpServers": {
    "reogrid-studio": { "type": "http", "url": "https://api-studio.reogrid.net/studio/mcp" }
  }
}
// Anthropic API — ベータの MCP コネクタを使う
client.beta.messages.create({
  model: "claude-opus-4-7",
  mcp_servers: [{ type: "url", url: "https://api-studio.reogrid.net/studio/mcp", name: "studio" }],
  tools: [{ type: "mcp_toolset", mcp_server_name: "studio" }],
  betas: ["mcp-client-2025-11-20"],
  // ...
})

あとは AI が仕事をしてくれます。プロンプトを送って、URL を受け取って、URL を共有するだけです。