Agent가 Slogs 글을 초안으로 저장하고 발행하는 방식

![Agent publishing flow to Slogs](/uploads/20260627-llmwiki-post-publishing-v2.png) Agent가 블로그 글을 쓸 수 있게 만들 때 가장 먼저 정해야 할 것은 “바로 공개할 것인가, 먼저 저장할 것인가”다. 사람은 글을 쓰면서 자연스럽게 초안, 수정, 발행 단계를 구분한다. Agent에게도 같은 단계가 필요하다. Slogs MCP 글쓰기 도구는 이 흐름을 명확히 나눈다. - 이미지 업로드 - 초안 저장 - 초안 수정 - 공개 발행 - 공개 글 수정 - 글 읽기 이 구조 덕분에 Agent는 “작성 중인 글”과 “이미 공개된 글”을 다르게 다룰 수 있다. ## MCP 도구는 UI 버튼이 아니라 작업 계약이다 MCP에서 tool은 모델이 호출할 수 있는 서버 기능이다. Slogs 글쓰기 MCP도 단순한 API 래퍼가 아니라 Agent와 서버 사이의 작업 계약으로 본다. 예를 들어 `slogs_post_publish`는 공개 글을 만든다. 반면 `slogs_post_save_draft`는 공개 목록에 보이지 않는 pre-publish 상태의 글을 저장한다. 둘을 같은 도구로 뭉치면 Agent가 실수로 미완성 글을 공개할 가능성이 커진다. 도구를 나누는 이유는 Agent의 판단 부담을 줄이기 위해서다. 사용자가 “초안으로 저장해줘”라고 하면 저장 도구를 쓰고, “올려줘”라고 하면 발행 도구를 쓴다. ## 초안은 공개 글이 아니다 Slogs의 pre-publish 글은 작성자에게만 보인다. 공개 목록에도 나오지 않고, 공개 API에서도 일반 방문자에게 노출되지 않는다. 검색 엔진에 노출될 글도 아니다. 이 상태가 중요한 이유는 Agent가 긴 글을 만들 때 한 번에 완성하지 못할 수 있기 때문이다. 먼저 초안으로 저장하고, 사용자의 검토를 받은 뒤, 같은 slug를 대상으로 업데이트하고, 마지막에 발행할 수 있어야 한다. 기본 흐름은 이렇게 잡는다. ```text save_draft -> read -> update -> publish ``` 중간에 사용자가 방향을 바꾸면 update 단계에서 제목, 본문, 요약, 태그, 시리즈, 대표 이미지를 바꿀 수 있다. ## 공개된 글을 수정하면 revision이 된다 이미 공개된 글은 URL 안정성이 중요하다. 그래서 공개 글을 업데이트할 때는 기존 public URL을 유지하는 쪽이 안전하다. Slogs MCP의 `slogs_post_update`와 `slogs_post_publish`는 소유한 글을 대상으로 동작한다. 이미 공개된 글이면 slug를 함부로 바꾸지 않고, 새 내용으로 revision을 낸다. 독자가 공유한 링크가 깨지지 않게 하기 위해서다. 반대로 아직 pre-publish 상태인 글은 `customSlug`를 조정할 수 있다. 공개 전이므로 최종 URL을 다듬을 여지가 있다. ## 이미지는 먼저 업로드하고 본문에 넣어야 한다 Markdown 글에서 이미지는 단순 장식이 아니다. 목록 카드, 대표 이미지, 본문 시각 구조에 모두 영향을 준다. Slogs MCP는 로컬 또는 생성 이미지를 먼저 업로드하고, 반환된 `/uploads/...` URL을 Markdown 본문에 포함하도록 한다. 업로드된 이미지를 본문이나 대표 이미지에서 사용하지 않으면 다음 저장/수정/발행 시 미사용 이미지로 정리될 수 있다. 안전한 순서는 다음과 같다. ```text upload_image -> markdown에 이미지 URL 삽입 -> save_draft 또는 publish ``` 대표 이미지는 `thumbnailUrl`에 같은 `/uploads/...` 경로를 넣거나, 생략하면 본문의 첫 번째 이미지를 사용할 수 있다. ## Markdown은 공통 언어로 남겨둔다 Slogs 글쓰기 도구의 본문은 Markdown이다. Markdown을 유지하면 Agent, 웹 에디터, 사람이 같은 형식으로 글을 다룰 수 있다. CommonMark 같은 명세가 있는 것도 장점이다. 물론 실제 서비스에서는 Markdown만으로 끝나지 않는다.…