コンテンツにスキップ

ADK 向け n8n MCP ツール

Supported in ADKPythonTypeScript

n8n MCP Server は ADK エージェントを拡張可能なワークフロー自動化ツール n8n に接続します。 この連携により、エージェントは自然言語インターフェースから n8n インスタンスへ安全に接続し、ワークフローの検索、確認、トリガーを実行できます。

代替: ワークフローレベル MCP サーバー

このページの設定ガイドは インスタンスレベル MCP アクセスを対象とし、 有効化されたワークフローの中央ハブへエージェントを接続します。 代替として、 MCP Server Trigger node を使って 単一ワークフローを独立した MCP サーバーとして動作させることもできます。 この方法は、特定のサーバー挙動を設計したい場合や、 1 つのワークフローに限定したツール公開をしたい場合に有効です。

ユースケース

  • 複雑なワークフロー実行: n8n で定義された多段ビジネスプロセスを エージェントから直接トリガーします。 分岐、ループ、エラーハンドリングにより一貫性を確保できます。

  • 外部アプリ接続: サービスごとにカスタムツールを書くことなく、 n8n の事前構築済み連携を利用できます。 API 認証、ヘッダー、ボイラープレートの管理負担を減らせます。

  • データ処理: 複雑なデータ変換を n8n ワークフローにオフロードします。 たとえば自然言語を API 呼び出しへ変換したり、Web ページをスクレイプして要約したり、 必要に応じて Python/JavaScript ノードで精密に整形できます。

前提条件

  • 稼働中の n8n インスタンス
  • 設定で MCP アクセスを有効化
  • 有効な MCP アクセストークン

詳細設定手順は n8n MCP documentation を参照してください。

エージェントで使う

from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters

N8N_INSTANCE_URL = "https://localhost:5678"
N8N_MCP_TOKEN = "YOUR_N8N_MCP_TOKEN"

root_agent = Agent(
    model="gemini-2.5-pro",
    name="n8n_agent",
    instruction="Help users manage and execute workflows in n8n",
    tools=[
        McpToolset(
            connection_params=StdioConnectionParams(
                server_params=StdioServerParameters(
                    command="npx",
                    args=[
                        "-y",
                        "supergateway",
                        "--streamableHttp",
                        f"{N8N_INSTANCE_URL}/mcp-server/http",
                        "--header",
                        f"authorization:Bearer {N8N_MCP_TOKEN}"
                    ]
                ),
                timeout=300,
            ),
        )
    ],
)
from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPServerParams

N8N_INSTANCE_URL = "https://localhost:5678"
N8N_MCP_TOKEN = "YOUR_N8N_MCP_TOKEN"

root_agent = Agent(
    model="gemini-2.5-pro",
    name="n8n_agent",
    instruction="Help users manage and execute workflows in n8n",
    tools=[
        McpToolset(
            connection_params=StreamableHTTPServerParams(
                url=f"{N8N_INSTANCE_URL}/mcp-server/http",
                headers={
                    "Authorization": f"Bearer {N8N_MCP_TOKEN}",
                },
            ),
        )
    ],
)
import { LlmAgent, MCPToolset } from "@google/adk";

const N8N_INSTANCE_URL = "https://localhost:5678";
const N8N_MCP_TOKEN = "YOUR_N8N_MCP_TOKEN";

const rootAgent = new LlmAgent({
    model: "gemini-2.5-pro",
    name: "n8n_agent",
    instruction: "Help users manage and execute workflows in n8n",
    tools: [
        new MCPToolset({
            type: "StdioConnectionParams",
            serverParams: {
                command: "npx",
                args: [
                    "-y",
                    "supergateway",
                    "--streamableHttp",
                    `${N8N_INSTANCE_URL}/mcp-server/http`,
                    "--header",
                    `authorization:Bearer ${N8N_MCP_TOKEN}`,
                ],
            },
        }),
    ],
});

export { rootAgent };
import { LlmAgent, MCPToolset } from "@google/adk";

const N8N_INSTANCE_URL = "https://localhost:5678";
const N8N_MCP_TOKEN = "YOUR_N8N_MCP_TOKEN";

const rootAgent = new LlmAgent({
    model: "gemini-2.5-pro",
    name: "n8n_agent",
    instruction: "Help users manage and execute workflows in n8n",
    tools: [
        new MCPToolset({
            type: "StreamableHTTPConnectionParams",
            url: `${N8N_INSTANCE_URL}/mcp-server/http`,
            transportOptions: {
                requestInit: {
                    headers: {
                        Authorization: `Bearer ${N8N_MCP_TOKEN}`,
                    },
                },
            },
        }),
    ],
});

export { rootAgent };

利用可能なツール

Tool Description
search_workflows 利用可能ワークフローを検索
execute_workflow 特定ワークフローを実行
get_workflow_details ワークフローメタデータとスキーマ情報を取得

設定

ワークフローをエージェントから利用可能にするには、次の条件を満たす必要があります:

  • 有効化されていること: ワークフローが n8n で有効化されていること。

  • 対応トリガーを含むこと: Webhook、Schedule、Chat、Form トリガーノードを含むこと。

  • MCP 有効化: ワークフロー設定で "Available in MCP" を有効化するか、 ワークフローカードメニューで "Enable MCP access" を選択すること。

追加リソース