[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)
を選択
-
-
Command
npx
-
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つ前と同じです。
以下のように設定します。
ポイントは
-
Operation
Execute Tool
-
Tool Name
{{ $fromAI("tool_name") }}
- AIAgentから受け取るJSONで
tool_name
というキーの値が、AIAgentが呼び出すと判断したツールの名前になってます
-
Tool Parameters
Defined automatically by the model
- これで、AIAgentがよしなにパラメーターを渡してくれます
動かしてみる!
結構時間はかかりますが、どういう動きをしているかはわかりました。
Discussion