[n8n] STDIOトランスポートのMCPサーバーを使う
の続きです。
n8nに標準で入っているMCP ClientノードはSSEしか使えないようです。

STDIOトランスポートのMCPサーバーを使えるほうが何かと便利なので、使えるようにしてみます。
Community nodes から n8n-nodes-mcp をインストールする
これを使います。
左下の Settings を開きます。

左のメニューから Community nodes を開きます

Install ボタンをクリックするとモーダルが開きます。

npm Package Name に n8n-nodes-mcp と入力し、インストールします。

しばらく時間がかかりますが、一旦これでインストールは完了です。

AI AgentノードのToolに MCP Client Tool を設定します
今回は、Slackからのメンションで質問に回答するチャットボットを想定してるので

こんな感じになります。
MCPサーバーにつなぐ例として、今回はDocBaseのMCPサーバーを使うことにします。
Tool に MCP Client Tool(List Tools) を追加する
まずはMCPサーバから利用できるツールを取得するためのMCP Clientを設定します。
AI Agent の Tool の + ボタンをクリックし、MCP Client Toolを探します。

Other Tools の方の MCP Client Tool を選択してください。
追加されたノードをダブルクリックして、編集します。

Credential to connect with -> Create new credential を開きます。

-
Connect using-
Coomand Line (STDIO)を選択
-
-
Commandnpx
-
Arguments-y @krayinc/docbase-mcp-server@latest
のように入力します。
↓こんな感じです。

Environments はちょっとくせがあって

と書かれている通り
HOGE=1,FOO=2
のようにカンマ区切りで複数の KEY=VALUE を書けるようなんですが、この書き方すると実行時にエラーになります。
いくつか試してみたところ、改行で書くとうまく行きました。
HOGE=1
FOO=2
というわけで、改行区切りで、2つ環境変数を設定します。
DOCBASE_DOMAIN={チームのドメイン}
DOCBASE_API_TOKEN={v3アクセストークン}
※Valueは適切に設定してください。
ここで、MCP Client Toolの設定に戻り、
Tool Description Operation を設定しておきます。

Tool に MCP Client Tool(Execute Tool) を追加する
追加手順は、1つ前と同じです。
以下のように設定します。

ポイントは
-
OperationExecute Tool
-
Tool Name{{ $fromAI("tool_name") }}- AIAgentから受け取るJSONで
tool_nameというキーの値が、AIAgentが呼び出すと判断したツールの名前になってます
-
Tool ParametersDefined automatically by the model- これで、AIAgentがよしなにパラメーターを渡してくれます
動かしてみる!

結構時間はかかりますが、どういう動きをしているかはわかりました。
Discussion