Skip to content

Security: seongwon030/velog_mcp

Security

docs/security.md

보안 및 주의사항

이 프로젝트는 Velog의 내부 GraphQL API를 리버스 엔지니어링하여 구현한 비공식 도구입니다.


토큰 보안

저장 위치 및 권한

  • 토큰은 ~/.velog-mcp.json에 저장 (0600 권한 — 본인만 읽기/쓰기 가능)
  • 절대 git에 커밋하지 마세요. .gitignore에 반드시 추가:
    .velog-mcp.json
    

토큰 탈취 시 위험

  • access_token + refresh_token 조합이 노출되면 Velog 계정에 대한 완전한 접근 권한을 타인이 갖게 됩니다.
  • 탈취 의심 시 즉시 Velog에 로그인 → 다른 기기 세션 종료 → 재로그인 후 토큰 재발급

MCP 서버 신뢰 범위

  • 이 MCP 서버는 로컬에서만 실행됩니다 (stdio transport)
  • 토큰은 Velog API 호출에만 사용되며 외부로 전송되지 않습니다
  • 단, npx velog-mcp-claude로 실행 시 npm 레지스트리의 패키지를 직접 실행하므로 패키지 무결성을 신뢰해야 합니다

리버스 엔지니어링 관련 위험

API 변경 위험

Velog는 내부 API 변경을 공지하지 않습니다. 다음 상황에서 갑자기 동작이 멈출 수 있습니다:

변경 유형 영향
GraphQL 필드명 변경 특정 툴 오류
mutation 파라미터 변경 쓰기 작업 실패
인증 방식 변경 모든 툴 동작 불가
엔드포인트 변경 연결 불가

권장 대응: 중요한 포스트 작업 전 velog_list_posts로 연결 상태 확인.

이용약관(ToS) 준수

  • Velog의 공식 API가 아니므로 이용약관 상 자동화 도구 사용이 제한될 수 있습니다
  • 과도한 자동화(대량 포스트 발행, 스팸 댓글 등)는 계정 제재로 이어질 수 있습니다
  • 본인 계정에 한해, 정상적인 블로그 활동 범위에서 사용을 권장합니다

Claude MCP 사용 시 주의사항

불가역 작업 확인

다음 작업은 되돌릴 수 없으므로 Claude가 호출 전 반드시 사용자 확인을 요청해야 합니다:

  • velog_delete_post — 포스트 영구 삭제
  • velog_delete_comment — 댓글 영구 삭제
  • velog_publish_post — 공개 발행 (발행 후 외부 공유되면 완전한 비공개 복원 불가)

draft 휘발성

  • velog_draft_post로 생성한 초안은 MCP 서버 프로세스 메모리에만 존재합니다
  • Claude Desktop / Claude Code 재시작 시 초안이 소멸됩니다
  • 발행 전 보존하려면 velog_publish_post(is_private: true)로 비공개 저장하세요

토큰 자동 갱신

  • Velog 서버가 Set-Cookie로 access_token을 자동 갱신합니다
  • 갱신된 토큰은 ~/.velog-mcp.json에 자동 덮어씌워집니다
  • refresh_token 만료(~30일)시 npx -p velog-mcp-claude velog-mcp-setup 재실행 필요

권장 운영 방법

✅ 해도 되는 것
- 본인 포스트 CRUD
- 본인 댓글 관리
- 검색·트렌딩 조회 (읽기 전용)
- 이미지 업로드

⚠️  주의가 필요한 것
- 대량 포스트 자동 발행 (짧은 시간에 다수)
- 타인 포스트에 자동 댓글 반복

❌ 하지 말아야 하는 것
- 타인 계정 토큰 사용
- 스팸·홍보 목적 자동화
- 토큰을 환경변수·코드에 하드코딩

문제 발생 시

증상 원인 해결
모든 툴에서 401 오류 토큰 만료 npx -p velog-mcp-claude velog-mcp-setup 재실행
특정 툴만 오류 Velog API 변경 GitHub Issues에 제보
연결 불가 네트워크 또는 Velog 서버 점검 잠시 후 재시도
포스트 발행됐는데 안 보임 is_private: true 상태 Velog 대시보드에서 확인

There aren't any published security advisories