콘텐츠로 이동

ADK용 n8n MCP 도구

Supported in ADKPythonTypeScript

n8n MCP Server는 ADK 에이전트를 확장 가능한 워크플로 자동화 도구 n8n과 연결합니다. 이 통합을 통해 에이전트는 자연어 인터페이스에서 n8n 인스턴스에 안전하게 연결해 워크플로를 검색, 점검, 트리거할 수 있습니다.

대안: 워크플로 단위 MCP 서버

이 페이지의 구성 가이드는 인스턴스 단위 MCP 액세스를 설명하며, 활성화된 워크플로의 중앙 허브에 에이전트를 연결합니다. 대안으로 MCP Server Trigger node 를 사용해 단일 워크플로를 독립적인 MCP 서버처럼 동작시킬 수 있습니다. 이 방법은 특정 서버 동작을 설계하거나 한 워크플로에만 도구를 격리해 노출하고 싶을 때 유용합니다.

사용 사례

  • 복잡한 워크플로 실행: n8n에 정의된 다단계 비즈니스 프로세스를 에이전트에서 직접 트리거합니다. 신뢰성 있는 분기 로직, 루프, 오류 처리를 활용해 일관성을 보장합니다.

  • 외부 앱 연결: 각 서비스별 커스텀 도구 작성 없이 n8n의 사전 구축 통합을 사용합니다. API 인증, 헤더, 보일러플레이트 코드 관리 부담을 줄일 수 있습니다.

  • 데이터 처리: 복잡한 데이터 변환 작업을 n8n 워크플로로 오프로드합니다. 예를 들어 자연어를 API 호출로 변환하거나 웹페이지를 스크랩/요약하고, 필요 시 사용자 정의 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"를 선택해야 합니다.

추가 리소스