본문으로 건너뛰기
Max
전체 프로젝트 목록으로 돌아가기
외부 서비스 연동 · 업무 자동화·2026.01 – 2026.08
기존 콘텐츠 자동화 사례

YouTube & Tistory MCP 자동 배포 파이프라인

플레이리스트 정리와 기술 블로그 발행에서 반복되던 수동 복사·붙여넣기 업무를 Model Context Protocol(MCP) 기반의 승인형 배포 파이프라인으로 전환했습니다. 단순한 AI 텍스트 생성이 아니라 사람의 Plan 검토를 거쳐 실제 API로 배포되는 안전한 자동화를 구축했습니다.

담당 역할TypeScript 기반 YouTube MCP stdio 서버 개발
핵심 제약YouTube Data API 호출별 할당량과 외부 인증 제약
해결 아키텍처YouTube MCP: TypeScript와 @modelcontextprotocol/sdk를 사용하여 Data API v3 및 Live Streaming API를 다루는 stdio 서버 구현
검증된 결과YouTube 동영상·재생목록 작업을 연결한 로컬 TypeScript stdio MCP 서버

검증 가능한 증거 자료

01.내가 맡은 역할

  • TypeScript 기반 YouTube MCP stdio 서버 개발
  • Tistory API / WebMCP 연동 및 CDM 마크다운 변환기 구현
  • Plan/Apply 및 롤백 안전성 검증 설계

02.시작 당시 상황

플레이리스트 구성과 기술 블로그 게시물 발행은 한 번 작성하는 것보다 조사, 정리, 메타데이터 입력, 웹 콘솔 복사·붙여넣기, 발행 상태 확인을 반복하는 데 더 많은 시간이 소요되었습니다.

단순히 AI에게 텍스트를 생성하게 하는 것을 넘어, 사람이 대화 안에서 검토하고 승인하면 실제 외부 서비스 API를 통해 안전하게 발행되는 엔드투엔드 흐름이 필요했습니다.

03.실제로 마주친 제약

[1]YouTube Data API 호출별 할당량과 외부 인증 제약
[2]재생목록 일괄 변경 시 누락·중복 발생 시 복구가 어려운 문제
[3]데스크톱 로컬 환경에서의 안전한 OAuth 2.0 PKCE 인증 및 토큰 보안 보관
[4]Tistory의 고유 에디터 CDM 포맷 및 이미지 블록 렌더링 규격 호환

04.내가 내린 주요 판단

YouTube MCP: TypeScript와 @modelcontextprotocol/sdk를 사용하여 Data API v3 및 Live Streaming API를 다루는 stdio 서버 구현
Plan / Apply 워크플로: 재생목록 변경 시 즉시 수정하지 않고 snapshot -> plan -> 사용자 승인 -> apply -> journal 기록 순으로 안전 실행하며, 문제 시 inverse plan으로 롤백 지원
OAuth 루프백: 127.0.0.1 로컬 포트와 PKCE를 결합한 데스크톱 OAuth 플로우를 구축하고, 토큰은 환경 변수나 tool 인자로 전달하지 않고 로컬 보안 파일에만 격리
Tistory MCP: 마크다운 초안을 Tistory CDM 문법으로 자동 변환하고 태그/카테고리/슬러그를 함께 전달해 발행 결과 확인

콘텐츠 배포 작업 흐름 비교

자동화 이전 (수동 반복 방식)
1.자료 조사 및 초안 작성
2.별도 문서/노트에 수동 정리
3.브라우저로 YouTube Studio / Tistory 접속
4.제목·설명·태그 등 메타데이터 복사·붙여넣기
5.수동 업로드 및 레이아웃 깨짐 확인
6.수정 필요 시 콘솔에서 다시 수동 편집
자동화 이후 (MCP 파이프라인)
1.대화 컨텍스트 안에서 자료 조사 및 구조화
2.MCP가 API Quota 및 Diff를 포함한 Plan 생성
3.사람이 Plan 및 변경 목록 검토 후 명시적 승인
4.MCP stdio 서버가 API 직접 호출로 일괄 배포
5.API 결과와 공개 화면을 각각 확인 (필요 시 Undo)
모든 변경은 AI의 임의 실행이 아닌 사람의 Plan 검토 및 승인을 거쳐서만 배포됩니다.

[세부 구현]YouTube MCP와 Tistory MCP의 배포 파이프라인

01. YouTube MCP (Plan / Apply)

  • 스냅샷 생성: 재생목록의 현재 순서와 고유 ID를 조회하여 기준 스냅샷을 생성합니다.
  • Plan 단계: 변경할 항목의 diff와 예상 YouTube Data API Quota(단위)를 계산해 사용자에게 제시합니다.
  • Apply 단계: 사용자 승인 후 실제 API를 순차 호출하고 실행 저널(Journal)을 기록합니다.
  • Undo 지원: 문제 발생 시 저널에 기록된 이전 스냅샷을 기반으로 역계획(Inverse Plan)을 생성해 롤백합니다.

02. Tistory MCP (마크다운 → CDM)

  • 구조화된 초안: 에이전트 대화 내에서 글의 구조와 코드를 정리합니다.
  • CDM 렌더링: Tistory 에디터 전용 포맷(코드 블록 구문 강조, 이미지 태그, 수식)으로 자동 변환합니다.
  • 원클릭 발행: 카테고리 ID, 태그, 공개/비공개 설정을 포함해 Tistory API로 직접 발행합니다.
  • 결과 확인: API의 발행 결과와 공개 페이지의 응답·렌더링을 구분해 확인합니다.

05.구현하거나 배포한 결과

  • YouTube 동영상·재생목록 작업을 연결한 로컬 TypeScript stdio MCP 서버
  • 재생목록 스냅샷, diff 계산, Quota 추정, 일괄 편집 및 역계획 롤백 엔진
  • Tistory 마크다운/CDM 변환 및 원클릭 기술 블로그 포스팅 파이프라인

06. 실패 또는 남은 한계

  • YouTube Music 전용 라이브러리나 Google 비공개 API(시청 기록 등)는 공식 Data API 범위 밖으로 지원 불가
  • 외부 서비스의 인증·할당량·에디터 변경에 따라 실행 흐름을 다시 확인해야 합니다.

07. 다음 설계 및 개편 계획

  • Medium 및 Substack 등 멀티 플랫폼 동시 발행 어댑터 확장
  • 발행 후 트래픽 및 독자 반응 지표 피드백 루프 자동화

08.사용 기술과 선택 이유

기술선택 이유 및 적용 위치실제 겪은 제약 및 배운 점
TypeScript & Node.js 20+
타입 안전한 MCP SDK 구현 및 stdio IPC 프로토콜 준수stdio 통신 시 stdout을 프로토콜 전용으로 격리하고 진단 로그는 stderr로 분리
@modelcontextprotocol/sdk
Claude / Codex / ChatGPT 등 다양한 AI 에이전트 표준 도구 인터페이스도구 입출력의 JSON Schema를 엄격히 정의해야 에이전트 오작동 방지 가능
Google YouTube Data API v3
동영상 및 재생목록 메타데이터 CRUD 연동호출 전 예상 Quota를 계산하여 일일 한도 초과 방지
OAuth 2.0 PKCE & Loopback
로컬 환경에서 안전한 Google 사용자 인증 및 토큰 격리설치형 데스크톱 앱의 표준 권장 인증 규격 준수
다음 프로젝트EverLeaf게임을 소개하는 랜딩에서 운영자가 직접 고치는 도감까지
사례 연구 보기다음 프로젝트: EverLeaf