MCPサーバのセットアップ
ThingsConnectのMCPエンドポイントに接続し、AIエージェントから利用するための設定方法
MCPエンドポイントの構成
ThingsConnect では、クラウドがMCPサーバとして動作します。AIエージェントはクラウドのMCPエンドポイントに接続し、クラウドが背後で現場の各エッジPC(カメラ・センサ)と通信します。エッジPCに直接つなぐ構成はありません。
MCPエンドポイントは組織ごとに分かれています。<組織 ID> の部分を含めた URL は、管理ダッシュボードの**「組織設定」→「API・MCP」**の「AI アプリとの接続」に表示されます(メンバーも表示できます)。
https://api.thingsconnect.app/api/mcp/<組織 ID>
API トークンで接続する場合は、トークンで組織が決まるので、<組織 ID> を省いた https://api.thingsconnect.app/api/mcp でも接続できます。
エッジPCの配備についてはエッジPCの配備を参照してください。
プロトコル
Streamable HTTP(ステートレス構成)です。
- ツール呼び出しは単発の
POSTで完結します。セッション ID の発行・保持はありません。 GETによる常時 SSE ストリームは開けません(GET/DELETEは405を返します)。- そのため、サーバ起点の非同期 push 通知(イベント購読)は利用できません。定期的に呼び出すポーリング型で組んでください。
認証
接続の方法は 2 通りあります。
| 方法 | 向いているクライアント | 誰の権限で動くか |
|---|---|---|
| OAuth(ログインして許可) | Claude のカスタムコネクタ(Web・デスクトップ・スマホのアプリ) | ログインしたユーザー |
| API トークン | mcp-remote を使う設定ファイル、n8n などの自動化ツール |
トークンを発行した組織 |
どちらの方法でも、ツールが参照・操作できるのはその組織に属するエッジPC・デバイス・ダッシュボード・保存クエリだけです。
OAuth(ログインして許可)
MCP エンドポイントの URL をクライアントに登録すると、初回の接続時に ThingsConnect のサインイン画面が開きます。サインインすると許可を求める画面が出るので、組織と許可する内容を確かめて**「許可する」**を押してください。以降はクライアントがトークンを自動で更新するため、使うたびにサインインする必要はありません。
- 接続先の組織は、URL の
<組織 ID>の組織です。所属していない組織の URL では「許可する」を押せません。 - 操作系のツール(デバイスの登録・変更・削除、配信の開始停止、ダッシュボード・保存クエリの編集)は、組織のオーナー・管理者のユーザーだけが使えます。メンバーのユーザーには操作系のツールが一覧に出ません。
- 組織から外れると、許可済みの接続もその時点で使えなくなります。役割が変わった場合も次の呼び出しから反映されます。
許可を求める画面には「戻り先」(接続を依頼してきたクライアントのホスト名)が出ます。Claude なら claude.ai です。心当たりの無い戻り先なら「拒否する」を押してください。
API トークン
Authorization ヘッダにトークンを付与します。
Authorization: Bearer <トークン>
トークンは管理ダッシュボードの**「組織設定」→「API・MCP」**の「API トークン」で発行します(組織のオーナー・管理者のみ → 組織設定)。MCP で使うトークンには次のどちらかのスコープを付けてください。
| スコープ | できること |
|---|---|
| MCP(参照) | 接続と参照系ツール(一覧・現在値・履歴・映像・撮影・AI アプリのイベント・SQL 実行) |
| MCP(操作) | 上記に加えて、デバイスの登録・変更・削除、配信の開始停止、ダッシュボード・保存クエリの編集 |
「MCP(操作)」を付けていないトークンでは、操作系のツールがそもそも一覧に出ません(AI からは「使えない」ではなく「無い」ものとして見えます)。AI に設定を触らせたくない場合は「MCP(参照)」だけを付けてください。
「参照」(CLI 用)のスコープでは MCP に接続できません。発行手順とその他のスコープは組織設定を参照してください。
認証に失敗した場合は、ツール呼び出し以前に HTTP 401({"error":"Unauthorized"})が返ります。
利用の記録
ThingsConnect は、MCP のツール呼び出し(日時・ツール名・引数・どのトークンまたはユーザーから呼ばれたか)を記録しています。管理ダッシュボードの画面を開いた記録(日時・画面・ユーザー)も同じく残します。どちらも 365 日で自動削除され、組織を削除すると一緒に削除されます。AI に入力した質問の文章そのものは ThingsConnect に届かないため、記録されません。
OAuth で接続した場合はユーザー単位で記録されます。API トークンの場合はトークン単位なので、使う人ごとにトークンを分けて発行すると、誰が使ったかを見分けられます。トークンの名前に使う人の名前を入れておくと、後から確認しやすくなります。
組織全体で MCP を止める
AI からの接続を組織として使わない場合は、管理ダッシュボードの**「組織設定」→「API・MCP」**の「MCP サーバー」で無効にできます(組織のオーナー・管理者のみ、既定は有効)。
無効にすると、MCP のスコープを持つトークンや OAuth で許可済みの接続があっても接続できず、HTTP 403({"error":"MCP is disabled for this organization"})が返ります。管理ダッシュボードの画面・REST API・独自コンポーネントの CLI には影響しません。トークンを 1 つずつ失効させなくても、この 1 か所で止められます。
クライアントの設定
Claude(Web・デスクトップ・スマホ)
Claude のカスタムコネクタに MCP エンドポイントの URL を登録します。
- 管理ダッシュボードの「組織設定」→「API・MCP」の「AI アプリとの接続」で、URL をコピーします。
- Claude の設定の「コネクタ」で、カスタムコネクタを追加します。
- 名前(例: ThingsConnect)と、コピーした URL を入れて追加します。OAuth のクライアント ID・シークレットの欄は空のままにします。
- 追加したコネクタの接続を始めると ThingsConnect のサインイン画面が開くので、サインインして許可します。
Web またはデスクトップで追加したコネクタは、同じアカウントのスマホのアプリでも使えます。Team / Enterprise プランでは、コネクタを追加できるのは Claude 側の組織の管理者です。
複数の組織をつなぐ
1 つのコネクタがつながる組織は 1 つです。複数の組織を AI から使うときは、組織ごとにコネクタを追加します。
- 管理ダッシュボードのアカウントのメニューから組織を切り替え、「組織設定」→「API・MCP」でその組織の URL をコピーします。
- Claude にカスタムコネクタを追加します。名前は「ThingsConnect(本社)」のように組織が分かるものにします。
- 接続して許可します。許可を求める画面の「組織」に、その組織が出ていることを確かめてください。
AI には、組織ごとのコネクタが別々のツールの集まりとして見えます。質問するときに「本社の」のように組織を添えると、AI が使うコネクタを選びやすくなります。
OAuth に対応していないクライアント(mcp-remote)
Claude なら上のカスタムコネクタで足ります。OAuth に対応しておらず、認証ヘッダ付きのリモート MCP サーバも直接指定できないクライアントでは、mcp-remote を経由して API トークンを渡します。以下の設定ファイルは Claude Desktop の例です。
| OS | 設定ファイルの場所 |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
{
"mcpServers": {
"thingsconnect": {
"command": "npx",
"args": [
"mcp-remote",
"https://api.thingsconnect.app/api/mcp",
"--header",
"Authorization: Bearer <トークン>"
]
}
}
}
HTTP トランスポートとヘッダを直接指定できるクライアントでは、URL とヘッダをそのまま設定してください。
- n8n / Make など MCP を直接話せないツールから使う方法 → 連携サンプル
エッジPC側の設定はどこで行うか
エッジPC側に設定ファイルを置く運用はありません。 カメラ・センサ・AI 推論デバイスの設定は、クラウドからエッジPCへ届きます。
- 設定の入口は管理ダッシュボード、または MCP ツールです(
add_camera_device/update_device/start_rtmp_streamなど)。 - 設定はクラウドに保存され、エッジPCがオンラインのときに反映されます。
- エッジPCがオフラインでも設定は失われません。 オンラインに戻ったときに最新の設定が反映されます。
- エッジPCが適用した結果はクラウドに戻り、ダッシュボードの状態表示や
get_edge_pc_infoの内容になります。
したがって、AI エージェント側で用意するのは接続先 URL と認証(OAuth の許可かトークン)だけです。
設定できる主な項目
MCP から変更できる設定です。詳細なパラメータは利用可能なツール一覧を参照してください。
| 対象 | 設定できること | ツール |
|---|---|---|
| エッジPC | メモの書き換え | update_edge_pc_note |
| カメラ | 登録 / 名前・メモ・映像ソースの変更 / 削除 | add_camera_device / update_device / remove_device |
| カメラ | 外部配信(RTMP)の開始・停止 | start_rtmp_stream / stop_rtmp_stream |
| センサ | 名前・メモの変更(登録とその他の設定はダッシュボードから) | update_device / get_sensor_reading / get_sensor_history |
| AI アプリ | 結果とイベントの参照(追加・設定・削除はダッシュボードから) | list_ai_app_instances / get_ai_app_instance / get_ai_app_history / list_ai_events |
ネットワーク設定
- エッジPC → クラウド: エッジPCは外向き HTTPS(443)でクラウドに接続します。インバウンドのポート開放は不要です。
- AIエージェント → クラウド: クラウドの MCP エンドポイント(HTTPS)に接続します。
- TLS: クラウドとの通信はすべて HTTPS で暗号化されます。