n8nのMCP:ワークフローを外から呼び出す、外のMCPを使う

公開 書いた人 大林 諒

n8nのMCPは、AIアプリとn8nをつなぐ口の話です。「問い合わせ受付」ワークフローを題材に、問い合わせ一覧をClaudeやChatGPTから検索できるようにする向きと、n8nのAIエージェントに外のMCPサーバーの道具を持たせる向きの両方を、設定項目まで追って作ります。読み終わると、どちらを使うか決めて、認証付きで本番に出し、詰まったときに原因を切り分けられます。前提は、n8n 2.44系が独自ドメインとHTTPSで動いていて、「問い合わせ受付」がスプレッドシート「問い合わせ一覧」に行を足していることです。

この記事の内容
  1. MCPとは何か
  2. 先に決めること
  3. n8nのMCP機能の一覧
  4. 向き1:MCP Server Triggerで問い合わせ一覧を道具にする
  5. インスタンス全体をMCPで公開する(Instance-level MCP)
  6. 向き2:AI AgentにMCP Client Toolを付ける
  7. セキュリティ
  8. どのアプリから何ができるか(2026年10月時点)
  9. できないことと、その代わり
  10. よく詰まるところ
  11. 次にやること

MCPとは何か

MCP(Model Context Protocol)は、AIアプリを外のシステムにつなぐためのオープンな標準です。公式サイトはUSB-Cにたとえています。機器ごとに専用の線を用意しなくても、同じ形の口に挿せばつながる、という意味です。AIアプリから見ると、スプレッドシートを読む、社内の手順書を探す、といった「道具」を、どのサービスでも同じ作法で呼べるようになります。

役割は2つです。道具を差し出す側が「MCPサーバー」、道具を呼ぶ側が「MCPクライアント」です。Claude Desktop、Claude Code、ChatGPT、Cursorなどがクライアントになります。クライアントはサーバーから道具の一覧(名前・説明・引数)を受け取り、会話の流れから必要な道具を選んで呼びます。だから道具の説明文が、そのまま「いつ呼ばれるか」を決めます。

n8nはこの両方の役をこなせ、インスタンス全体を1つのMCPサーバーにすることもできます(2.31から正式機能)。設定する場所がまったく違うので、まず向きを整理します。

向きn8nの役使うもの問い合わせ受付での例
外からn8nを呼ぶ(ワークフロー単位)MCPサーバーMCP Server TriggerClaudeに「株式会社サンプルの問い合わせを探して」と頼むと、問い合わせ一覧を検索して返す
外からn8nを呼ぶ(インスタンス全体)MCPサーバーSettings の Instance-level MCPClaude Codeから既存のワークフローを探して実行する、新しく作らせる
n8nから外を呼ぶMCPクライアントMCP Client Tool・MCP Client振り分け用のAIエージェントが、Notionの対応マニュアルを検索する
ノードパネルで「MCP」と検索し、MCP Server Trigger・MCP Client が並んでいるところ(MCP Client Tool は AI Agent の「Tool +」から探す)
ノードパネルで「MCP」と検索し、MCP Server Trigger・MCP Client が並んでいるところ(MCP Client Tool は AI Agent の「Tool +」から探す)

先に決めること

本番で動かしていて、作り直しが出たのはほぼ次の5つです。

1つ目は向きです。社内の人がClaudeなどからn8nのデータを引くなら「外からn8nを呼ぶ」側、ワークフローの中のAIに外のサービスを使わせるなら「n8nから外を呼ぶ」側です。

2つ目は、外から呼ぶ場合にワークフロー単位(MCP Server Trigger)かインスタンス全体(Instance-level MCP)かです。決まった道具を数個渡すなら前者、担当者がClaude Codeなどからワークフロー全般を操作するなら後者です。

3つ目は、どのアプリから使うかです。claude.aiやChatGPTのようなWeb版は、相手のサーバーからn8nに接続してきます。n8nがインターネットから見えていないと使えません。

4つ目は認証です。トークンを誰に渡し、漏れたらどう差し替えるかまで決めます。

5つ目は、読み取りだけか書き込みもさせるかです。最初は読み取りだけで始め、書き込みを渡すときは人の確認を挟む仕組みを同時に作ります。

n8nのMCP機能の一覧

機能何をするか設定する場所認証向く場面
MCP Server Trigger1つのワークフローをMCPサーバーにし、つないだ道具だけを公開するワークフローのキャンバスNone・Bearer Auth・Header Auth・n8n User Auth (OAuth2)(2.27以降のv2ノード)決まった道具を社内のAIアプリに渡す
Instance-level MCPインスタンス全体をMCPサーバーにするSettings > Instance-level MCPOAuth(推奨)・APIキーワークフローを外から作る・動かす
MCP Client ToolAI Agentの道具として外のMCPサーバーを使うAI Agentの道具の枠None・Bearer・Header・Multiple Headers Auth・MCP OAuth2AIに外のサービスを使わせる
MCP Client外のMCPサーバーの道具を、AIを通さず1手順として呼ぶ通常のノードMCP Client Toolと同じ呼ぶ道具が決まっている定型処理
MCP servers(登録済み一覧)Notionなどを資格情報を手で作らずAI Agentに付けるAI Agentの道具の枠サインインで自動作成一覧にあるサービスをつなぐ

向き1:MCP Server Triggerで問い合わせ一覧を道具にする

作るのは、道具を2つだけ持つ「問い合わせ受付MCP」ワークフローです。会社名で問い合わせを検索する道具と、未対応の件数を返す道具で、どちらも読み取りだけです。

MCP Server Triggerは普通のトリガーと違い、後ろにノードをつないで順に処理するものではありません。下にぶら下げた道具ノードだけを実行します。自作のワークフローを道具にするときは、Call n8n Workflow Tool で別のワークフローを呼びます。

スプレッドシートの列は「受付日時・会社名・氏名・メールアドレス・内容・種類・ステータス」で、1行目が見出し、ステータスには「未対応」「対応中」「完了」が入る前提です。

サブワークフロー「未対応件数を返す」を先に作る

  1. 新しいワークフローを作り、名前を「未対応件数を返す」にする
  2. トリガーに「When Executed by Another Workflow」(別のワークフローから呼ばれたとき)を置く
  3. その「Input data mode」を「Accept all data」にする
  4. Google Sheets ノードを足し、Resource を「Sheet Within Document」、Operation を「Get Row(s)」にする
  5. Document と Sheet に「問い合わせ一覧」を選ぶ
  6. Filters で Column を「ステータス」、Value を「未対応」にする
  7. Options は空のままにする(「Return only First Matching Row」を足さない限り、条件に合う行はすべて返る)
  8. Google Sheets ノードの Settings で「Always Output Data」をオンにする
  9. Code ノードを足し、下のコードを入れる
  10. 右上の「Publish」で公開する
const rows = $input.all().filter(i => Object.keys(i.json).length > 0);
return [{ json: { 未対応件数: rows.length } }];

7番で「Return only First Matching Row」を足してオンにすると最初の1件しか返らず、件数が常に1になります。8番は0件のときにCodeノードが動かないのを防ぐためで、空の1件はCodeで除いています。10番を忘れると、本番で道具が Workflow is not active and cannot be executed を返します。

Google Sheets ノードの Get Row(s)。Filters が設定され、Options が空になっている状態
Google Sheets ノードの Get Row(s)。Filters が設定され、Options が空になっている状態

本体「問い合わせ受付MCP」を作る

  1. 新しいワークフローを作り、名前を「問い合わせ受付MCP」にする
  2. MCP Server Trigger を置く
  3. Authentication を「Bearer Auth」にする
  4. 資格情報を新規作成し、下のコマンドで作った文字列をトークンとして保存する
  5. Path を toiawase に書き換える
  6. トリガーの道具の枠に Google Sheets の道具を足し、Operation を「Get Row(s)」、Document と Sheet を「問い合わせ一覧」にする
  7. その Filters で Column を「会社名」、Value を下の式にする
  8. Options は空のままにする(会社名が一致する行はすべて返る)
  9. 道具の説明文を書く
  10. 道具の枠にもう1つ Call n8n Workflow Tool を足す
  11. Source を「Database」にし、「未対応件数を返す」を選ぶ
  12. Description に「未対応の問い合わせの件数を返す。件数だけが必要なときに使う。引数はない」と書く
  13. 保存する
openssl rand -hex 32
{{ $fromAI('company_name', '検索する会社名。問い合わせ一覧の会社名と完全に一致する正式名称(例: 株式会社サンプル)', 'string') }}

Pathの初期値はランダムな文字列です。後から見て何のサーバーか分かる名前にしておくと運用が楽です。

$fromAI() は値をAIに埋めさせる関数で、引数はキー(英数字・アンダースコア・ハイフンで1〜64文字)、説明、型の順です。公式の説明はAI Agentにつないだ道具向けですが、2.44.7でMCP Server Triggerの下の道具に書いても、クライアントの道具一覧(tools/list)に company_name が文字列の必須引数として出て、その名前で呼ぶと値が道具に渡ることを確かめました。道具の名前はノード名の空白が _ に変わった Google_Sheets Call_n8n_Workflow_Tool になります。Get Row(s) のフィルターは完全一致なので、「株式会社」を省いて呼ばれると0件になります。説明で正式名称を求めているのはそのためです。

MCP Server Trigger の下に Google Sheets の道具と Call n8n Workflow Tool がぶら下がっているキャンバス
MCP Server Trigger の下に Google Sheets の道具と Call n8n Workflow Tool がぶら下がっているキャンバス

2.36以降は「Instructions」欄に書いた文が接続してきたクライアントに渡り、対応するクライアント(公式の例はClaude Code)が取り込みます。道具をまたぐ決まりはここに書きます。

道具の説明文で、呼ばれるかどうかが決まる

クライアントのAIは、道具の名前と説明文だけを見てどれを呼ぶかを決めます。

書き方例結果
悪いスプレッドシートを読むどのシートか、いつ使うのか分からず、呼ばれない
悪い問い合わせ検索何で検索するか分からず、引数が空のまま呼ばれる
よい問い合わせ一覧を会社名で検索し、受付日時・氏名・内容・種類・ステータスを返す。特定の会社の問い合わせ履歴を聞かれたときに使う。会社名は正式名称で渡す会社名を聞かれた場面で呼ばれ、正しい引数が入る

「何を返すか」「いつ使うか」「引数に何を入れるか」の3つを書きます。

Test URLとProduction URL

ノードを開いた上部の「MCP URL」で「Test URL」「Production URL」を切り替えて表示します。Production URL は /mcp/<Path> の形で、Test URL は /mcp-test/<Path> の形です。SSEとStreamable HTTPで末尾は変わらず、同じURLで両方を受け付けます。

Test URLProduction URL
いつ有効になるか未公開のワークフローで「Listen for Test Event」か「Execute workflow」を押したときワークフローを公開(Publish)したとき
呼ばれたデータの見え方キャンバスに出るキャンバスには出ない。Executions タブで見る
使いどころ説明文や引数の確認クライアントに登録して日常的に使う

テストが終わったら、必ず Production URL を登録し直します。

MCP Server Trigger を開き、「MCP URL」の「Production URL」タブを選んだところ。Authentication と Path も見えている状態
MCP Server Trigger を開き、「MCP URL」の「Production URL」タブを選んだところ。Authentication と Path も見えている状態

SSEとStreamable HTTPのどちらで接続するか

MCPの現行仕様(2026-07-28版)が標準とする通信方式は、手元で起動したプログラムと標準入出力でやり取りするstdioと、Streamable HTTPの2つです。SSEだけで常時接続を張る方式は前の版のものです。

MCP Server TriggerはSSEとStreamable HTTPの両方を受け付け、stdioには対応していません。クライアントがStreamable HTTPに対応していればそちらを使い、SSEしか話せない古いクライアントだけSSEにします。stdioしか話せないクライアントは、中継役のプログラム(公式の例では mcp-remote)を手元で動かしてつなぎます。逆向きのMCP Client Toolも、2.44の画面では「Server Transport」の既定が「HTTP Streamable」で、もう一方の「Server Sent Events (Deprecated)」は古いサーバー向けです。

クライアントに登録する

公式のClaude Desktopの例は mcp-remote で中継する形です。claude_desktop_config.json に次を足し、URLを Production URL、トークンを手順4のものに置き換えます。

{
  "mcpServers": {
    "n8n": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://n8n.example.co.jp/mcp/toiawase",
        "--header",
        "Authorization: Bearer ${AUTH_TOKEN}"
      ],
      "env": {
        "AUTH_TOKEN": "ここにトークン"
      }
    }
  }
}

公式に載っている接続例は mcp-remote だけです。Claude CodeのようにHTTPで直接話せるクライアントは、同じURLとヘッダーを直接登録する形でもつなげます(公式の例ではありません)。

claude mcp add --transport http toiawase https://n8n.example.co.jp/mcp/toiawase \
  --header "Authorization: Bearer ここにトークン"

登録したら「未対応は何件」と頼み、Executions タブに実行が残ることを確かめます。

リバースプロキシの設定

nginxを前に立てている場合、MCPの経路でバッファリングを切らないと、返事が届かない、途中で切れる、という症状が出ます。下は公式の例に転送先とヘッダーを足したものです。

location /mcp {
    proxy_pass                  http://127.0.0.1:5678;
    proxy_http_version          1.1;
    proxy_buffering             off;
    gzip                        off;
    chunked_transfer_encoding   off;
    proxy_set_header            Connection '';
    proxy_set_header            Host $host;
    proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header            X-Forwarded-Host $host;
    proxy_set_header            X-Forwarded-Proto $scheme;
    proxy_read_timeout          3600s;
}

公式の例は location /mcp/ ですが、/mcp にするとインスタンス全体のMCP(/mcp-server/http)も同じ設定に乗ります。proxy_read_timeout は、時間のかかる道具が既定の60秒で切られないよう伸ばしています。公式のdocker-compose.yml(Traefik版)で立てている場合は、/mcp 系の経路に圧縮やバッファリングのミドルウェアを足していないかを確かめます。

エディタに正しいURLを出すため、.env に公開URLを入れます。N8N_WEBHOOK_URL は2.35.0で WEBHOOK_URL から代わった名前です。

N8N_WEBHOOK_URL=https://n8n.example.co.jp/
N8N_PROXY_HOPS=1

インスタンス全体をMCPで公開する(Instance-level MCP)

インスタンスそのものをMCPサーバーにする機能で、2.31で preview の表示が外れました。つないだクライアントは、ユーザーが見られる全ワークフローの概要を検索でき、中身を読む・実行するのは許可したワークフローだけです。ほかにワークフローやデータテーブルの作成と編集もできます(既存ワークフローの編集は2.13以降)。

  1. Settings を開く
  2. 「Instance-level MCP」を開く
  3. 「Enable MCP access」を押す(オーナーか管理者だけが押せる)
  4. Connection details の「Connect」を押す
  5. 「OAuth (recommended)」のタブの Your client から使うアプリを選ぶ
  6. 表示された手順どおりにアプリ側へ登録する
  7. アプリからn8nに飛ばされたら、渡す権限を選んで承認する
Settings > Instance-level MCP。Connection details・Access・Connected clients の3つの区画
Settings > Instance-level MCP。Connection details・Access・Connected clients の3つの区画

Server URL は /mcp-server/http で終わります。エディタのアドレスバーのURLではないので、「Connect a client」の画面からコピーします。2.32以降、承認画面で「All」「Read only」「Custom」から権限を選べるので、最初は Read only で渡します。APIキーで接続する場合は同じ画面の「API key」タブで自分用のトークンが作られます。画面を離れると伏せ字になりコピーできないので、その場で1Passwordなどに保存します。なくしたら作り直し、作り直すと前のトークンは使えなくなります。

セルフホストでは、環境変数で有効化を固定できます(2.20.0以降)。N8N_MCP_MANAGED_BY_ENV=true にすると起動のたびに値が適用され、画面のスイッチは触れなくなります。機能ごと消すなら N8N_DISABLED_MODULES=mcp です。

N8N_MCP_MANAGED_BY_ENV=true
N8N_MCP_ACCESS_ENABLED=true

有効にしただけでは、ワークフローは実行も編集もされません。ワークフローごとに許可します。

  1. 対象のワークフローを開く
  2. ワークフロー名のすぐ右にある「…」から「Settings」を開く
  3. 「Available in MCP」をオンにする
  4. 同じ「…」の「Edit description and tags」で、何をするワークフローかを書く

2.24以降はプロジェクトやフォルダ単位でもまとめて切り替えられます。外から実行できるのはトリガーが Webhook・Chat Trigger・Form Trigger・Schedule Trigger のワークフローで、本番実行では公開済みの版が動きます。実行の道具はすぐ実行IDを返して終わり、結果は別の道具で取りに行きます。

MCP Server TriggerInstance-level MCP
単位ワークフロー1本ごとインスタンスに1つ
渡すもの自分で作った道具だけ検索・実行・作成・編集などn8nが用意した道具一式
認証ノードごとのBearer・ヘッダーユーザーごとのOAuthかAPIキー
クライアントごとの出し分けURLとトークンを分ければできるできない
向く使い手社内の一般の人ワークフローを作る担当者

向き2:AI AgentにMCP Client Toolを付ける

今度はn8nがクライアントです。問い合わせの種類を振り分けて返信案を作るAIエージェントに、Notionの「問い合わせ対応マニュアル」を検索する道具を持たせます。

Notionのように「MCP servers」の一覧にあるサービスは、資格情報を手で作らずにつなげます。

  1. AI Agent ノードの「Tool +」を押す
  2. 検索欄に「Notion」と入れるか、「MCP Servers」の区画を開く
  3. Notion のサーバーを選び、求められたらサインインする
  4. 「Tools to include」で使わせる道具を選ぶ

一覧は頻繁に変わるので画面で確かめます。一覧にないサーバーは MCP Client Tool で手でつなぎます。

  1. AI Agent ノードの「Tool +」から MCP Client Tool を足す
  2. 「Endpoint」に相手のサーバーのURLを入れる(Notionなら https://mcp.notion.com/mcp)
  3. その下の「Server Transport」は「HTTP Streamable」のままにする
  4. Authentication で相手が求める方式を選ぶ
  5. 「MCP OAuth2」なら資格情報を新規作成し、「Use Dynamic Client Registration」をオンのまま保存してサインインする
  6. Tools to Include を「Selected」にし、検索と読み取りの道具だけを選ぶ
  7. AI Agent のシステムプロンプトに「返信案を作る前に、対応マニュアルを検索する道具で手順を確かめる」と書く
MCP Client Tool の設定。Endpoint・Server Transport・Authentication・Tools to Include が並んでいる状態
MCP Client Tool の設定。Endpoint・Server Transport・Authentication・Tools to Include が並んでいる状態

「Use Dynamic Client Registration」がオンならクライアントIDやシークレットは要りません。相手が対応していなければオフにして、Client ID などを手で入れます。

Tools to Include を「All」にすると、相手が道具を増やしたときに知らないうちにAIの手が増えるので、本番は「Selected」で固定します。2.17以降、AI Agentから見える道具名にはノード名が頭に付きます(例: MCP_Client_get_weather)。システムプロンプトで道具名を書くなら、ノード名を分かりやすく変えておきます。

AIを通さず決まった道具を1手順として呼ぶなら MCP Client ノードを使います。毎朝決まった検索をしてSlackに流すような定型処理向きです。

同じサービスに組み込みのノードとMCPサーバーの両方があるときの目安は、公式の比較どおりです。組み込みのノードは操作を1つに決めて値を固定でき、MCPサーバーはどの道具をどんな引数で呼ぶかまでAIに任せます。Slackへの投稿のように結果が外に出るものは組み込みのノードで固定し、調べものはMCPサーバーに任せると事故が少ないです。

セキュリティ

外からn8nを呼べるようにするのは、社内データの出入口を1つ増やすことです。次の3つは最初から守ります。

認証を付けずに公開しません。「None」だと、設定ファイルや画面共有からURLが漏れた時点で誰でも道具を呼べます。トークンは漏れたら作り直してクライアント側を差し替えます。Instance-level MCPでOAuthを使うなら、Allowed callback URLs を「Only trusted URLs」にします。既定の「All callback URLs」は、どこにでも戻れる状態です。

公開する道具を絞ります。MCP Server Triggerには必要な道具だけをぶら下げ、Instance-level MCPでは必要なワークフローだけ「Available in MCP」をオンにし、不要になったクライアントは Connected clients の「Revoke access」で切ります。

書き込み系は人の確認を挟みます。n8nのAI Agentでは、道具ごとに「Human review」を付けられます。道具の枠を開き、Human review の区画で承認の連絡先(Slack・Gmail・Microsoft Teams・n8nのChatなど)を選び、確認させたい道具をそこにつなぎます。MCP Client Toolにも付けられます。承認者には $tool.name と $tool.parameters で、何をどんな値で呼ぼうとしているかを見せます。

AIが {{ $tool.name }} を次の値で実行しようとしています。
{{ JSON.stringify($tool.parameters, null, 2) }}

MCP Server Trigger 側に書き込みを置くときは、道具には「承認待ち」のシートに行を足させるだけにし、Slackで承認してから別のワークフローで本番に反映する2段に分けています。問い合わせの本文は社外の人が書いた文なので、中に妙な指示が紛れていても、読み取りの道具しか持たせていなければ被害は出ません。

どのアプリから何ができるか(2026年10月時点)

公式ドキュメントとリリースノートで確かめた範囲だけを載せます。

アプリInstance-level MCPへの接続(公式の手順)MCP Server Triggerへの接続
Claude(claude.ai)「Connect a client」でワンクリック設定認証を None にしてもn8nへのサインインを求められる(公式に記載のある挙動)
Claude DesktopSettings > Connectors > Add custom connector にServer URLを入れるmcp-remote で中継する設定例がある
Claude Codeclaude mcp add --transport http で登録し、/mcp で認証公式に手順の記載なし(URLとヘッダーの直接登録でつなげる)
ChatGPT「Add to ChatGPT」でコネクタ作成画面に飛べる公式に手順の記載なし
Cursor・VS Codeワンクリック設定、または設定ファイルに追記公式に手順の記載なし
Codex・Gemini CLIコマンドで登録し、OAuthでログイン公式に手順の記載なし
Devin・Antigravity2.44で接続画面に追加(WindsurfはDevinに置き換え)公式に手順の記載なし
Lovable・Mistral Vibe・Google ADK各アプリの手順が公式にある公式に手順の記載なし

ヘッダーを付けられないクライアントからMCP Server Triggerにつなぐなら、認証を「n8n User Auth (OAuth2)」(2.27以降のv2ノード)にするか、Instance-level MCP で公開します。

できないことと、その代わり

できないこと代わりの手
MCP Server Triggerにstdioでつなぐmcp-remote などの中継を手元で動かす
Instance-level MCPで、クライアントごとに見せるワークフローを分ける範囲ごとにMCP Server Triggerのワークフローを分け、URLとトークンを別にする
Instance-level MCPから、複数段のフォームや人の承認を挟むワークフローを実行する承認はAI AgentのHuman reviewか、Slackで承認する別ワークフローに分ける
Instance-level MCPの実行で結果をその場で受け取る実行IDで取り直す。すぐ答えが要る処理はMCP Server Triggerの道具にする
キューモードでWebhook用レプリカを複数にしたまま使う/mcp で始まる経路を1台のWebhook用レプリカに寄せる

よく詰まるところ

症状原因直し方
昨日まで動いていたのに、つながらないTest URLを登録していた公開して Production URL を登録し直す
つながるが返事が来ない、途中で切れるnginxがMCPの経路をバッファしているproxy_buffering off などを /mcp の経路に入れる
401が返るヘッダー名や Bearer の書き方が資格情報と合っていないAuthorization: Bearer トークン の形にし、Header Authならヘッダー名を一致させる
道具があるのに使われない説明文にいつ使うかが書いていない何を返す・いつ使う・引数に何を入れる、を書く
件数が常に1になるOptions に「Return only First Matching Row」を足してオンにしているOptions から外す。4.5より前の古い版のノードでは「When Filter Has Multiple Matches」を「Return All Matches」にする
Workflow is not active and cannot be executed が返る呼ぶサブワークフローを公開していないサブワークフローを公開する
claude.aiで認証をNoneにしたのにサインインを求められるclaude.aiは同じドメインのMCPがn8nのユーザー認証を使うと見なすBearer認証を付けるか、Instance-level MCPのOAuthでつなぐ
承認画面で「You do not have sufficient permissions to authorize this request」Instance-level MCPが有効になっていないオーナーか管理者が「Enable MCP access」を押してつなぎ直す
Instance-level MCPでワークフローが実行できない「Available in MCP」がオフワークフローの Settings でオンにする
Claude Desktopで接続できないエディタのURLを貼っている/mcp-server/http で終わる Server URL を貼る
WAFやロードバランサーの後ろだけ失敗するMCPのヘッダーが落とされているMCP-Protocol-Version・Mcp-Method・Mcp-Name を通す
ノードのURLが http://localhost:5678 になっている公開URLを渡していないN8N_WEBHOOK_URL と N8N_PROXY_HOPS=1 を入れて再起動する

次にやること

問い合わせの種類を振り分けて返信案を作るエージェントの組み方は「n8nでAIエージェントを作る:ChatGPT・Claude・Geminiをつなぐ」にあります。MCPに対応していないサービスは「n8nで外部サービスとつなぐ:Webhook・HTTP Request・API」の手順でHTTP Requestから呼び、それをサブワークフローにしてMCPの道具にします。Web版のクライアントからつなぐには独自ドメインとHTTPSが前提なので、まだ手元で動かしているなら「n8nをセルフホストで導入する:Docker ComposeでVPSに立て、独自ドメインとHTTPSで使う」で土台を作ります。

あわせて読む