[00:00]
안녕하세요, 여러분. 이 영상에서는
[00:02]
네이티브 MCP 클라이언트 도구와
[00:03]
n8n의 MCP 서버 트리거 사용법을 보여드리겠습니다.
[00:07]
먼저 이 두 워크플로우가
[00:08]
서로 다르다는 점을 말씀드리고 싶습니다.
[00:10]
MCP 클라이언트 도구는
[00:12]
에이전트 워크플로우에 연결되어
[00:14]
MCP 서버 트리거가 포함된
[00:16]
별도의 워크플로우를 호출합니다.
[00:19]
AI 에이전트가 MCP 도구를
[00:21]
사용하려고 할 때, MCP 클라이언트 도구를 호출하고
[00:23]
이 도구는 MCP 서버 트리거와
[00:25]
통신하게 됩니다. 서버 트리거는
[00:26]
모든 정보를 가지고 있으며,
[00:28]
예를 들어 여기서는
[00:29]
Gmail 노드가 연결되어 있고
[00:31]
n8n에서 도구를 설정할 때
[00:33]
각각의 도구에 대한
[00:35]
설명을 첨부한다는 것을 아실 겁니다.
[00:37]
이 서버 트리거는 모든 Gmail 노드에
[00:39]
접근할 수 있고 각각의 설명을
[00:41]
이해하고 있습니다. 각 도구를
[00:43]
언제 사용할지 결정하고
[00:45]
MCP 클라이언트 도구에 전달하며
[00:47]
클라이언트 도구와
[00:49]
서버 트리거 간의 협업이 이루어지고
[00:51]
이 통신은 AI 에이전트에게까지
[00:52]
전달됩니다. 이렇게 해서 AI 에이전트가
[00:54]
각각의 도구를 구분하고
[00:56]
어떤 도구를 사용할지
[00:58]
결정하게 됩니다.
[00:59]
이 영상에서는 네이티브 MCP 도구와
[01:01]
MCP 서버 설정 방법을 보여드리고
[01:03]
서버 구조에 대해
[01:05]
설명해드리겠습니다. 여러분은
[01:07]
이미 여러 영상에서
[01:08]
다양한 도구에 접근할 수 있는
[01:10]
멀티툴 MCP 서버를 보셨을 겁니다.
[01:12]
Gmail, Zendesk,
[01:14]
ClickUp이 있고, 또는
[01:15]
사람들이 각각의 도구를 위해
[01:17]
별도의 서버를 만드는 것을 보셨을 수도 있습니다.
[01:19]
Gmail용 서버, Zendesk용 서버,
[01:21]
그리고 ClickUp용 서버가
[01:22]
있습니다. 그리고 MCP와
[01:24]
n8n 워크플로우 실행의 차이점에 대해
[01:26]
말씀드리겠습니다. 최근에
[01:28]
Nate Herk의 MCP 관련 영상을
[01:30]
봤는데,
[01:31]
그가 매우 좋은 지적을 했습니다.
[01:34]
기본적으로 MCP는 n8n 워크플로우
[01:36]
실행 노드와 매우 유사합니다.
[01:38]
여기 보이는 이 설정처럼 n8n 워크플로우 호출 도구가
[01:40]
워크플로우를 실행시키고,
[01:42]
이를 통해 다양한
[01:44]
작업을 수행할 수 있습니다.
[01:45]
마지막으로, MCP의
[01:47]
실제 가치가 어디에 있는지
[01:48]
말씀드리겠습니다. YouTube에서
[01:50]
다양한 n8n MCP 영상을 보시면
[01:52]
사람들이 이미
[01:54]
MCP 서버를 자신들의 Claude 데스크톱 앱에
[01:56]
연결하는 것을 보실 수 있는데,
[01:58]
이는 Claude 데스크톱
[01:59]
에이전트에 더 많은 기능을 제공합니다.
[02:01]
하지만 이 부분에서
[02:03]
한 가지 생각해보고 싶은 것은
[02:04]
n8n 내에서 MCP를 사용할 때의
[02:06]
실제 가치가 무엇인지입니다.
[02:09]
Claude 데스크톱과 같은 것은
[02:10]
고려하지 않고 말입니다.
[02:12]
이 영상의 첫 부분에서는
[02:14]
화면을 분할해서
[02:15]
두 개의 n8n 캔버스를 보여드리겠습니다.
[02:17]
왼쪽에는 한 캔버스가 있고
[02:20]
빈 캔버스가 있는데,
[02:21]
여기에 MCP 에이전트를 만들 예정이고
[02:23]
오른쪽에는 빈 캔버스가 있어서
[02:25]
MCP 서버를 구축할 예정입니다.
[02:27]
첫 번째로 할 일은
[02:30]
여기에 채팅 단계를 추가하는 것입니다.
[02:32]
chat trigger를 입력하겠습니다.
[02:34]
이를 통해 AI 에이전트에
[02:36]
메시지를 보내서
[02:38]
서버를 실행할 수 있게 됩니다
[02:39]
두 번째로 할 일은
[02:41]
AI 에이전트를 추가하는 것입니다.
[02:43]
좋습니다. 이제 몇 가지를 추가해보죠.
[02:47]
실제로 생각하고 작업할 수 있도록
[02:49]
LLM을 추가하겠습니다. 그리고 이제
[02:52]
MCP 클라이언트 도구를 얻기 위해
[02:53]
이 도구 플러스 버튼을 클릭하고
[02:55]
MCP를 입력한 다음
[02:57]
MCP 클라이언트 도구를 클릭하겠습니다.
[03:00]
이제 클라이언트 도구의 설정에
[03:02]
SSE 엔드포인트를 위한 공간이 있습니다.
[03:04]
이 SSE 엔드포인트는
[03:07]
실제로 서버에서 얻게 될
[03:08]
URL입니다. 자, 이제 시작해보겠습니다.
[03:11]
다시 말씀드리지만, 여기 있는
[03:13]
이 별도의 워크플로우는
[03:14]
MCP 서버를 위한 것입니다.
[03:18]
첫 번째로 필요한 것은
[03:20]
MCP를 입력하고 MCP 서버 트리거를 가져오는 것입니다.
[03:23]
좋습니다. 이제 MCP 서버 트리거가 있네요.
[03:25]
여기를 더블클릭해서 들어가보면
[03:27]
설정에서 URL을 볼 수 있는데
[03:29]
이것을 복사해서
[03:31]
클라이언트 도구의 SSE 엔드포인트에 붙여넣을 것입니다.
[03:33]
지금은 테스트 URL을 사용하지만
[03:35]
프로덕션으로 전환하려면
[03:37]
그냥
[03:38]
프로덕션으로 전환하고
[03:39]
마찬가지로 복사하면 됩니다.
[03:41]
테스트를 위해 이 URL을
[03:43]
클릭해서 가져와서
[03:44]
여기에 붙여넣겠습니다.
[03:46]
좋습니다. 이제 축소해보면
[03:49]
왼쪽에 에이전트가 구성되어 있고
[03:51]
모든 설정이 완료되었으며
[03:53]
서버의 엔드포인트가
[03:55]
MCP 클라이언트 도구에 연결되어 있습니다.
[03:57]
이제 이 워크플로우를 저장해서
[04:00]
모든 것을 확실히 해두겠습니다.
[04:02]
그리고 여기서는
[04:04]
축소한 다음
[04:06]
이 서버에 Gmail을 보낼 수 있는
[04:08]
기능을 추가하겠습니다. Gmail을 입력하고
[04:11]
이것을 클릭합니다. 설정에서는
[04:14]
매우 기본적인 것만 유지할 것이므로
[04:15]
보내기 작업으로 두겠습니다.
[04:17]
이메일은 제 이메일을 입력하고
[04:19]
제목과 메시지는
[04:21]
AI 결정 버튼을 사용하겠습니다.
[04:23]
이렇게 하면 에이전트가
[04:26]
MCP 클라이언트 도구를 실행할 때
[04:28]
Gmail 도구에 접근할 수 있고
[04:31]
스스로 정확한 제목과
[04:32]
보낼 메시지를 결정하게 됩니다.
[04:34]
이제 모든 것이 좋아 보이네요.
[04:37]
여기서 나가서
[04:39]
저장하겠습니다. 여기서부터는
[04:41]
서버에 더 많은 도구를 추가할 수 있지만
[04:42]
지금은 매우 단순하게 유지하겠습니다.
[04:45]
왜냐하면
[04:46]
이 비디오의 두 번째 부분은
[04:48]
서버에 대해 다룰 것이기 때문입니다.
[04:50]
지금은 테스트 워크플로우를
[04:52]
클릭해서 실행해보겠습니다.
[04:53]
이 에이전트가 실행될 때
[04:56]
정확히 어떤 일이 일어나는지 볼 수 있습니다.
[04:58]
이를 위해 채팅창을 열고
[05:00]
이 메시지를 보내보겠습니다.
[05:02]
폴란드에 대한 랜덤 사실을
[05:03]
이메일로 보내달라고 하겠습니다.
[05:05]
화면을 축소하고 보내기를 누르면
[05:08]
이제 우리 에이전트가 MCP
[05:09]
클라이언트 도구에 도달하여
[05:11]
Gmail 전송 기능을 사용하게 됩니다.
[05:14]
자, 제 Gmail 받은편지함을 보시면
[05:16]
AI가 꽤 좋은 제목을 만들었네요.
[05:18]
'알고 계셨나요?'라는 흥미로운 제목입니다.
[05:21]
그리고 여기
[05:23]
폴란드에 대한 랜덤 사실이 있습니다.
[05:25]
폴란드에는 세계에서 가장 큰
[05:27]
성 단지인 말보르크 성이 있습니다.
[05:29]
13세기에 튜턴 기사단이 건설했으며
[05:32]
유네스코 세계문화유산으로 지정되어 있습니다.
[05:34]
정말 멋지네요.
[05:36]
저도 몰랐던 사실이에요.
[05:38]
이제 이 시점에서
[05:39]
가장 이상적인 MCP 서버 트리거
[05:41]
설정 방법을 자세히 살펴보겠습니다.
[05:44]
MCP 서버를 설정하는 두 가지 주요 방법이 있습니다.
[05:46]
위쪽에는 여러 도구에 접근할 수 있는
[05:48]
단일 서버가 있습니다.
[05:50]
우리는 하나의 서버에
[05:52]
세 개의 별도 Gmail 도구가 연결되어 있어서
[05:54]
이메일 보내기, 기존 이메일 스레드에
[05:56]
답장하기, 또는 모든 이메일 가져오기가 가능합니다.
[05:58]
그다음 Zendesk가 있고
[06:00]
ClickUp도 있습니다.
[06:02]
이 설정에서는 MCP 에이전트가 있는
[06:04]
하나의 워크플로우와
[06:07]
하나의 MCP 클라이언트 도구가 있고
[06:08]
이 클라이언트 도구는
[06:10]
서버와 직접 통신하며
[06:12]
서버는 이 클라이언트 도구에
[06:13]
'이러한 세 개의 Gmail 노드에 접근할 수 있다'는
[06:15]
정보를 다시 전달합니다.
[06:17]
이 Zendesk 노드들과 ClickUp 노드들에도
[06:19]
접근할 수 있다고 알려주면
[06:21]
에이전트는 기본적으로
[06:23]
어떤 작업을 완료할지
[06:24]
어떤 노드를 사용할지 결정할 수 있습니다.
[06:26]
그리고 여기 두 번째 방법이 있는데
[06:28]
이런 서버들을 만드는 방식입니다.
[06:30]
이 설정에서는 Gmail 도구에만 접근할 수 있는
[06:33]
전용 Gmail MCP 서버가 있습니다.
[06:35]
그다음 Zendesk 도구가 있는 Zendesk 서버와
[06:37]
ClickUp 도구가 있는 ClickUp 서버가 있습니다.
[06:39]
이런 종류의 설정은
[06:41]
하나의 서버와 하나의 MCP 도구만 있는
[06:43]
이전 설정보다 약간 더 많은
[06:45]
오버헤드가 발생합니다.
[06:47]
보시다시피 이 MCP 에이전트는
[06:50]
이 서버와 통신하기 위한 전용 Gmail MCP 도구가 필요하고
[06:53]
이 서버와 통신할 Zendesk 도구,
[06:55]
이 서버와 통신할 ClickUp 도구가
[06:56]
각각 필요합니다.
[06:58]
제 생각에는
[07:00]
서버당 몇 개의 도구만
[07:01]
필요한 단계에서는
[07:03]
이런 설정으로도 충분할 수 있습니다.
[07:05]
하지만 저는 실제로
[07:08]
관심사의 분리를 선호합니다.
[07:10]
워크플로우를 구축할 때
[07:12]
최소한의 책임만 부여하려고 합니다.
[07:14]
개별 워크플로우에
[07:17]
주로 그 이유는 그렇게 하면
[07:19]
고도로 전문화된 워크플로우나
[07:21]
하나의 작업만 수행하는
[07:23]
전문화된 에이전트를 가질 수 있기 때문입니다.
[07:26]
이 데모에서는 Gmail 노드 세 개만
[07:28]
사용하고 있지만, 실제로 Gmail은
[07:30]
6개나 9개의 노드를 가질 수 있고,
[07:32]
Zendesk는 15개의 노드를 가질 수 있으며,
[07:34]
여러분이 사용하는 다양한 도구들은
[07:35]
3개에서 10개, 또는
[07:37]
20개의 서로 다른 노드를
[07:39]
각각의 동작을 위해 가질 수 있습니다.
[07:40]
그렇게 되면 이런 모습이 될 텐데요.
[07:41]
Gmail 도구들의 배열과
[07:44]
Zendesk 도구들의 배열,
[07:46]
그리고 여기 MCP 도구들의 배열이
[07:49]
하나의 서버에 연결되어 있는데,
[07:51]
이는 좋은 방법이 아니라고 생각합니다.
[07:53]
이런 경우에는
[07:55]
분리해서 각각의
[07:57]
도구를 관리하기 위한 별도의 서버를
[07:59]
구축하는 것이 좋습니다.
[08:01]
즉, Gmail용 서버 하나,
[08:03]
Zendesk용 서버 하나,
[08:05]
그리고 MCP용 서버 하나를
[08:07]
따로 두는 거죠. 그래서 저는
[08:09]
가능한 이런 설정을 선호합니다.
[08:10]
관심사의 분리를 통해
[08:12]
각각의 서버와
[08:14]
MCP 도구들이 분리되어 통신하는
[08:16]
이런 구조를 말이죠.
[08:18]
자, 이제
[08:19]
MCP와 n8n 워크플로우 실행의
[08:21]
유사점과 차이점을 알아보겠습니다. 위에서는
[08:24]
우리가 이미 익숙한 방식을 보여주는데,
[08:26]
MCP 클라이언트 도구가 서버와 통신하고
[08:28]
서버는 세 개의 별도 Gmail 도구에
[08:30]
접근할 수 있어서 에이전트가 사용할 수 있죠.
[08:33]
아래쪽에는 n8n 워크플로우를
[08:35]
실행하는 설정이 있는데,
[08:37]
여기서는 n8n 워크플로우 호출 도구가
[08:40]
워크플로우 실행 노드와
[08:42]
직접 통신하는 구조를 보여줍니다.
[08:45]
MCP 도구가 서버와 통신하는 것처럼
[08:47]
이 도구도 비슷한 방식으로
[08:49]
통신합니다. 이 도구는
[08:50]
서버는 아니지만
[08:52]
대상이 될 수 있는 엔드포인트와
[08:54]
통신합니다. 이는 웹훅을 호출하는 것과
[08:56]
매우 유사한데요,
[08:58]
완전히 같지는 않지만
[09:01]
도구가
[09:02]
엔드포인트와 직접 통신하고
[09:04]
이 도구도 마찬가지로
[09:06]
엔드포인트와 직접 통신합니다.
[09:08]
주요 차이점은
[09:10]
MCP 서버가 도구들의
[09:12]
병렬 실행을 가능하게 한다는 점입니다.
[09:15]
즉, MCP 클라이언트를 사용하는
[09:17]
에이전트가 하나의 워크플로우 내에서
[09:19]
각각의 도구들을
[09:21]
실행할 수 있다는 거죠.
[09:23]
반면에 아래쪽의 워크플로우 실행 노드는
[09:25]
선형적으로 진행됩니다. 직접 구현하지 않는 한
[09:27]
병렬 처리가 없고,
[09:29]
에이전트가 특정 도구를
[09:31]
자유롭게 선택할 수 없습니다.
[09:32]
정적인 워크플로우만 가능하죠.
[09:34]
이는 즉,
[09:37]
이러한 병렬 워크플로우 실행을
[09:39]
워크플로우 실행 노드로 구현하려면
[09:41]
두 가지 방법이 있다는 뜻입니다.
[09:43]
첫 번째는 여러 개의
[09:46]
워크플로우 실행을 두는 것인데,
[09:48]
각 워크플로우마다 Gmail 도구에서
[09:50]
서로 다른 동작을 수행하게 하는 거죠.
[09:52]
그리고 특정 워크플로우와
[09:54]
통신하기 위해서는
[09:56]
세 개의 별도 워크플로우를 호출해야 하는데
[09:58]
예를 들어 첫 번째 워크플로우 도구는
[10:01]
워크플로우 1과 통신하고
[10:03]
두 번째는 워크플로우 2와, 세 번째는 워크플로우 3과 통신하죠
[10:05]
보시다시피 이것은
[10:08]
단순한 MCP 도구와 MCP 서버를 사용하는 것보다
[10:10]
훨씬 더 많은 오버헤드가 발생합니다
[10:12]
네, 이것은 좀 더 복잡한 구성이죠
[10:15]
또 다른 방법으로는
[10:17]
도구의 병렬 실행을 위해
[10:18]
n8n 워크플로우를 호출하고 AI 에이전트를 사용하는 것인데
[10:21]
여기에 별도의 Gmail 도구들을 연결하는 방식입니다
[10:24]
하지만 실제로 이 단계에서는
[10:25]
이 Gmail 도구들을 가져와서
[10:27]
두 번째 워크플로우는 제거해야 합니다
[10:29]
전혀 필요하지 않기 때문이죠
[10:31]
두 개의 AI 모델을 사용해서
[10:33]
어떤 도구를 호출할지 결정하는 것은
[10:35]
단순히 이중 작업일 뿐입니다
[10:37]
그리고 이것들을
[10:39]
첫 번째 도구에 이렇게 연결하면 됩니다
[10:40]
자, 이렇게 하면 되죠
[10:43]
이제 마지막 포인트로 넘어가겠습니다
[10:45]
n8n 워크플로우에서 MCP를 사용하는
[10:47]
실제 가치가 무엇인지에 대해 말씀드리겠습니다
[10:50]
제가 생각하는 n8n에서 MCP를 사용하는 가치는 이렇습니다
[10:52]
MCP 서버는 엄격한 노드 세트를 가지고 있어야 합니다
[10:55]
여기서는 Gmail을 예로 들면
[10:58]
이 서버는 Gmail 서버가 될 것이고
[11:01]
모든 Gmail 도구가
[11:02]
이 서버에 연결되어 있을 것입니다
[11:04]
그리고 저는 모든 주요 워크플로우를 가지고 있을 것입니다
[11:07]
새로운 주요 워크플로우가 생기거나
[11:09]
새로운 클라이언트가 온보딩될 때마다
[11:11]
각각의 워크플로우를
[11:13]
하나의 서버에 쉽게 연결할 수 있습니다
[11:15]
만약 Gmail 유지보수가 필요하거나
[11:18]
Gmail에서 Mail Gun으로
[11:20]
전환하고 싶을 때
[11:22]
모든 개별 워크플로우에
[11:23]
들어가서 변경할 필요가 없습니다
[11:25]
그렇게 하면 정말 많은 시간이 걸리죠
[11:27]
모든 워크플로우에서
[11:29]
Gmail을 Mail Gun으로 반복해서 변경하는 게
[11:31]
얼마나 시간이 많이 걸리겠습니까?
[11:34]
10개, 20개, 30개의 워크플로우가 있다면
[11:36]
정말 영원히 걸릴 것 같은 작업이죠
[11:38]
하지만 MCP 서버가 있다면
[11:41]
단 하나의 지점에서
[11:43]
10개, 20개, 30개의 워크플로우를 관리할 수 있습니다
[11:46]
이것이 제가 생각하는 핵심이에요
[11:49]
워크플로우의 확장을 도와줄 것이고
[11:50]
이러한 서버들이 많아질수록
[11:52]
확장하기도 쉽고 관리하기도 쉬워질 것입니다
[11:54]
네, 그래서 MCP와 n8n에 대해
[11:57]
여러분의 생각이 궁금합니다
[11:59]
저도 아직 n8n 워크플로우 내에서
[12:00]
MCP의 주요 사용 사례가 정확히 무엇인지
[12:02]
이해하려고 노력하고 있습니다
[12:04]
만약 다른 용도로 사용하고 계시다면
[12:07]
아래 댓글로 알려주세요
[12:08]
정말 듣고 싶습니다
[12:09]
저도 n8n 실력을 향상시키고 싶거든요
[12:11]
여러분, 이 영상이 도움이 되었길 바랍니다
[12:13]
다음에 또 만나요!
[12:14]
안녕히 계세요