본문 바로가기
IT 기록/블로그 자동화

🛠 Claude + n8n + MCP + Notion으로 블로그 자동화 구축기 (3편)

by 뚠스뚠스 2025. 4. 11.
반응형

👉 n8n에서 Claude API 호출하기 (실제 실습 + 오류 + 해결)


✅ 지난 이야기 짧게 복습

  • 원래는 MCP로 티스토리 API에 직접 글을 올리려 했으나, API 호출 제한 문제로 중단
  • 방향을 바꿔서 Claude + n8n + Notion 기반으로 자동 글 작성 → 수동 게시 구조로 변경
  • 지난 편(2편)에서는 n8n이 어떤 툴인지, 이 시스템에서 어떤 역할을 하는지를 정리

🎯 이번 편 목표

n8n 안에서 Claude API를 직접 호출해서 블로그 글을 생성하는 첫 단계 완성!

 

✅ Claude API 연동 성공
✅ n8n에서 수동 실행
✅ 글 내용 받아보기
✅ 오류 발생 → 해결까지 포함해서 실제 작업 흐름 기반


1️⃣ Claude API 키 발급 (Anthropic)

우선 Claude를 n8n에서 부르기 위해 Anthropic의 Claude API 키가 필요합니다.

📍 발급 절차

  1. https://console.anthropic.com/ 접속
  2. 우측 상단 [API Keys] 메뉴로 이동
  3. 새로운 키를 생성하고 복사

👉 .env 파일에 저장

ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxx

2️⃣ n8n 워크플로우 구성 시작

🧩 기본 구조

[Manual Trigger]
     ↓
[HTTP Request: Claude API 호출]
     ↓
[출력 결과 확인]

🖥 수동 트리거 추가

  • Manual Trigger 노드 추가
  • 테스트 반복용이기 때문에 우선 수동 트리거로 시작

3️⃣ Claude API 호출 구성 (HTTP Request Node)

이 부분에서 많은 삽질이 있었는데, 그 과정을 공유할게요.

🧪 초기 시도

설정

{
  "Authorization": "Bearer {{env.ANTHROPIC_API_KEY}}",
  "Content-Type": "application/json",
  "anthropic-version": "2023-06-01"
}
  • Body Content Type: JSON
  • Body:
{
  "model": "claude-3-opus-20240229",
  "max_tokens": 1024,
  "temperature": 0.7,
  "messages": [
    {
      "role": "user",
      "content": "오늘의 IT 트렌드를 주제로 블로그 글을 써줘. 서론, 본문, 마무리로 구성하고 HTML 형식으로 출력해줘."
    }
  ]
}

⚠️ 문제 발생: 응답이 안 오는 에러

실행했는데 계속 이런 에러가 나왔어요:

400 Bad Request
Missing required header: anthropic-version

🔍 원인 분석

  • 나는 처음에 anthropic-version을 Body 안에 넣음
  • 하지만 이건 Header로 넣어야 함!!

✅ 해결 방법

  • Header 탭에서 anthropic-version: 2023-06-01 추가
  • 이후 재실행 → 정상 작동

✅ 성공한 응답 예시

{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "<h2>2025년 우리가 주목해야 할 IT 트렌드</h2><p>1. 생성형 AI...</p>"
    }
  ],
  ...
}

💡 구조 요약

  • content는 배열이고, [0].text 안에 Claude가 만든 글이 있음
  • 나중에 포맷팅/Notion 전송 시 이 값을 추출해야 함

🧠 실습하면서 느낀 점

  • Claude API는 OpenAI랑 구조가 꽤 다르다. 특히 **응답 포맷이 messages가 아닌 content[]**로 나와서 좀 생소했음
  • n8n에서는 HTTP Request의 응답을 바로 확인할 수 있어서 디버깅이 쉬움
  • 처음엔 응답이 안 나와서 API 키 문제인가 했는데, 헤더 누락 문제였음
    → 앞으로 API 요청할 때는 문서 그대로 헤더/Body 분리해서 정확히 넣어야겠다는 교훈 얻음

 

반응형