コンテンツにスキップ
α(一般提供前)のサービスです。一般提供はしておらず、仕様変更・機能の追加削除・データの削除が予告なく発生する場合があります。
ThingsConnectThingsConnect ドキュメント
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

連携サンプル

n8n・Make・自作スクリプトなど MCP を直接話せないツールから JSON-RPC で呼び出す設定例

n8n や Make のように MCP を直接話せないツールからは、HTTP で JSON-RPC を送る形で同じツールを呼び出せます。このページでは、その設定例をまとめています。

以下の <トークン> には、組織設定で発行した API トークンを入れてください。

呼び出しの基本

項目 値
エンドポイント POST https://api.thingsconnect.app/api/mcp
ヘッダ Authorization: Bearer <トークン>
Content-Type: application/json
Accept: application/json, text/event-stream
ボディ JSON-RPC 2.0(method は tools/list または tools/call)

サーバはステートレスな Streamable HTTP 構成のため、セッションを張らずに単発の POST で完結します。GET / DELETE は 405 を返します。

ツール一覧を取得する

curl -X POST https://api.thingsconnect.app/api/mcp \
  -H "Authorization: Bearer <トークン>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

ツールを呼び出す

curl -X POST https://api.thingsconnect.app/api/mcp \
  -H "Authorization: Bearer <トークン>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "get_sensor_reading",
      "arguments": { "device_id": "edge-device-01__c9b1d2e3-4a5b-6c7d-8e9f-0a1b2c3d4e5f" }
    }
  }'

レスポンスの読み方

レスポンスは JSON-RPC の形で返り、ツールの戻り値は result.content[0].text に JSON 文字列として入ります。

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{ "type": "text", "text": "{\"device_id\":\"...\",\"value\":12.34,\"unit\":\"kg\"}" }]
  }
}

n8n から使う

HTTP Request ノードで上記の JSON-RPC を送ります。

ワークフロー例(センサ値の監視 → Slack 通知)

{
  "nodes": [
    {
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": {
        "rule": { "interval": [{ "field": "minutes", "minutesInterval": 5 }] }
      }
    },
    {
      "name": "Get Sensor Reading",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "method": "POST",
        "url": "https://api.thingsconnect.app/api/mcp",
        "headerParameters": {
          "parameters": [
            { "name": "Authorization", "value": "Bearer <トークン>" },
            { "name": "Accept", "value": "application/json, text/event-stream" }
          ]
        },
        "jsonBody": "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"get_sensor_reading\",\"arguments\":{\"device_id\":\"edge-device-01__c9b1d2e3-4a5b-6c7d-8e9f-0a1b2c3d4e5f\"}}}"
      }
    },
    {
      "name": "Slack Notify",
      "type": "n8n-nodes-base.slack",
      "parameters": {
        "channel": "#factory-alerts",
        "text": "現在の重量: {{ JSON.parse($json.result.content[0].text).value }} kg"
      }
    }
  ]
}

result.content[0].text は JSON 文字列なので、後続で使う前にパースが必要です。

Make(旧 Integromat)から使う

HTTP モジュールから同じ JSON-RPC を送ります。

  1. シナリオエディタで「HTTP > Make a request」モジュールを追加します。

  2. 以下のように設定します。

    項目 値
    URL https://api.thingsconnect.app/api/mcp
    Method POST
    Headers Authorization: Bearer <トークン> / Accept: application/json, text/event-stream
    Body type Raw
    Content type application/json
    Request content {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_ai_events","arguments":{"ai_app_id":"license-plate","limit":20}}}
  3. 「Parse JSON」モジュールで result.content[0].text をパースし、後続モジュールで利用します。

監視シナリオの組み方

サーバ起点の通知は受け取れません(ステートレス構成のため)。定期実行して自前で判定する形にします。

  • トリガー: スケジュール(5 分ごと)
  • HTTP: 値を取るツールを呼び出す
  • Parse JSON: result.content[0].text をパース
  • Router: 条件に一致するルートと、しないルートに分岐
  • Email / Slack: 一致 → 通知

自作スクリプトから使う

同じ JSON-RPC を送るだけです。センサ値を 5 分ごとに取得して閾値判定する例です。

#!/usr/bin/env bash
set -euo pipefail

ENDPOINT="https://api.thingsconnect.app/api/mcp"
TOKEN="<トークン>"
DEVICE_ID="edge-device-01__c9b1d2e3-4a5b-6c7d-8e9f-0a1b2c3d4e5f"

value=$(curl -sS -X POST "$ENDPOINT" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"get_sensor_reading\",\"arguments\":{\"device_id\":\"$DEVICE_ID\"}}}" \
  | jq -r '.result.content[0].text' | jq -r '.value')

echo "現在値: $value"

利用できるツールの全一覧とパラメータは利用可能なMCPツール一覧にあります。

最終更新 2026年10月7日