---
title: MCPサーバのセットアップ
description: ThingsConnectのMCPエンドポイントに接続し、AIエージェントから利用するための設定方法
createdAt: 2026-06-17
lastModified: 2026-10-15
---

## 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の配備](/docs/operations/deploy)を参照してください。

### プロトコル

**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 トークン」で発行します（組織のオーナー・管理者のみ → [組織設定](/docs/guides/organization#api-トークン)）。**MCP で使うトークンには次のどちらかのスコープを付けてください。**

| スコープ | できること |
| --- | --- |
| MCP（参照） | 接続と参照系ツール（一覧・現在値・履歴・映像・撮影・AI アプリのイベント・SQL 実行） |
| MCP（操作） | 上記に加えて、デバイスの登録・変更・削除、配信の開始停止、ダッシュボード・保存クエリの編集 |

「MCP（操作）」を付けていないトークンでは、**操作系のツールがそもそも一覧に出ません**（AI からは「使えない」ではなく「無い」ものとして見えます）。AI に設定を触らせたくない場合は「MCP（参照）」だけを付けてください。

「参照」（CLI 用）のスコープでは MCP に接続できません。発行手順とその他のスコープは[組織設定](/docs/guides/organization#api-トークン)を参照してください。

認証に失敗した場合は、ツール呼び出し以前に 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 を登録します。

1. 管理ダッシュボードの「組織設定」→「API・MCP」の「AI アプリとの接続」で、URL をコピーします。
2. Claude の設定の「コネクタ」で、カスタムコネクタを追加します。
3. 名前（例: ThingsConnect）と、コピーした URL を入れて追加します。OAuth のクライアント ID・シークレットの欄は空のままにします。
4. 追加したコネクタの接続を始めると ThingsConnect のサインイン画面が開くので、サインインして許可します。

Web またはデスクトップで追加したコネクタは、同じアカウントのスマホのアプリでも使えます。Team / Enterprise プランでは、コネクタを追加できるのは Claude 側の組織の管理者です。

### 複数の組織をつなぐ

1 つのコネクタがつながる組織は 1 つです。複数の組織を AI から使うときは、**組織ごとにコネクタを追加**します。

1. 管理ダッシュボードのアカウントのメニューから[組織を切り替え](/docs/guides/account#複数の組織を切り替える)、「組織設定」→「API・MCP」でその組織の URL をコピーします。
2. Claude にカスタムコネクタを追加します。名前は「ThingsConnect（本社）」のように組織が分かるものにします。
3. 接続して許可します。許可を求める画面の「組織」に、その組織が出ていることを確かめてください。

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` |

```json
{
  "mcpServers": {
    "thingsconnect": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.thingsconnect.app/api/mcp",
        "--header",
        "Authorization: Bearer <トークン>"
      ]
    }
  }
}
```

HTTP トランスポートとヘッダを直接指定できるクライアントでは、URL とヘッダをそのまま設定してください。

- n8n / Make など MCP を直接話せないツールから使う方法 → [連携サンプル](/docs/mcp/samples)

## エッジPC側の設定はどこで行うか

**エッジPC側に設定ファイルを置く運用はありません。** カメラ・センサ・AI 推論デバイスの設定は、クラウドからエッジPCへ届きます。

<Flow steps={[{ label: 'ダッシュボード / MCP ツール', note: '設定を変更' }, { label: 'クラウド', note: '設定を保存', accent: true }, { label: 'エッジPC', note: 'オンラインのときに反映して状態を返す' }]} />

- **設定の入口は管理ダッシュボード、または MCP ツール**です（`add_camera_device` / `update_device` / `start_rtmp_stream` など）。
- 設定はクラウドに保存され、エッジPCがオンラインのときに反映されます。
- **エッジPCがオフラインでも設定は失われません。** オンラインに戻ったときに最新の設定が反映されます。
- エッジPCが適用した結果はクラウドに戻り、ダッシュボードの状態表示や `get_edge_pc_info` の内容になります。

したがって、AI エージェント側で用意するのは**接続先 URL と認証（OAuth の許可かトークン）だけ**です。

:::note
エッジPCの登録とセットアップだけは管理ダッシュボードから行います。MCP にはエッジPCを登録するツールはありません（一覧・参照のみ）。手順は[エッジPCの登録と監視](/docs/guides/edge-pcs)を参照してください。
:::

### 設定できる主な項目

MCP から変更できる設定です。詳細なパラメータは[利用可能なツール一覧](/docs/mcp/tools)を参照してください。

| 対象 | 設定できること | ツール |
| --- | --- | --- |
| エッジPC | メモ・[管理項目](/docs/guides/organization#管理項目)の書き換え | `update_edge_pc_note` / `update_edge_pc_attributes` |
| カメラ | 登録 / 名前・メモ・管理項目・映像ソースの変更 / 削除 | `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 で暗号化されます。
