박승현
박승현
🏅 AI 마스터
🔬 임팩트 찐친
🎨 미드저니 찐친

n8n을 활용해서 커스텀 MCP 만들어보기

소개

어떤 걸 해볼까 하다가 아래의 유튜브 영상을 보고 이대로 한번 해보기로 했습니다. 영상에서 진행했던 것은

n8n에 새로 업데이트 된 MCP 노드를 활용해서

  1. 구글 스프레드 시트에 사이트 목록을 저장하고 클로드에 뉴스 검색을 시키면 목록을 보고 뉴스를 크롤링한 다음 중요 내용 및 활용도 등을 점수로 평가하고 스프레드 시트에 기록 하도록 설계

  2. 클로드에 나에게 카카오톡 메시지를 보내도록 하기

이렇게 두가지 였습니다.

https://youtu.be/XNQvED-iKUg?si=kMjRIKQ4Xnv-Vgz4

진행 방법

영상을 따라하면 금방 할 거라고 생각했는데 역시나 문제가 생겼습니다.

전화가 인터넷에 어떻게 연결되어 있는지 보여주는 다이어그램

기본이 되는 워크플로우는 아주 간단합니다.

  1. 'MCP AI News Server'노드가 클로드에서 mcp 도구 사용해달라고 요청하면 응답하고 시행하는 노드입니다.

  2. 왼쪽 구글 스프레드 시트는 뉴스 조사의 출처가 되는 사이트 목록을 저장된 스프레드 시트에서 읽어오는 노드

  3. 오른쪽 구글 스프레드 시트는 조사한 정보를 스프레드 시트에 기입하는 노드입니다.

  4. 마지막이 문제인데요, '뉴스를 크롤링 하고 내용을 정리 및 평가하는 워크플로우'를 호출하는 노드입니다. 말은 복잡하지만 별 내용은 아닙니다.(아래 서브 워크플로우)

기계 학습 시스템의 작동 방식을 보여주는 다이어그램

이 것도 복잡한 워크플로우는 아닙니다.

  1. 요청을 받는 노드

  2. 요청 내용을 특정 값에 set 하는 노드

  3. 크롤링 및 요약 정리, 평가한 ai 노드

여기서 어려웠던 건 붉은 원으로 표시한 puppeteer에 있었습니다. 유튜브 영상에서는 편한 툴로 웹 크롤링하라고 되어 있었지만, 이상하게 저기에 꽂혔습니다.

이걸 구현하느라 시간을 많이 쓴 것 같아요. puppeteer는 n8n용 mcp 노드도 있고 클로드에 바로 연결 하는 방버도 있습니다. 장점은 저도 다는 모르지만 웹 크롤링에서 막히면 그걸 스크린 샷을 찍어서라도 우회해서 크롤링 해낸다는 것인 거 같습니다. 하지만 그걸 위해서는 로컬 리소스를 사용해야 하고...

어쨌든 뭔가 다른 도구와는 좀 더 설치가 복잡한 것 같습니다. n8n 커뮤니티 노드 설치하는 건 어렵지 않았는데 작동을 하지 않아서요. 왜 그럴까 고민하다 공식 문서 읽으면서 로컬에 설치하고 도커로도 올려보고 했는데 그래도 안되서 대체 뭘까...했는데.

복기 하면서 생각해보면 어이가 없는 내용이지만, 저는 n8n을 셀프호스팅으로 구글 클라우드의 virtual machine에 설치해서 사용하고 있었는데 puppeteer는 제 로컬 드라이브에 설치를 했었더라구요.

비유적으로 이야기하면 배민앱을 설치해서 음식을 주문하려고 했는데 식당이 아무것도 안떠서 왜 안뜨지 했는데 알고보니 사는 곳이 미국이었더라? 뭐 이런 느낌일지 모르겠네요.

그러면 VM상에서 puppeteer를 설치해야할텐데 일단 저는 제일 싼 거를 쓰고 있어서 얘가 돌릴 수 있을지도 의문이었고, 사실 도커를 잘 몰라서 n8n도커랑 Puppeteer 도커를 같이 돌아가도록 하는 방법도 찾아봐야 하는데...아무튼 너무 멀리 가는 것 같아서 중단했습니다.

대신 로컬에 n8n을 설치하는 것으로 대체해보기로 했습니다.

또 어떻게 진행되었는지는 모르겠지만 지피티와 클로드를 볶아서 설치했습니다.

텍스트가있는 검은 색 화면의 스크린 샷

스크린샷에서 등장하는 여러 도구들이 위에서 n8n으로 짠 mcp에서 제공하는 도구들 입니다. 뉴스를 검색하고 내용을 정리하고 지정한 스프레드시트에 기록도 하고요.

중국어 텍스트가 장착 된 Google 스프레드 시트의 스크린 샷

이렇게 정리됩니다.

혹시 이 사례를 도전해보고 싶은 분들에게 꿀팁이 하나 있는데요.

NSP 서버 태그의 스크린 샷

n8n의 mcp trigger node를 만들어보면 이렇게 줍니다. 'http://~~~/sse'로 끝나는 URL인데요. 그럼 이걸 어떻게 클로드에게 줄까요?

    "web_scrapper": {
      "command": "npx",
      "args": [
        "-y",
        "supergateway",
        "--sse",
        "http://localhost:5678/mcp/7088eef3-3a18-4c5e-bba8-c4932193067d/sse"
      ]
    }

이렇게 넣으면 됩니다. 제가 참고한 유튜브 영상에도 나오는 내용인데요. 물론 개발자분들이라면 이건 당연한 내용이겠지만 혹시 저처럼 '~~/sse'로 끝나는 경우 config에 어떻게 넣어야하는지 모르셨던 분이라면 유용할 것 같습니다.

나에게 카카오 메시지 보내기도 성공했습니다. 노드는 간단해서 어렵지 않았는데 카카오 개발자 페이지 들어가서 이것저것 받는 과정이 꽤 복잡했고, 텍스트 형식 문제로 전송이 안되는 걸 해결하는게 좀 어려웠습니다.

결과와 배운 점

이런 식으로 여러가지 도구들을 묶을 수 있다는게 활용도가 높을 것 같습니다.

도움 받은 글 (옵션)

단테랩스 유튜브

1

👉 이 게시글도 읽어보세요