
Phaide は MCP サーバーとして動きます。つまり、いつも使っている AI アプリのチャットから、組織のデータへ直接問い合わせられるということです。エクスポートも、専用コネクタも、SQL も要りません。この記事では、どこに何を貼り付けるのか、許可画面が実際に何を尋ねているのか、つながったあと最初に何を試すとよいのかまで、順番に説明します。所要時間はおよそ 3 分、コードは書きません。
まず、設定の様子を動画で
文章の手順に入る前に、Claude での流れをひととおり見てください。コネクタ設定を開き、サーバー URL を貼り、接 続を許可するまでの全体像です。
始める前に用意するもの
必要なものは 3 つ、そのうち 2 つはすでにお持ちのはずです。
- Phaide のアカウント(データソースが 1 つ以上つながっている組織)。未接続でも接続自体はできますが、エージェントが最初に文脈を取りにいったとき、スキーマの代わりに「データの接続手順」が返ってきます。
- MCP に対応した AI アプリ。Claude と ChatGPT はどちらもカスタムコネクタに対応しています。MCP Inspector、Python の
fastmcpクライアントなど、Streamable HTTP を話せるものであれば同じように使えます。 - インストールは不要です。 おすすめの方法では、CLI もローカルのプロキシも、保管しておくキーもありません。
同じ 3 ステップは製品内にもあります。アカウントメニュー(サイドバー左下のイニシャル)→ デベロッパー → MCP タブ。こちらが正本で、以下に出てくる値にはコピーボタンが付いています。
ステップ 1 — サーバーのアドレスを追加する
お使いの AI アプリのコネクタ設定を開き、Phaide の MCP エンドポイントを貼り付けます。
https://api.beta.phaide.ai/v1/mcp/
- Claude の場合: 設定 → コネクタ →「カスタムコネクタを追加」
- ChatGPT の場合: 設定 → コネクタ →「追加する」
名前は自由です(「Phaide」など)。末尾のスラッシュは付けたままにしてください。 スラッシュ無しでも受け付けますが、クライアントによってはリダイレクトの際に Authorization ヘッダが落ち、資格情報とは無関係なのに認証エラーに見える、という事故が起きます。
クライアントによっては明示的に尋ねられる項目が 2 つあります。トランスポートは Streamable HTTP、サーバーは ステートレスです。セッションが特定のプロセスに固定されないため、複数マシン構成でもリクエストの行き先で挙動が変わりません。
ステップ 2 — 接続を許可する
認証方法は 2 つあります。アプリが対応しているなら、1 つめを選んでください。
| 方法 | ブラウザで許可する(おすすめ) | API キーを貼り付ける |
|---|---|---|
| 向いている相手 | Claude、ChatGPT など OAuth に対応したホスト | 自分で書いたスクリプトや、ブラウザ許可に非対応のアプリ |
| 手元で扱うもの | なし(秘密の文字列は一度も表示されません) | 自分で保管するキー文字列 |
| 渡す範囲 | 許可画面でチェックしたぶんだけ | 自分の権限すべて(絞り込みはできません) |
| やめるとき | 連携アプリタブ →「連携を解除」 | APIキータブ →「失効」 |
ブラウザで許可する場合
URL を追加して接続を押すと、Phaide の許可画面が開きます。ここで起きることは 3 つ。いずれも「アプリが決めること」ではなく「あなたが決めること」です。
- ログイン(まだの場合)。
- 接続する組織を選ぶ。 1 つの連携は「ユーザー × 組織 × アプリ」の組み合わせです。テナントの境界はここで引かれ、ある組織につないだアプリが別の組織を覗くことはできません。
- 渡す範囲を選んで「許可」を押す。 チェック済みで外せない行があります。これらは組織全体に届く権限で、「もっと小さい版」が存在しないため、外すことは接続自体を断ることと同じです。残りの行 — ダッシュボード、チャット、レポート — は展開でき、どれを渡すのか、閲覧だけか変更まで許すのかを、あなたが選びます。
最後の点は少し丁寧に読んでください。ここは fail-closed です。「ダッシュボードの閲覧」を許可することと「どのダッシュボードか選ぶこと」は別で、権限にチェックを入れても対象を 1 つも選ばなければ、アプリから見える一覧は空になります。「すべて」を選んだ場合は、あとから増えたものにも自動的に及びます。そして画面は、あなた自身のロールでできること以上を提示しません。 Viewer にはコード実行が提示されず、データの取り込みは owner / admin にしか提示されません。
API キーを使う場合
ブラウザ許可に対応していないクライアント — 自作のスクリプト、CI ジョブ、社内サービスなど — にはキーを発行します。
- アカウントメニュー → デベロッパー → APIキー → APIキーを作成。
- ラベルと有効期限(1時間 / 1日 / 7日 / 30日 / 1年、セルフホストなら無期限も)を設定します。
- その場でコピーしてください。 キーが表示されるのは作成時の 1 度きりです。
- 以後、すべてのリクエストに Bearer トークンとして付けます。
Authorization: Bearer ph-v1-xxxxx
どこかに組み込む前に、接続先の環境でそのキーが有効か確かめておきましょう。200 が返れば有効です。
curl -H "Authorization: Bearer ph-v1-xxxxx" https://api.beta.phaide.ai/v1/me
キーは環境ごとに独立しています。ある環境で発行したキーは別の環境では認証を通りません。「最初の 1 回目から認証できない」という症状の原因は、たいていこれです。
設定ファイル型のクライアントであれば、同じキーを次のように書きます。
{
"mcpServers": {
"phaide": {
"command": "uvx",
"args": [
"fastmcp-remote", "https://api.beta.phaide.ai/v1/mcp/",
"--header", "Authorization: Bearer ph-v1-xxxxx"
]
}
}
}
どちらの方法でも、アプリが届くのは接続した組織のデータだけです。他組織へのリクエストは「拒否」ではなく「見つからない」として扱われます。エラーコードの数を数えて、何が存在するかを推測できないようにするためです。
ステップ 3 — 最初の質問を投げる
コネクタが有効になったら、新しく覚えることはありません。いつもどおり AI アプリに話しかければ、自社データが必要な問いのときに Phaide を呼びにいきます。
| できるようになること | 話しかけ方の例 |
|---|---|
| データに直接きく。 質問がそのまま自社のテーブルに届きます。SQL を書いたり CSV を書き出したりする必要はありません。 | 「先月の売上を商品カテゴリ別に見せて」 |
| 数字を実際に計算して確かめる。 推測ではなくサンドボックスで計算を回すので、答えは必ず自社のデータから出てきます。 | 「6月に解約率が上がった原因を調べて」 |
| 自動で掘り下げてもらう。 テーマを渡すと、複数の切り口で分析し、見つかったことをまとめて返します。 | 「今月のデータで気になる変化を探して」 |
| ダッシュボードを作る・更新する。 分析結果をそのままダッシュボードにしたり、既存のものを最新の数字で作り直せます。 | 「今の分析を営業チーム向けのダッシュボードにまとめて」 |
| レポートを書いて共有する。 グラフを埋め込んだレポートを起草し、公開し、期限付きの共有リンクを発行できます。 | 「これをレポートにまとめて、共有リンクをちょうだい」 |
| 前提を覚えてもらう。 社内の用語やルールを記憶するので、次のセッションで説明し直す必要がありません。 | 「売上は常に税抜きで計算して、と覚えておいて」 |
| つなぐデータを探す。 760 以上の SaaS やデータベースから接続できるものを探し、必要な資格情報まで教えてくれます 。 | 「Stripe のデータを取り込みたい」 |
最初の一手としておすすめなのは、「いま何が見えてる?」と尋ねてみることです。この呼び出しは、スキーマ・アップロード済みのコンテキストファイル・蓄積されたメモリを一括で返します。データソースが未接続なら代わりに接続手順が返るので、エージェントは推測ではなく「何が足りないか」を教えてくれます。
接続が公開しているもの
Phaide を MCP 経由で使うだけなら、この節は読み飛ばして構いません。自前のクライアントを書く人向けの内容です。
コンテキスト
phaide_get_context— 最初に呼び出します。スキーマ・アップロード済みのコンテキストファイル・永続メモリを一括で返し、データソース未接続なら代わりに接続手順を返します。phaide_search_available_data_sources— 接続可能なデータソース(ネイティブコネクタと 760 以上のマネージド SaaS)を検索します。必要な資格情報も返ります。phaide_memory— セッションをまたいで残すべき事実を、永続メモリに書き込みます。
分析
phaide_execute_sql— 直接接続のデータソースに読み取り専用の SELECT を 1 回。結果は CSV です。phaide_execute_python— サンドボックスで Python を実行します。同じsession_keyを使う限り変数・インポート・ファイルが保持される、ステートフルな REPL です。phaide_start_exploration— 探索分析を起動し、id を即座に返します。phaide_exploration_result— 出そろった結果を回収します。
ダッシュボード
phaide_load_dashboard_skill— ダッシュボード作業の前に Widget 仕様を読み込みます。phaide_list_dashboards— アクセスできる一覧を、更新の新しい順で返します。phaide_get_dashboard— 1 つのダッシュボードの現在の Widget 定義。編集時のベースになります。phaide_update_dashboard— 保存します。id を省略すれば新規作成、指定すれば編集です。
レポート
phaide_list_reportsとphaide_get_report— 何があるか、そして 1 つのレポートの現在の版。phaide_create_reportとphaide_update_report— Markdown から執筆します。Python セッションの変数からグラフや表をそのまま切り出して埋め込め、改訂は不変の版として積み上がります。phaide_publish_report— 現在の版を公開します。phaide_create_report_share_linkとphaide_revoke_report_share_link— 公開版に紐づく期限付きの匿名リンクを発行し、また取り消します。
時間のかかる処理は非同期です。探索分析は起動と同時に id を返し、結果はあとから回収します。そのため、長い問いが接続を開いたまま保持したりタイムアウトしたりしません。ペイロードも軽量で、大きなデータはサーバー側に置いたまま参照だけを返し、必要になったときに取得します。
キー認証の場合の、最小限の Python クライアントはこうなります。
import asyncio
from fastmcp import Client
URL = "https://api.beta.phaide.ai/v1/mcp/"
KEY = "ph-v1-xxxxx" # /v1/me で有効性を確認した API キー
async def main():
async with Client(URL, auth=KEY) as client:
print([t.name for t in await client.list_tools()])
ctx = await client.call_tool("phaide_get_context", {})
print(ctx.content[0].text[:500])
run = await client.call_tool(
"phaide_execute_python",
{
"session_key": "k3n8q",
"code": "df = phaide.query('SELECT 1 AS n'); print(df)",
},
)
print(run.content[0].text)
asyncio.run(main())
先に手で触ってみたいときは npx @modelcontextprotocol/inspector が便利です。Transport を Streamable HTTP に、URL を上記のエンドポイントに設定し、Authorization ヘッダを追加すれば、GUI から各ツールを試せます。
渡した権限を、あとから管理する
連携はすべて 1 か所で確認でき、いつでも取り消せます。デベロッパー → 連携アプリ。どのアプリか、何が渡っているか、最終利用はいつか、そして「連携を解除」ボタンが並びます。解除は、そのアプリの次のリクエストから効きます。伝播を待つ時間はありません。
あわせて知っておきたいことが 3 つあります。
- 権限はリクエストのたびに、その時点のロールで再検査されます。 許可したあとにロールが下がれば、トークンに触れなくても、その権限は即座に効かなくなります。
- API キーの失効は「APIキー」タブから行います。失効は取り消せません。そのキーを使っているアプリは一斉にアクセスを失うため、復旧するには新しいキーを発行します。
- 1 つの連携は 1 つの組織に紐づきます。 複数の組織に所属していて、両方をエージェントから扱いたい場合は、組織を変えて 2 回接続してください。
うまくいかないとき
| 症状 | たいていの原因 |
|---|---|
| 最初の 1 回目からすべて認証に失敗する | 別環境で発行したキー、またはリダイレクトでヘッダが落ちている。/v1/me でキーを確認し、エンドポイントの末尾スラッシュを付けたままにする。 |
| つながってい るのに、ダッシュボードやレポートの一覧が空 | 権限は許可したが、許可画面で対象を 1 つも選んでいない。接続し直して、渡す対象にチェックを入れる。 |
| 「見られるデータがない」と言われる | その組織にまだデータソースがつながっていない。コンテキストの取得が接続手順を返すので、それに従ってから聞き直す。 |
| あるはずの権限が許可画面に出てこない | スコープは自分のロールを超えられません。コード実行には編集権限が要り、データの取り込みは owner / admin 専用です。 |
| Phaide 上では見えるダッシュボードが「存在しない」と返る | その連携の対象に選ばれていない。選ばれていない対象は、意図的に「拒否」ではなく「見つからない」として扱われます。 |
データを、いつもの場所へ
MCP でつなぐ意味は、新しい画面を覚えることではありません。むしろ逆です。これまで Phaide に打ち込んでいた問いを、すでに開いているチャットの中で答えられるようにすること。同じエンジン、同じガバナンス、そして境界は、許可画面であなた自身が引いたとおりです。
URL を貼り、「許可」を押して、何か聞いてみてください。