n8nのワークフローをMCPクライアントから動かす

n8nのワークフローをMCPクライアントから動かす

Clock Icon2025.06.20

Gemini AIを使って自然言語からSQL自動生成、BigQueryで実行をn8nでやってみる で構築したワークフローですが、チャットメッセージの受信をトリガーにしていました。

今回はこれをMCPクライアントから実行できるようにしてみます。
Claude Desktop AppやCursor Editorから動かすことを目指します。

n8nでMCPサーバーを構築

n8nにMCP Server Trigger node というのがあり、このトリガーを使用すると、n8nがMCPサーバーとして動作し、n8nツールやワークフローをMCPクライアントが利用できるようになります。

仕組み

MCP Server Triggerノードは、MCPクライアントのn8nへのエントリーポイントとして機能します。

スクリーンショット 2025-06-20 10.50.40

このように、MCPクライアントがn8nツールにアクセスするためのURLを公開します。
認証も可能で、Bearer AuthとHeader Authが利用可能でした。

イベントに応答し、その出力を次に接続されたノードに渡す従来のトリガー・ノードとは異なり、MCPサーバ・トリガー・ノードはツール・ノードへの接続と実行のみを行います。

スクリーンショット 2025-06-20 10.52.56

クライアントは利用可能なツールを一覧表示し、個々のツールを呼び出して作業を実行できます。
ツールノードにn8nワークフローをアタッチすることで、クライアントにn8nワークフローを公開できます。

やってみる

MCP Server Triggerを設置したワークフロー、ツールとして公開するワークフローの2つを作成します。

スクリーンショット 2025-06-20 11.16.58

このようにToolsに前の記事で作成したワークフローをつなげていきます。

Toolからの別のワークフローを接続

スクリーンショット 2025-06-20 11.20.07

MCP Server TriggerノードのToolを追加します。

他のワークフローをつなげるには、Call n8n Workflow Tool を使用します、

ノード名変更
スクリーンショット 2025-06-20 11.22.12

このノード名がMCPクライアントから参照できるツール名なので変更しておきます。


実行でエラー
スクリーンショット 2025-06-20 14.31.58

Claude Desktop Appで実行するとこのようなエラーが出ました。ツール名に日本語は使えないようなので英数字にしておきましょう。


ワークフロー選択

スクリーンショット 2025-06-20 11.24.08

デフォルトでリストから保存されているワークフローを選択できるので、ツール化したいものを選択します。

接続したワークフローの編集

Gemini AIを使って自然言語からSQL自動生成、BigQueryで実行をn8nでやってみる
で作成したワークフローのトリガーはチャットメッセージの受信トリガーでしたが、MCP Server Triggerのツールに接続するワークフローではこのままでは動きませんでした。

このサブワークフローは、すべての入力データを受信するように設定されており、特定の入力がないとエージェントはこのツールにデータを渡すことができません。サブワークフローのトリガーで特定の入力を定義することができます。

ということなので、

Execute Sub-workflow Trigger node というノードをトリガーに設定します。

スクリーンショット 2025-06-20 11.56.46

他のワークフローに応答してワークフローを開始する場合に使用するノードです。
このノードは、Execute Sub-workflowまたはCall n8n Workflow Toolノードからの呼び出しに応じて実行されます。

スクリーンショット 2025-06-20 12.00.15

このトリガーの設定で特定の入力を定義を行います。

ユーザーの要求を受け取って実行するワークフローなので、
今回はuserinputという名前で定義しました。文字列データを受け取るようにします。

スクリーンショット 2025-06-20 12.02.17

そしてトリガーからメインの処理へ接続します。
以前接続していたトリガーからの接続は削除します。

接続先のAIエージェントのノードですが、ここに設定してるPrompt (User Message)も修正します。

スクリーンショット 2025-06-20 15.56.15

ユーザーからの要求は以下
{{ $json.userinput }}

定義したuserinputを使うようにしました。

別のワークフローに渡す引数を設定する

MCP Server Triggerを設置したワークフローに戻り、接続したツールの設定画面を開きます。

スクリーンショット 2025-06-20 13.25.23

Workflow Inputs の項目にあるリストを選択すると、接続先のワークフローで定義したINPUT名が表示されているので、
これを選択します。

スクリーンショット 2025-06-20 13.28.05

ここにはJavascriptのコードを入力することもできます({{}} で囲む)

パラメータ入力欄の横にある✨ボタンをクリックすると、AIがその値を自動的に設定してくれるようになります。

スクリーンショット 2025-06-20 13.52.58

このAIの自動設定にします。

MCPサーバーを起動

スクリーンショット 2025-06-20 14.03.10

テストモード

Execute workflow をクリックするとTestモードで起動しました。

スクリーンショット 2025-06-20 14.06.22

Listening for test event と表示されているように、このサーバーへのイベントを待っている状態になります。

本番モード

スクリーンショット 2025-06-20 14.09.23

ワークフローの上部にあるトグルをクリックすると実行可能状態になります。

スクリーンショット 2025-06-20 14.10.32

Cursorから接続して動かす

ではCursorから起動したMCPサーバーに接続してみます。
この時のバージョンは1.0.0です。

※ Claude Desktopからの接続に関しては公式ドキュメントに記載されているので参照してください。

スクリーンショット 2025-06-20 16.23.30

Cursor Settingsを開き、MCP Toolsをクリックします。

スクリーンショット 2025-06-20 16.25.09

New MCP Serverをクリックするとjson形式の設定ファイルが開くので、そのファイルに以下を追記します。

MCP_URLにはn8nで起動したMCP Server Triggerが作成したURLにします。

"n8n-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "<MCP_URL>"
      ]
}

認証が必要な場合は以下のようにすればいいと思います。

"n8n-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "<MCP_URL>",
        "--header",
        "Authorization: Bearer ${AUTH_TOKEN}"
      ],
	    "env": {
	      "AUTH_TOKEN": "<MCP_BEARER_TOKEN>"
	    }
}

追記して保存し、Cursor Settingsに戻ると、

スクリーンショット 2025-06-20 16.29.34

x tools enabled と表示があればMCPサーバーへの接続に成功しています。

スクリーンショット 2025-06-20 16.30.54

tool欄を開くと、登録されたツールが確認できます。

ではCusorからメッセージを送信してみます。

2025年4月には何件のデータが登録されているか? というメッセージを送信してみました。

スクリーンショット 2025-06-20 16.43.31

※ ここでは最初にMCPを利用するように指示を追加しています

toolを実行するか聞かれるので、Run Tool を押して続きをやってもらいます。

スクリーンショット 2025-06-20 16.51.10

しばらく待つとMCPサーバーからの結果が返信されました。ちゃんと動作しましたね。

※ 別の質問も
スクリーンショット 2025-06-20 17.02.04

n8n側の実行ログも見てみましょう。

** MCP Server Triggerを設置したワークフロー **
スクリーンショット 2025-06-20 17.04.36

クライアントから送信されたメッセージを受け取っていることがわかります。

ツールにしている別のワークフローのログも見てみましょう。

スクリーンショット 2025-06-20 17.09.10

別のワークフローから起動されて最後まで実行されていますね。

スクリーンショット 2025-06-20 17.10.20

ワークフローの流れやノードごとのログ、使用したトークン数も確認できます。

ちなみに、この実行で1082トークン使われたようです。

まとめ

今回は、以前構築した「自然言語からSQLを生成してBigQueryで実行するn8nワークフロー」を、MCPサーバーとして公開し、Cursor Editorから直接呼び出してみました。

MCP Server Triggerノードを活用することで、n8nのワークフローを外部のMCPクライアントが利用できる「ツール」として簡単に提供できます。

構築のポイントは以下の通りです。

  • MCPサーバーの構築: MCP Server Triggerノードでn8nワークフローへのエンドポイントを作成する。
  • ワークフローのツール化: Call n8n Workflow Toolで既存のワークフローをツールとして接続する。
  • サブワークフローの改修: ツールとして呼び出される側のワークフローは、Execute Sub-workflow Triggerをトリガーに設定し、引数(今回は userinput)を受け取れるように変更する。
  • クライアントからの接続: CursorなどのMCPクライアントから、n8nが公開したURLに接続し、ツールとして認識させる。

n8nの強力なワークフロー自動化機能と、MCPによるツール連携の仕組みを組み合わせることで、アイデア次第で様々な業務効率化が可能になりますね。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.