드디어 완성한 지피터스 라디오 📻 - 클로드야 일해라!

MCP 사례글이기 때문에 - mcp를 다루는 스터디인 n8n에이전트 태그를 달았습니다! n8n은 하나도 안써요!!

소개

  • 지난 MCP 계절학기 사례톤에서 급 아이디어로 시작했던 사례

    https://www.gpters.org/marketing/post/automation-journey-podcasts-way-bAByJ1q5gOGkUop

  • 16기 온오프모임 베스트발표로 발표하면서 200여 명 앞에서 약속을 해버렸지 뭐에요...? 16기가 끝나기 전까지는 꼭 지피터스 라디오 완성하겠다고....

  • 그래서 틈틈이 짬내서 mcp 연결 연결 고군분투 해가며 드디어 완성한 사례로 돌아왔습니다!

원래 하려고 했던 프로세스

클로드에게 지피터스 url을 주면

  1. firecrawl mcp 로 내용을 읽어오고

  2. 클로드가 30초짜리 라디오 스크립트를 써주고

  3. elevenlabs mcp 로 라디오 mp3 파일을 생성한 뒤

  4. supabase mcp 로 데이터베이스에 파일을 저장하면!!

러버블로 만든 웹사이트에서 짠! 하고 mp3가 재생되는 흐름을 생각했습니다.

남아있던 개발 과제들

당시 3번 (일레븐랩스로 mp3 파일 생성)까지는 진행했었는데, 슈퍼베이스에 mp3 파일 업로드에서 막혀있었어요.

  • elevenlabs mcp로 mp3 파일을 만들게 되면 파일명과 파일 저장 위치(바탕화면)가 고정되는 문제

  • supabase mcp 도구로는 파일을 데이터베이스에 업로드하는 게 불가한 문제

위 두 가지 문제를 해결하는 게 목표였어요!

현재 되어있는 것

  • 슈퍼베이스에는 데이터가 저장되는 DB도 있지만, 파일을 직접 업로드하는 'file storage' 라는 게 있어요.

  • 그리고 파일 스토리지에는 파일을 저장할 수 있는 '버킷'이 필요해요

  • 'audio-files' 라는 버킷을 생성해두었어요.

  • 이제 클로드가 뽀짝뽀작 해서 'audio-files' 버킷에 라디오 mp3 파일을 올려주게 하려고 해요.

(참고) supabase mcp 연결이 자꾸 에러나는 문제

👉 지피터스 라디오 들으러 가기

  • 일단 결과만 궁금한 사람들을 위해 ㅋㅋㅋ

진행 방법

Elevenlabs MCP로 mp3 파일을 만들게 되면 파일명과 파일 저장 위치(바탕화면)가 고정되는 문제를 해결해보기

  • 일레븐랩스 MCP가 파일명 변경, 저장 위치 변경 등의 기능을 아예 제공하지 않는 것 같았어요

  • 그래서 이 기능을 할 수 있는 다른 MCP를 찾아 나섰어요

  • Filesystem MCP 라는 것을 설치하면 - 내 컴퓨터에 저장된 파일에 접근할 수 있다길래 설치했습니다

  • 이 MCP가 접근할 수 있는 폴더 경로는 직접 지정해줘야 해요!

"filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/dahye.dyan/Desktop"
      ]
    }

자 이제 클로드가 Filesystem mcp를 활용해서 내 파일명도 변경하고, 폴더 이동도 해주는지 확인해야겠죠? 클로드에게 이렇게 부탁해봅니다

바탕화면에 저장된 1st_file.mp3 파일을 2nd_file.mp3 로 파일명을 바꿔줘

파일명이 실시간으로 바뀌었어요!!

바탕화면에 저장된 2nd_file.mp3 파일을 바탕화면의 'dahtmade-mcp' 폴더로 옮겨줘

파일이 쏙 들어갔습니다!!

자 이제 그러면 일레븐랩스 mcp로 파일 생성하고, "방금 생성된 파일의 파일명을 바꿔주고, 폴더도 바꿔줘" 라고 하면 되겠네요!

supabase mcp 도구로는 파일을 데이터베이스에 업로드하는 게 불가한 문제를 해결해보기

GPT에게 방법을 묻기

숫자가있는 흰색 종이
  • 근데 supabase mcp로는 직접 파일을 올릴 수 없고, upload.js 같은 코드로 함수를 짜고, 이 함수를 실행시켜서 직접 파일을 업로드 해야한다고 했어요

upload.js 스크립트 작성하기

  • GPT가 upload.js 스크립트를 짜줬어요.

한국어를 가진 한국 웹 사이트 스크린 샷

그 다음에 해야하는 것을 묻기

  • 그 다음에는 이 upload.js 를 실행하려면 해야하는 것을 알려줬어요

한국어 웹 사이트의 스크린 샷

환경변수 설정하기

  • 환경변수 설정하는 게 뭔지 몰라서, 이걸 자세히 알려달라고 했어요

  • 폴더 하나를 만들어서 upload.js 라는 파일과 같은 위치에 .env 파일을 만들고, 필요하다고 한 변수 2개 (supabase_url, supabase_service_role_key)를 등록해줬어요

  • 만약 touch .env 가 잘 안되면 -> 그냥 직접 커서에서 폴더 열고 '새파일' 만드셔도 돼요

  • 슈퍼베이스 url과 키 값은 퍼플렉시티한테 가서 어떻게 받냐고 물어보니까 바로 잘 알려줬어요

upload.js 스크립트 실행해보자!

  • 터미널 가서 node upload.js 명령어로 js 파일을 실행시키라고 했어요

  • 에러가 나서, 에러를 그대로 복붙해서 GPT에게 계속 도움을 요청했어요

에러 해결과정

  • 결국 upload.js 를 그대로 복붙했더니 생긴 문제였어요. 그 안에 mp3 파일의 경로를 찾는 부분이 있는데, 그 경로를 제가 직접 맞게 설정해줘야 하는 거였어요

  • 이 에러를 해결한 후 터미널에서 다시 node upload.js 를 실행시키니...!! 감격스럽게도 슈퍼베이스에 파일이 올라갔어요ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

이제 그러면 이걸 터미널이 아니라, 클로드 mcp로 해야겠죠?

  • 하지만...

  • 제가 설치한 Filesystem MCP로는 node 명령어를 실행시킬 수 없대요

  • node 명령어를 제가 터미널에서 실행했으니까, 내 터미널을 직접 실행시켜줄 수 있는 mcp 가 있으면 되지 않을까요?

터미널을 직접 실행시켜주는 mcp 찾기

  • 오! Desktop Commander MCP 라는 게 있다나봐요!

  • 설치를 잘 완료하고, 이제 이걸 활용해서 명령하는 법을 찾아봅니다.

upload.js 파일을 실행시킬 때, 일레븐랩스 mcp로 만든 mp3파일을 upload.js 파일의 인자로 전달하기

GPT가 이렇게 하면 된대요

4. filesystem mcp로 파일명을 yyyy-mm-dd 포함한 영문 파일명으로 변경해줘. ex) '2025-05-28-community-managers-landing-page.mp3'
...
6. desktop-commander mcp로 Desktop/dahtmade-mcp/upload.js 를 실행할 때, 앞에서 기억한 파일명을 인자로 넣어줘

최종 클로드에게 명령한 것

저는 이렇게만 명령했어요

자 이제 클로드가 열심히 mcp들을 불러다가 일을 시킵니다

와..... 이게 한 방에 되네..?

러버블로 만든 웹에서도 바로 보여집니다!! 라디오가 생성되어 슈퍼베이스에 저장되고, 이걸 웹에서 불러오는 거예요!

👉 지피터스 라디오 들으러 가기

결과와 배운 점

  • 단계별로 클로드가 사용할 도구들이 각기 달라서, 원하는 기능을 제대로 수행할 수 있는 적절한 도구를 찾는 게 중요하다

    • filesystem mcp -> 내 컴퓨터 파일에 접근해서 파일명 변경, 폴더 이동 등을 수행

    • desktop commander mcp -> 터미널 명령어를 직접 실행

  • mcp라는 걸 활용해서 클로드를 나의 비서로 두고, 얘한테 일을 다 시킨다고 해도 - 결국 전체 워크플로는 내가 머릿 속으로 구상할 줄 알아야 함

    • 클로드한테 어느 단계에서 어떤 역할을 하게 할지를 명확하게 그 순서를 알고 있어야 하고

    • 그 도구를 이용할 때 정확히 어떤 경로에서 어떤 파일을 실행시켜야하는지 등 - 명확하게 명령해야함

  • mcp를 쓰면 실행할 때 마다 조금씩 다른 도구를 찾아나서는 등 헤매는 경우 해결 법

    • 이건 명확하게 어떤 MCP의 어떤 도구를 써서 어떤 경로의 파일을~~ 이런 식으로 구체적으로 명령해주면 90% 이상은 해결되는 이슈라고 생각됨

  • 러버블로 뚝딱 만들고 슈퍼베이스를 연동할 때, '파일 업로드'와 'DB에 데이터 생성'은 다른 것

    • mp3 파일은 '파일 스토리지'에 업로드를 하는거고

    • 러버블 웹에서 해당 파일을 목록으로 꺼낼 때는 '데이터베이스'에 별도로 저장해야 함

    이건 mp3 파일을 올린 곳이고

    이게 실제로 웹에서 꺼내어 보여줄 데이터 값

고민했던 것

클로드에 여러 종류의 mcp를 붙여서 해내게 할 수 있으면 -> n8n 워크플로가 꼭 필요할까?

아래 항목을 고민해보면 될듯

  1. 내가 하려는 작업이 모두 mcp를 제공하는가?

    1. 만약 일레븐랩스가 mcp를 제공하지 않았으면 - 클로드 mcp로 이걸 완성하지 못했을 것

  2. n8n도 결국 노드 연결할 때, 기본 제공 노드가 아니라면 api를 직접 연결해줘야 함

    1. mcp를 활용하면 api 개념이 어려운 비개발자가 직접 연동하지 않고, 클로드라는 대리인을 통해 하게끔 하는 방식이므로 api를 몰라도 쓸 수 있다는 장점이 있음

  3. 나 혼자 쓸건가, 다른 사람도 쓸 수 있는 기능으로 만들어야 하는가

    1. 클로드 mcp는 기본적으로 "클로드 앱"에서만 작동하기 때문에 - 내 컴퓨터에서만 쓸 수 있음

    2. 즉, 다른 사람은 이 워크플로를 못 씀

    3. 그리고 나조차도 내 노트북이 없으면 못 씀

향후 과제

  • 클로드 mcp로 만드니까 나만 올릴 수 있는 문제가 있음 -> 누구나 일레븐랩스 api 키를 넣으면 직접 라디오를 올릴 수 있도록 하고 싶음

  • 아마 이러려면 n8n 워크플로로 바꿔야 하는듯???

  • 아래 '생성하기' 탭에서 url 넣고 생성하기 누르면 -> 클로드가 에이전트가 되어 수행한 모든 과정을 워크플로로 담은 n8n이 호출되어 -> 바로 데이터베이스에 등록되는 걸 만들어보기

1
1개의 답글

👉 이 게시글도 읽어보세요