vibelore
vibelore is an MCP server that lets an AI coding agent write long-form serial fiction with consistent lore and adapt it into webtoon scenes, all stored locally as Markdown.
Initialize or adopt a work: create a scaffolding (
world/setting.md, empty dirs,.vibelore/foundation.json) vialore_init, or auto-design world/cast/entities vialore_create.Design the story contract: build a StoryProfile through an interview (
lore_profile→lore_profile_decide), then generate and approve a StorySpine (lore_story_plan/lore_story_decide) and a WriterSkill chosen by audition (lore_writer_skill/lore_writer_decide).Plan arcs: create 3–20 episode arc plans (
lore_arc_plan→lore_arc_decide) and inspect arc state, checkpoints, and pattern ledgers (lore_arc_status,lore_arc_review).Write chapters: run the full draft → multi-pass consistency/language checks → approval → commit loop with
lore_write, then approve/revise/hold/reject vialore_decide(guided or auto mode).Track status and resume: read overall progress (
lore_status), current workflow (lore_workflow_status), history (lore_workflow_history), and resume interrupted model calls (lore_resume).Configure reviews and tracking: toggle reviews (coherence, editorial, character, reader hook, pattern ledger), draft sections, and tracking categories (hooks, objects, knowledge, scheduled) via
lore_configure.Pin a prose style: mark 1–3 approved chapters as a style anchor (
lore_style_anchor).Handle manual edits: inspect/validate/apply hand-edited Markdown into the canon with
lore_sync.Rollback: list snapshots (
lore_snapshot_status) and revert the work to a chapter (lore_rollback).Adapt to webtoon: generate a scene as a single text-and-ink image (
lore_webtoon_scene) — relay image jobs to the host (built-in tool or API), pass reference images, choose panel count (1–12 or auto), auto-revise on failed validation, and store results under.vibelore/webtoon/.Language support: works in any BCP 47 language, with language-specific prompt paths and length units (
legacyCodeUnits,graphemes,words).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vibelore night_bus 다음 화를 guided 모드로 써 줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vibelore
한국어 | English | 日本語 | Español | Français | 繁體中文 | ไทย | العربية
AI로 웹소설을 쓰고, 그 소설을 웹툰으로 만드는 로컬 도구. 수백 화가 지나도 설정은 무너지지 않게.
Write serial fiction with your AI coding agent, keep the lore consistent for hundreds of chapters, then adapt it into webtoon scenes. Local, Markdown, no extra API keys for writing.
Claude Code, Codex, Grok CLI 같은 AI 코딩 도구에 MCP 서버로 붙여서 씁니다. 본문과 그림은 그 AI가 만들고, vibelore는 세계관·인물·복선·시간선을 기억하고, 매 화 검사하고, 승인 전에는 아무것도 확정하지 않습니다.
모두 vibelore로 쓴 소설을 웹툰으로 옮긴 실제 결과입니다. 작품마다 다른 AI가 만들었고, 만들 때 쓴 vibelore 버전을 함께 적었습니다.
아까는 식구 아니라면서요 (vibelore 0.4.8): 소설 10화 완결과 성인 생활 풍자풍 웹툰 1화 34칸. 금액 중복·대사 오타·밥그릇 오류의 수정 전후, 참조 이미지와 실제 검토 기록을 함께 공개합니다.
우리 집 화분이 가출했습니다 (vibelore 0.4.8): Gemini 3.8 Flash로 집필한 소설 1
3화와 웹툰 13화(10장면·80칸). 웹툰 각색·검토는 Codex, 장면 이미지 요청 모델은gpt-image-2.5-sunburst입니다. 수정 전 그림과 검토 기록도 공개합니다.베스퍼 (vibelore 0.4.2): 롯데월드 야간 퍼레이드 캐릭터를 빌린 비공식 팬 창작입니다. 50화 완결 소설부터 1~3화 웹툰까지 Claude Opus 5.5가 맡았습니다. 2화 웹툰은 베스퍼의 불빛이 칸 테두리 색과 밝기를 정하는 연출 실험, 3화 웹툰은 인이어 무전이 말풍선 대신 칸 사이 민트색 띠로 들어오는 연출 실험입니다.
처형 1분 전의 황녀 (vibelore 0.3.8): 설계부터 소설, 웹툰 각색까지 GPT-6 Sol이 맡았습니다.
판결 LIVE (vibelore 0.3.7–0.3.8): 소설과 웹툰 각색은 Claude Opus 5.5가, 그림은 Codex (OpenAI API
gpt-image-2.5-sunburst)가 맡았습니다.길 위의 번개 (vibelore 0.3.0–0.3.8): Codex·Claude·Grok이 같은 소설을 각각 각색했습니다. 모델 비교도 있습니다.
잘된 장면만 고르지 않았습니다. 검토에서 떨어진 장면, 프롬프트, 비용까지 작품 목록에서 그대로 볼 수 있습니다.
AI에게 장편을 그냥 맡기면
❌ vibelore 없이
10화쯤부터 호칭이 바뀌고, 죽은 인물이 다시 말하고, 능력 규칙이 슬쩍 달라집니다.
3화에 심은 복선을 AI도 나도 잊습니다.
세션이 끊기면 "지금까지 줄거리"를 다시 붙여 넣는 데서 시작합니다.
웹툰으로 옮기려면 컷 구성·캐릭터 외형·대사 배치를 매번 처음부터 설명합니다.
✅ vibelore와 함께
세계·인물·본문은 Markdown 정본으로 남고, 매 화 초고를 그 정본과 대조해 hard 위반은 고치고 soft 위반은 물어봅니다.
작품 전체 → 아크 → 화 순서로 계획하고, 승인한 것만 다음 화의 제약이 됩니다.
끊긴 작업은 같은 자리에서 재개되고, 검사를 통과한 원고만 커밋되며, 화 단위로 되돌릴 수 있습니다.
작품 언어는
language인자 하나로 정하며, 한국어 외의 언어로도 같은 흐름을 씁니다.원작의 인물·상태를 그대로 가져와 각색하고, 원작 범위·화풍·참조 그림·칸 수·이미지 모델을 정한 뒤 장면을 대사까지 한 장의 이미지로 생성하는 웹툰 제작 흐름이 따라옵니다.
Related MCP server: long-novel-agent-kit
30초 데모
호스트 채팅창에 이렇게 말하면 됩니다.
다음 화를 써 줘. 쓰고 나면 보여 주고, 내가 승인하면 확정해.
작품 인터뷰 ─▶ 작품 설계 ─▶ 아크 계획 ─▶ 화 계획 ─▶ 초고 ─▶ 설정·시간선·작품 언어 검사 ─▶ 검토 ─▶ 승인 ─▶ 커밋
(1회) (승인) (승인) (자동) hard 위반은 수정 advisory 사용자 Markdown작품 설계는 세계·인물 생성, 전체 스토리(StorySpine) 승인, 작품별 작가 스킬(WriterSkill) 승인 단계이며, 이것이 끝나야 집필이 시작됩니다. 작품 언어 검사는 한국어 작품을 포함한 모든 작품에 적용됩니다.
원고와 검토 근거가 오면 "승인" 또는 "이 부분 고쳐서 다시"라고 답합니다. auto 모드는 필수 검사를
통과하고 검토가 정상 완료되면 자동으로 커밋합니다. 검토의 advisory는 기록만 하고 커밋을 막지 않으며,
검토가 끝나지 않으면 승인 대기로 돌아옵니다. 웹툰도 한 문장이면 됩니다.
1화를 웹툰으로 만들어 줘. 제작 방향부터 물어봐 줘.
원작 범위·화풍·참조·칸 수·이미지 모델 ─▶ 장면 연출 ─▶ 생성 전 검증 ─▶ 대사 포함 장면 이미지 ─▶ 이미지 검토
(사용자가 고름) (영어) hard 차단 대사는 작품 언어 원문 불합격 시 자동 재설계칸 수는 정수(1~12) 또는 auto이고, 참조 그림은 사용자가 가진 인물·배경 이미지 파일을 지정합니다.
그림은 호스트의 내장 이미지 도구(Codex image_gen 등) 또는 이미지 API(OpenAI gpt-image-2.5-sunburst 등) 중
사용자가 고른 경로로 그립니다. 생성 전 검증이나 이미지 검토에서 떨어지면 결함을 근거로 다시 설계해
생성합니다(기본 2회, 최대 3회, 회마다 새 이미지 호출). 결과는 장면 이미지와 scene.html로
.vibelore/webtoon/candidates/ 아래에 남습니다.
설치
쓰고 있는 AI 코딩 도구(Claude Code, Codex, Grok CLI)에게 저장소 주소를 주고 부탁하면 됩니다.
https://github.com/fbwndrud/vibelore 를 받아서 MCP 서버로 등록해 줘.
필요한 것은 Node.js 22.13 이상(22.x), 24.x 또는 26.x뿐입니다. 빌드도 의존성 설치도 없습니다. 등록이 끝나면 AI 도구를 한 번 다시 시작하세요.
저장소를 받지 않고 npm 패키지 vibelore로 MCP 서버를 실행합니다.
claude mcp add-json vibelore '{"command":"npx","args":["-y","vibelore"]}' --scope projectCodex는 command = "npx", args = ["-y", "vibelore"], Grok CLI는 grok mcp add vibelore -- npx -y vibelore입니다.
Windows에서는 npx 앞에 cmd /c를 붙입니다("command":"cmd","args":["/c","npx","-y","vibelore"]).
특정 버전에 고정하려면 vibelore@<버전>처럼 적습니다. npm 경로는 MCP 서버만 등록하므로 인터뷰 스킬은
아래 저장소 방식이나 Codex 플러그인으로 설치합니다.
git clone https://github.com/fbwndrud/vibelore.gitClaude Code:
claude mcp add-json vibelore '{"command":"node","args":["/absolute/path/to/vibelore/src/server.js"]}' --scope projectCodex(~/.codex/config.toml):
[mcp_servers.vibelore]
command = "node"
args = ["/absolute/path/to/vibelore/src/server.js"]
startup_timeout_sec = 30
tool_timeout_sec = 6000Grok CLI:
grok mcp add vibelore -- node /absolute/path/to/vibelore/src/server.jsClaude Code용 집필 루프 스킬은 hosts/claude/skills/novel/, 작품·웹툰 인터뷰 스킬은 skills/story-discovery-interview/와 skills/webtoon-discovery-interview/에 있습니다. 모두 .claude/skills/ 아래로 복사하세요. 이 저장소는 Codex 플러그인(.codex-plugin/plugin.json)으로도 설치할 수 있습니다.
설치했으면 첫 작품을 시작해 봅니다. 쓰고 싶은 이야기를 한두 문장으로 말하면 됩니다.
새 소설을 시작하고 싶어. 심야버스에서 승객의 후회를 듣는 기사 이야기야. 작품 인터뷰부터 해 줘.
인터뷰는 결과를 바꾸는 취향만 한 번에 4~5개씩 묻습니다. 건너뛰려면 "묻지 말고 자동으로"라고 하면 됩니다. 막히면 시작 안내를 보세요.
무엇을 해 주나
작품 인터뷰. 장르명 대신 속도·난도·정서·보상·금기를 물어 독서 계약(StoryProfile)을 만들고, 세계관과 인물을 자동 생성합니다.
아크 설계. 3~20화 단위 약속과 얇은 사건·압력·전환을 먼저 승인받고, 화별 계획은 집필 때 자동으로 채웁니다.
매 화 검사와 수정. 초고를 인물·호칭·시점·시간선·복선과 대조하고, 확정 사실과 충돌하면 자동으로 고쳐 다시 검사합니다(검사 최대 3회, 그 사이 수정 최대 2회). 문체·운율 같은 취향 지적은 advisory로만 남깁니다.
문체 기준. 마음에 든 화를 문체 앵커로 지정하면 이후 화가 그 결을 따라갑니다.
되돌리기. 특정 화 시점으로 작품 전체를 롤백하고 그다음 화부터 다시 씁니다(롤백 전 상태는 복구 가능하게 보관).
웹툰 각색. 원작 상태를 가져와 원작 범위·화풍·참조 그림·칸 수·이미지 모델을 확인한 뒤 장면을 대사까지 한 장의 이미지로 완성합니다.
하지 않는 것. 웹 GUI(호스트 채팅창이 인터페이스), MCP 서버 자체의 유료 API 호출(그림은
호스트가 실행), 기본 도구로 앞 화 다시 쓰기·이후 상태 재계산(VIBELORE_MCP_SURFACE=advanced의
복구 도구 lore_rewrite·lore_refold로만 가능), 문학적 품질 보증,
동시 편집·멀티테넌트, 플랫폼용 PNG/JPEG 자동 분할.
자주 하는 일
하고 싶은 것 | 호스트에게 이렇게 |
마지막 화가 마음에 안 들어 | 원고를 손으로 고친 뒤 "변경 사항 확인해 줘" → 검사 → 승인 |
3화까지 썼는데 2화부터 다시 쓰고 싶어 | "1화 시점으로 롤백해 줘" → "다음 화를 써 줘" |
5화 시점으로 전부 되돌리고 싶어 | "5화 시점으로 롤백해 줘" |
이 화 문체가 딱 좋아, 앞으로 이렇게 | "3화를 문체 기준으로 승인해 줘. 이유: 대사가 짧고 건조해서" |
설정 파일을 손으로 고쳤어 | "변경 사항 확인해 줘" → 영향 범위와 다음 할 일을 알려 줌 |
왜 이렇게 썼는지 근거를 보고 싶어 | "이번 화 검토 근거와 실제 집필 요청을 보여 줘" |
기존 소설을 웹툰으로 만들고 싶어 | "1화를 웹툰으로 각색해 줘. 제작 방향부터 물어봐 줘" |
웹툰 장면을 다시 그리고 싶어 | "1화 이 장면을 [이렇게] 다시 그려 줘" |
수정·재개·백업은 문제 해결과 백업을 보세요.
웹툰은 어떻게 만드나
이미 쓴 소설을 그대로 웹툰으로 옮깁니다. 인물 외모, 세계관, 그 화까지의 상황을 원작에서 가져오니 다시 설명할 필요가 없습니다.
원작 범위와 방향. 옮길 화·문단 범위와 그림체·글자 표현·배치 재량을 묻고, 영어 연출 지시로 정리해 확인받습니다.
참조 그림. 인물·배경 참조 이미지 파일(1장 이상)을 사용자가 지정합니다. 이어지는 장면은 앞 장면의 완성 그림도 참조합니다.
칸 수와 그림 경로. 칸 수(1~12 또는 auto)를 고르고, 호스트가 실제로 쓸 수 있는 그림 경로(내장 도구, API)와 모델·비용을 보고 고릅니다. 선택은 작품별로 유지됩니다.
완성. 장면 연출 → 생성 전 검증 → 대사까지 들어간 한 장의 장면 이미지 → 실제 그림 검토. 불합격이면 자동으로 다시 설계해 그립니다(기본 2회, 최대 3회). 위 제작 예시들이 이 방식입니다.
컷별로 러프를 먼저 승인받는 방식은 deprecated이며 이미 진행 중인 작업만 이어갑니다.
그림은 사용자가 고른 경로로 호스트가 그립니다. 첫 장면 전에 호스트가 실제로 쓸 수 있는 경로를 확인해, 내장 이미지 도구(추가 과금 없음)를 먼저 제안하고 API 모델(별도 키·과금)도 함께 보여 줍니다. 사용자의 답을 받아 작품별로 확정하고, 바꾸라고 할 때만 다시 묻습니다. 웹툰 결과는 소설 정본과 따로 저장되며 소설을 바꾸지 않습니다. 자세한 절차는 웹툰 제작 안내를 보세요.
왜 vibelore인가
규칙 모음으로 소설을 대신 쓰는 도구가 아닙니다. 독서 경험을 먼저 합의하고, AI의 창작 능력은 살리면서, 장편에서 쉽게 무너지는 기억·인과·일관성·승인·복구만 책임집니다.
독서 계약이 먼저. 장르명이 아니라 속도·난도·정서·보상·금기를 정하고 그 약속을 매 화 지킵니다.
인과가 장식을 이깁니다. 설정을 늘리기보다 행동·반응·결과가 이어지게 하고, 인물은 설명이 아니라 선택의 누적으로 만듭니다.
사람이 마지막 권한을 가집니다. Markdown 원고가 정본이고, advisory는 자동 수정 명령이 아닙니다.
주체 | 맡는 일 |
사용자 | 원하는 독서 경험, 중요한 취향, 최종 승인 |
호스트 AI | 아이디어 판단, 장면 구성, 산문·대사·그림 생성, 의미 비평 |
vibelore | 정본·계획 전달, 순서 보장, 충돌 검사, 검토 근거 기록, 커밋과 복구 |
Markdown 정본 | 세계·인물·본문·요약의 최종 사실 |
지원 장르
25개 장르 프리셋이 있고, 프리셋마다 추적하는 설정 항목(시간선, 회귀 지식, 관계 상태, 능력 체계 등)이 다릅니다.
회귀 헌터 악역영애 이세계 아카데미 판타지 가문 회귀 추방 복수 추리 스릴러 액션
코미디 역사 LitRPG 스트리밍 LitRPG 성장물 시스템 아포칼립스 탑 등반 이세계
수련 선협 현환 던전 코어 로맨스 판타지 SF 호러 일상 힐링 현대 도시 기타
목록에 없는 장르나 복합 장르도 됩니다. 인터뷰가 장르를 톤·서브장르·이야기 동력으로 분해해 작품 프로필로 만들고, 설정 검사는 가장 가까운 프리셋을 씁니다.
작품 언어
작품을 어떤 언어로 쓸지는 lore_profile, lore_init, lore_create가 받는 language 선택
인자로 정합니다(lore_write의 language는 저장된 언어와 일치하는지 확인만 합니다). 사용자가 집필 언어를 자연어로 밝히면 호스트가 BCP 47
태그(ja, pt-BR, zh-Hant 등)로 정규화해 넘기고, 언어를 고르지 않으면 인자를 생략합니다.
언어 키가 없는 기존 작품은 암묵적 ko입니다. 대화 언어와 작품 언어는 별개라서 한국어로
대화하면서 일본어 작품을 쓸 수 있습니다.
/absolute/path/to/my-novel에harbor_summer라는 작품을 만들고 싶어. 본문은 스페인어로 써 줘.
프롬프트는 두 계열입니다.
ko는 한국어 특화 지시문을, 그 밖의 언어(영어 포함)는 영어 공통 지시문에 목표 언어를 결합한 계열을 씁니다. 본문, 제목, 요약, 세계·인물 설명, 계획과 검토의 설명 값이 목표 언어를 따르고, JSON 키·enum·ID 같은 기계가 읽는 값은 번역하지 않습니다.분량은 언어에 맞는 단위로 잽니다. 한국어는 기존 글자 수, 그 밖의 언어는 문자소(grapheme) 또는 단어 수이며, 아랍어·히브리어처럼 결합 문자가 많은 문자 체계와 띄어쓰기가 없는 태국어도 같은 계약 안에서 다룹니다.
foundation 이전에는 새 프로필 revision을 승인해 언어를 바꿀 수 있고, 승인된 언어와 다른 값을 넘기면
LANGUAGE_CONTRACT_CONFLICT로 거부합니다. foundation을 만든 뒤에는 바꿀 수 없으며, 다른 값을 넘기면 조용히 덮어쓰지 않고WORK_LANGUAGE_IMMUTABLE로 거부합니다.회차마다 본문·요약·계획이 작품 언어로 쓰였는지 검사하고, 시점·인물 등록·세계 설정 같은 의미 불변식은 언어와 무관하게 같은 검수자가 봅니다.
웹툰도 작품 언어를 따릅니다. 대사는 번역하지 않고 작품 언어 원문 그대로 이미지에 들어가며, 이미지 프롬프트에 언어·문자 체계·읽기 방향(아랍어는 오른쪽에서 왼쪽)을 명시합니다.
허용 언어 목록은 따로 없습니다. BCP 47 태그로 식별되는 언어(런타임 Intl이 알아보는 언어)는
모두 받고, 식별되지 않는 태그만 UNKNOWN_LANGUAGE로 거부합니다. 결과 품질은 연결한 모델의 해당
언어 역량을 따릅니다. 실제로 돌려 본 인수 표본은 영어, 스페인어, 일본어, 프랑스어, 한국어, 아랍어,
번체 중국어, 태국어 8개 언어이며, 이 표본의 호스트 모델은 Claude Sonnet 5였습니다. 인자 계약의
세부는 작품 언어와 분량 단위를 참고하세요.
파일은 어디에
my-novel/
├── world/ 세계 설정 — 직접 고쳐도 됩니다
├── characters/ 인물 설정 — 직접 고쳐도 됩니다
├── chapters/ 본문 — 직접 고쳐도 됩니다
├── summaries/ 화별 요약
├── webtoon/ deprecated 컷별 작업의 승인본·SVG/HTML 마스터
└── .vibelore/ 검사 기록·복구 스냅샷·웹툰 장면 결과(webtoon/candidates/) — 건드리지 마세요원고와 제작 기록은 내 컴퓨터에 남습니다. 연결한 호스트·모델 서비스에는 요청에 필요한 원고와 참조 이미지가 전달될 수 있습니다. 경계는 보안 안내에 있습니다. 원고의 저작권은 작성자에게 있으며 이 저장소의 라이선스가 적용되지 않습니다.
모델과 비용
소설과 웹툰 그림은 모델을 따로 고릅니다.
소설: 쓰는 AI 앱의 구독
소설은 vibelore를 붙인 AI 앱(호스트)에서 지금 고른 모델이 씁니다. vibelore에 API 키를 따로 넣지 않고, 그 앱의 구독이나 API 크레딧 안에서 돕니다. 그래서 필요한 것은 쓰려는 호스트의 이용 권한입니다.
호스트 | 필요한 것 |
Claude Code | Claude 구독 또는 Anthropic API 키 |
Codex CLI | ChatGPT 요금제 또는 OpenAI API 키 |
Grok CLI | xAI 계정 |
직접 써 본 모델. 아래 모델은 실제 작품을 끝까지 써 본 조합이라 품질을 어느 정도 가늠할 수 있습니다. 결과물은 작품 목록에서 모두 볼 수 있습니다.
모델 | 경로 | 쓴 작품 |
Claude Opus 5.5 | Claude Code | 베스퍼 50화 완결, 판결 LIVE 1~3화, 길 위의 번개 5화 |
Claude Opus 5 | Claude Code | 길 위의 번개 2화 |
Claude Sonnet 5 | Claude Code | 다국어 8개 언어 1화 |
GPT-6 Sol | OpenAI API | 처형 1분 전의 황녀 1~3화, 길 위의 번개 7화 |
GPT-6 Luna | OpenAI API | 길 위의 번개 6화 |
GPT-6 Astra | Codex CLI | 길 위의 번개 1화 |
Grok 4.6 · 4.7 | Grok CLI | 길 위의 번개 3·4화 |
붙일 수는 있지만 직접 확인하지 않은 것. 품질은 보장하지 않지만 시험해 볼 수 있습니다. 써 보신 결과를 이슈로 알려 주시면 위 표에 더합니다.
다른 MCP 호스트. Gemini CLI처럼 MCP 도구를 부를 수 있는 앱이면 연결해서 그 앱의 모델(구글 Gemini 등)로 쓸 수 있습니다.
로컬 모델. Ollama·LM Studio처럼 OpenAI 호환 엔드포인트를 여는 로컬 서버를 환경 변수로 연결합니다. 긴 원고와 구조화된 응답을 안정적으로 내는 모델이어야 합니다. 웹툰 이미지 검토 요청에는 그림 파일을 첨부해 보내므로, 그림을 볼 수 있는 모델이면 검토까지 맡을 수 있습니다.
단계별 모델 배정. 기획·초고·검토 단계를 서로 다른 모델에 맡기는 힌트(modelProfile)를 줄 수 있지만,
어떤 조합이 좋은지는 아직 시험하지 않았습니다. 지금은 한 모델로 모든 단계를 돌리는 것을 권합니다.
웹툰: 호스트 내장 도구 또는 이미지 API
그림은 사용자가 고른 경로로 호스트가 그립니다. 첫 장면 전에 호스트가 실제로 쓸 수 있는 그림 경로와 모델을 확인해 모두 보여 주고, 고른 것을 작품별로 저장합니다. 각색·장면 연출·이미지 검토는 소설과 같은 호스트 모델이 맡습니다.
경로 | 비용 | 모델 |
호스트 내장 이미지 도구 (예: Codex | 호스트 구독 사용량 안, 별도 키 없음 | 호스트가 정합니다. Codex 0.159.2의 |
OpenAI 이미지 API | 실행 환경의 |
|
내장 도구가 있는 호스트에서는 그 경로를 먼저 제안합니다. Claude Code처럼 내장 도구가 없으면 API 경로를 보여 줍니다.
"이제부터 API로 그려 줘"처럼 바꾸라고 하면 모델과 비용을 다시 보여 주고, 확인한 선택만 그 작품에 씁니다.
실행이 안 되거나 한도를 넘어도 다른 경로나 모델로 임의로 바꾸지 않습니다.
공개한 작품의 그림은 모두 OpenAI API
gpt-image-2.5-sunburst로 그렸습니다. 작품마다 쓴 모델과 비용은 작품 목록의 각 작품 페이지에서 볼 수 있습니다.Gemini 같은 다른 제공사의 이미지 모델도 호스트가 경로를 보고하면 같은 방식으로 고를 수 있지만, 직접 확인하지는 않았습니다.
자세한 설정은 모델 설정을 보세요.
자주 묻는 질문
없습니다. Claude Code, Codex, Grok CLI의 채팅창이 인터페이스이고, 결과는 Markdown 원고와, 웹툰은 장면별 PNG/JPEG 이미지(글자 포함)와 scene.html로 나옵니다.
소설 집필은 호스트 구독·크레딧 안에서 돕니다. 기본 설정에서는 vibelore가 모델을 직접 호출하지 않습니다(로컬 모델을 연결한 경우 제외). 웹툰 그림은 호스트 내장 이미지 도구를 고르면 그 호스트의 사용량 안에서, 이미지 API를 고르면 그 계정의 별도 과금으로 그립니다.
아닙니다. 워크플로가 저장되므로 "이어서 해 줘"로 같은 자리에서 재개합니다. 검사를 통과한 원고만 커밋되고, 화 단위 스냅샷으로 되돌릴 수 있습니다. 문제 해결을 보세요.
됩니다. world/, characters/, chapters/는 사람이 고치라고 있는 파일입니다. 고친 뒤 "변경 사항 확인해 줘"라고 하면 영향 범위와 다음 할 일을 알려 줍니다.
hard 위반은 확정 사실과의 충돌이라 고치지만, 반전이 맞다면 설정 파일을 먼저 바꾸면 됩니다. soft 위반은 작가의 의도일 수 있어 AI가 자동으로 고치지 않고 사용자에게 묻습니다.
쓸 수 있습니다. 집필 언어는 작품을 만들 때(프로필 또는 lore_create·lore_init) 정하고, 인터뷰는 사용자가 쓰는 언어로 진행합니다. 안내 문서는 한국어 원문과 영어판(*.en.md)이 있습니다. 위 작품 언어를 보세요.
더 읽기
시작 안내 — 등록, 첫 작품, 다음 화, 막혔을 때
웹툰 제작 — 원작 범위·필수 선택, 장면 통합 제작과 검토
문제 해결과 백업 — 작업 재개, 손수정, 되돌리기, 파일 보관
모델 설정 — 텍스트·이미지 모델 선택, 비용 경로, 로컬 모델
도구 레퍼런스 — 호스트가 호출하는 도구 전체 계약
아키텍처 — 소설·웹툰 제작 구조, AI와 서버의 역할, 저장 경계
전체 문서 · 호스트별 검증 기록 · 기여 · 보안
Apache-2.0. 원고와 그림의 권리는 만든 사람에게 있습니다.
Available Tools
27 toolslore_arc_decideAIdempotent
lore_arc_plan이 만든 아크 계획을 승인해 활성화하거나 거절한다. 사용자가 계획을 보고 결정한 뒤 호출한다. 활성 아크가 있어야 lore_write가 집필할 수 있고, 활성 아크를 거절하면 lore_write가 ARC_NOT_ACTIVE로 멈춘다. 생성 뒤 새 화가 게시됐으면 승인이 status=clean_fail(STALE_VALIDATION_RECEIPT)로 거부되므로 다시 계획한다. 모델 호출 없음. 반환은 {approved, plan, instruction?}.
Inputs: action (required), workId (required), project.
lore_arc_planADestructive
다음 아크의 약속과 3~20개 얇은 회차 비트(사건·압력·전환·다음 상태)를 생성하고 구조·품질 검증을 거쳐 .vibelore/arc-plan.json에 저장한다(아크별 사본은 .vibelore/arcs/). lore_write 전에 lore_arc_status로 활성 아크가 없음을 확인했을 때, 또는 아크가 끝났을 때 호출한다. 기반과 승인된 StoryProfile·StorySpine·WriterSkill이 필요하다. pending 계획은 같은 번호로 교체한다. 활성 아크는 ARC_IN_PROGRESS로 거부한다. 사용자가 교체를 명시적으로 요청한 경우에만 replaceActive=true로 다음 번호의 아크로 교체한다. 생성·품질 판정·언어 검증에 status=needs_model이 약 3회 나온다. 반환은 {plan(episodes, quality), needsApproval, instruction}.
Inputs: workId (required), mode, project, episodes, +3 more.
lore_arc_reviewA
현재 아크에서 이미 쓴 화들을 5화 단위 체크포인트 또는 종결화까지 다시 읽고, 화별 PatternLedger와 아크 품질 리뷰(7개 차원 점수·발견 사항)를 새로 만든다. lore_write가 체크포인트마다 같은 리뷰를 자동으로 하므로 선택 도구이며, 리뷰를 수동으로 갱신하거나 다시 보고 싶을 때만 쓴다. 결과는 advisory이고 원고를 고치지 않는다. .vibelore/experience-ledger.json·pattern-ledger.json과 arc-reviews/를 덮어쓴다. 화마다 한 번, 마지막에 한 번 status=needs_model이 나온다(N+1회). 체크포인트가 아닌 화나 본문이 없는 화를 지정하면 오류.
Inputs: workId (required), project, throughChapter.
lore_arc_statusARead-onlyIdempotent
현재 아크 계획을 읽기 전용으로 조회한다. 집필 요청을 받으면 가장 먼저 호출해 활성 아크가 있는지 확인한다. 없으면 {planned:false}, 있으면 {planned:true, plan(status: pending|active|rejected|completed, episodes), nextChapter, currentEpisode}. currentEpisode는 활성 아크에 다음 화 비트가 있을 때만 채워지며, null이면 lore_arc_plan이 필요하다.
Inputs: workId (required), project.
lore_configureAIdempotent
작품 설정을 조회하거나 바꾼다. 인자 없이 호출하면 읽기 전용으로 StoryProfile·StorySpine·WriterSkill을 하나의 NarrativeContract로 묶어 status(ready|incomplete), 누락 단계(missing), 언어·분량 계약, 검토·추적 설정을 돌려준다. disabledReviews·disabledDraftSections·tracking·customTracking·mergeRecords 중 하나라도 넘기면 .vibelore/review-policy.json에 저장한다. 목록과 tracking 객체는 통째로 교체되고(빈 배열=모두 켬), mergeRecords만 누적된다. 변경은 다음 커밋부터 적용되며 이미 쓴 화는 바뀌지 않는다. 모델 호출 없음.
Inputs: workId (required), project, tracking, mergeRecords, +3 more.
lore_createA
새 작품의 기반을 모델이 자동 설계한다: 세계 사실, 3~5인 캐스트(characters/.md), 추적 엔티티를 만들어 world/setting.md와 .vibelore/에 저장한다. 보통 lore_profile → lore_profile_decide(approve) 다음에 호출하며, 그러면 StoryProfile의 엔진 장르·시점·언어·분량을 따른다. StoryProfile 없이 genre만으로도 호출할 수 있다. 직접 쓴 설정으로 시작하려면 lore_init을 쓴다. 이미 기반이 있으면 덮어쓰지 않고 거부하며, StoryProfile이 있는데 승인 전이면 거부한다. 세계·캐스트·엔티티·언어 검증마다 status=needs_model을 돌려주므로 lore_resume을 여러 번 이어야 하고, 모두 끝나기 전에는 아무 파일도 저장하지 않는다. 성공하면 {created:true, genre, language, length, worldFacts(개수), characters[{id,name,contradiction}], entities[{id,kind,name}]}. 다음 단계는 lore_story_plan.
Inputs: brief (required), title (required), workId (required), genre, +6 more.
lore_decideA
lore_write가 guided 모드에서 status=awaiting_approval로 돌려준 원고에 대한 사용자 결정을 적용한다. 사용자에게 원고와 advisory를 보여 주고 답을 받은 뒤에만 호출한다. approve는 검사 영수증을 다시 확인하고 그 화를 커밋한다(chapters/·summaries/·상태·스냅숏, status=completed). request_revision은 feedback대로 같은 워크플로에서 고치게 하며 다음 lore_write가 수정·재검사한다. hold는 기록만 남기고 승인 대기를 유지한다. reject는 워크플로를 끝내며 다음 lore_write가 같은 화를 새로 쓴다. 원고 파일은 지우지 않는다. approvalId는 원고가 승인 대기에 다시 들어갈 때마다 새로 발급되므로 이전 id는 거부된다.
Inputs: action (required), workId (required), approvalId (required), project, +1 more.
lore_initAIdempotent
작가가 직접 채울 빈 작품 기반(world/setting.md, 빈 chapters·summaries·characters 디렉터리, .vibelore/foundation.json)을 만들거나, world/setting.md가 이미 있는 디렉터리를 쓰기 없이 이어받는다. 모델이 세계·인물을 자동 설계하게 하려면 이 도구 대신 lore_profile → lore_profile_decide → lore_create를 쓴다. lore_create는 기반이 있으면 거부하므로 둘 중 하나만 쓴다. 새 작품은 언어 계약 검증 때문에 보통 status=needs_model을 한 번 돌려주며 lore_resume으로 답해야 저장된다. 재호출은 덮어쓰지 않고 adopted=true와 현재 상태를 돌려준다.
Inputs: genre (required), workId (required), povMode, project, +3 more.
lore_profileADestructive
새 작품 설계의 첫 단계. 작품 발견 인터뷰의 브리프를 StoryProfile(엔진 장르·독서 계약·읽기 난도·이야기 동력·시점·문체 지침·언어·분량)로 컴파일해 .vibelore/story-profile.json에 저장한다. review 결과의 designReview에는 누적된 설계 결정과 최대 5개의 열린 질문이 담긴다. 질문을 사용자에게 모두 보여 주고 답을 feedback으로 넘겨 다시 호출하며, 열린 질문이 없거나 사용자가 승인하면 lore_profile_decide로 확정한다. 호출할 때마다 모델이 새로 생성해 기존 프로필을 교체한다(active였어도 review면 pending으로 돌아가 이후 단계가 막힌다). 생성과 언어 검증에 status=needs_model이 1~3회 나오며 lore_resume으로 답하기 전에는 저장하지 않는다. 기반 생성 뒤에는 언어를 바꿀 수 없다.
Inputs: brief (required), workId (required), mode, length, +3 more.
lore_profile_decideAIdempotent
lore_profile이 만든 StoryProfile을 승인(active)하거나 거절(rejected)한다. 승인은 사용자가 현재 설계를 명시적으로 받아들였거나 열린 질문이 없을 때만 한다. 승인하면 읽기 난도 계약도 사용자 확인으로 기록된다. 모델 호출 없음. 프로필이 없으면 오류. 반환은 {approved, profile, instruction?}. 승인 뒤 lore_create(새 작품) 또는 lore_story_plan(기반이 이미 있을 때)으로 진행한다.
Inputs: action (required), workId (required), project.
lore_profile_statusARead-onlyIdempotent
StoryProfile만 읽기 전용으로 조회한다. 없으면 {profiled:false}, 있으면 {profiled:true, profile(status: pending|active|rejected, designReview 포함), language, length}. 새 작품을 시작하기 전에 프로필이 필요한지 판단할 때 쓴다. 작품 전체 진행은 lore_status, 설정 누락 점검은 lore_configure를 쓴다.
Inputs: workId (required), project.
lore_resumeADestructive
status=needs_model 로 중단된 작업을 이어받는다. requests 의 각 질문에 답한 텍스트를 answers 에 { id: 답변 } 형태로 넘기면 중단 지점부터 계속한다. 한 응답의 requests는 서로 독립이므로 모두 답해 한 번에 넘긴다. 원래 도구를 처음 받은 인자 그대로 다시 실행하므로 인자를 바꾸려면 원래 도구를 새로 호출한다. 재개된 도구의 부작용(저장·교체·커밋)을 그대로 가진다. 다음 단계에 새 모델 작업이 필요하면 새 requests와 함께 needs_model을 다시 돌려주므로 여러 번 이어지는 것이 정상이다. 빈 answers나 맞지 않는 id는 작업을 끝내지 않고 같은 requests를 다시 돌려준다. runId는 첫 생성 후 24시간 뒤 만료되고 완료되면 삭제된다. 답을 멈추면 소설·설계 도구는 needs_model 응답의 deterministicResult가 유일한 결과이고(lore_write는 멈춘 workflow 식별 정보뿐이며 awaiting_model로 남는다), 웹툰은 같은 단계에서 대기하며 lore_workflow_status(lane=webtoon)로 확인한다.
Inputs: runId (required), workId, answers, project. Returns: needs_model은 runId와 requests를 반환한다. 완료 응답은 원래 도구의 설계·집필·웹툰 결과이며 error는 구조화 오류다.
lore_rollbackADestructive
지정 화의 스냅숏으로 정본과 기계 상태를 되돌린다. 사용자가 이미 커밋된 화들을 취소하겠다고 명시했을 때만 호출하고, 먼저 lore_snapshot_status로 대상 화를 확인한다. 손수정 반영은 lore_sync를 쓴다. 파괴적: world/·characters/·chapters/·summaries/를 지우고 스냅숏으로 복원하므로 그 화 이후 원고가 작업 트리에서 사라진다. 진행 중인 워크플로, 대기 중인 lore_resume runId, 검사 영수증도 지워지고 이후의 lore_configure·lore_style_anchor 변경도 되돌아간다. 되돌리기 전 상태는 .vibelore/rollback-archives//에 보존되지만 복원 도구는 없어 수동으로 되살려야 한다. 모델 호출 없음. 반환은 {rolledBackTo, archiveId, archive, recoverable:true, publication}.
Inputs: workId (required), chapter (required), project.
lore_snapshot_statusARead-onlyIdempotent
lore_rollback으로 되돌아갈 수 있는 화 번호 목록을 읽기 전용으로 조회한다. 스냅숏은 커밋할 때마다 .vibelore/snapshots/<화>/에 자동 생성되며 같은 화를 다시 커밋하면 교체된다. 반환은 {snapshots:[화 번호 오름차순]}이며 생성 시각 같은 상세는 없다. 롤백 전에 대상 화가 있는지 확인할 때 쓴다.
Inputs: workId (required), project.
lore_statusARead-onlyIdempotent
작품 전체 진행 요약을 읽기 전용으로 조회한다. 게시된 정본(Published HEAD) 기준 화수·다음 화 번호·등장인물·세계 사실 수·미해결 떡밥·아크 진행·StoryProfile 상태와, 손수정 여부를 뜻하는 workingTree(clean·modified 등)를 돌려준다. 작품이 없으면 오류 대신 initialized=false를 돌려준다. 진행 중인 한 화의 단계는 lore_workflow_status, 설정 누락 점검은 lore_configure, 개별 계획 내용은 lore_*_status로 본다. workingTree가 clean이 아니면 집필 전에 lore_sync를 호출한다.
Inputs: workId (required), project.
lore_story_decideAIdempotent
lore_story_plan이 만든 StorySpine을 승인(active)하거나 거절(rejected)한다. 사용자가 StorySpine 내용을 보고 결정한 뒤 호출한다. 모델 호출 없음. StorySpine이 없으면 오류. 반환은 {approved, spine}. 승인 뒤 다음 단계는 lore_writer_skill.
Inputs: action (required), workId (required), project.
lore_story_planADestructive
작품 전체 StorySpine(처음부터 결말까지의 인과 사슬, 인물 동력, 중간 재해석, 최종 선택의 대가)을 생성하고 구조·품질 검증을 거쳐 .vibelore/story-spine.json과 world/story-spine.md에 저장한다. 순서는 lore_create 다음, lore_writer_skill 앞이며 기반과 승인된 StoryProfile이 필요하다. 아크 단위 계획은 lore_arc_plan이 따로 만든다. 호출할 때마다 기존 StorySpine을 이력 없이 교체한다(review면 pending으로 돌아가 이후 단계가 막힌다). 생성·품질 판정·언어 검증에 status=needs_model이 약 3회 나오며 모두 답하기 전에는 저장하지 않는다. 검증에 떨어지면 오류로 끝나고 저장하지 않는다. 반환은 {spine(quality 포함), needsApproval}.
Inputs: workId (required), mode, project, feedback, +1 more.
lore_story_statusARead-onlyIdempotent
StorySpine만 읽기 전용으로 조회한다. 없으면 {planned:false}, 있으면 {planned:true, spine(status: pending|active|rejected, 인과 사슬·인물 동력·quality)}. 아크 계획은 lore_arc_status, 작품 전체 진행은 lore_status로 본다.
Inputs: workId (required), project.
lore_style_anchorAIdempotent
사용자가 좋다고 승인한 정본 1~3화를 작품의 문체 기준으로 고정하거나 현재 기준을 조회한다. 자동으로 최신 화를 기준으로 삼지 않으므로 사용자가 특정 화를 좋다고 말했을 때만 approve한다. action=status(기본)는 읽기 전용이고 기준이 없으면 status=missing. approve는 .vibelore/style-anchor.json의 이전 기준을 새 기준으로 교체하고 {status:active, anchor(revision·발췌·기준 지문)}를 돌려준다. 모델 호출 없음. 초고 요청에서 기준 예시를 빼려면 lore_configure의 disabledDraftSections에 style-anchor를 넣는다.
Inputs: workId (required), action, reason, project, +1 more.
lore_syncA
Published HEAD 이후 사람이 world/·characters/·chapters/에서 직접 고친 Markdown을 정본에 반영한다. lore_status나 lore_write가 working-tree drift(needs_sync)를 보고하면 집필 전에 이 도구를 쓴다. 공백만 바뀐 편집은 무시한다. 3단계 승인 흐름: inspect(기본)는 변경을 분류만 한다(기준 지문 갱신 외 쓰기 없음). validate는 마지막 화 손수정이면 재검사(모델 작업→needs_model→lore_resume), 세계·인물 변경이면 바뀐 항목과 영향받는 계획을 보여 주고 approvalId를 발급한다. apply는 그 approvalId로 새 정본을 게시한다. approvalId는 한 번만 쓸 수 있고 validate 이후 파일이 또 바뀌면 STALE_SYNC_CANDIDATE로 거부된다. 이전 화 손수정은 반영하지 않으므로(rewrite_refold_required) 되돌려야 한다.
Inputs: workId (required), action, project, approvalId.
lore_webtoon_sceneA
기본 웹툰 제작 경로. 소설 정본의 한 장면을 대사가 작품 언어 원문으로 들어간 이미지 한 장으로 만든다. 원작→영어 장면 연출→생성 전 검증→문자 포함 장면 이미지→실제 시각 검토 순서이며 컷 배치와 카메라는 이미지 모델에 맡긴다. 호출 전에 webtoon-discovery-interview로 원작 범위·화풍·참조·칸 수·이미지 모델을 사용자와 정한다. 서버는 이미지를 직접 생성하지 않는다: needs_scene_image일 때 jobs의 요청을 호스트가 사용자가 고른 경로(hostRequest=호스트 내장 도구, apiRequest=API·별도 과금)로 실행하고 결과 파일을 asset으로 넘긴다. 선택이 없는 작품은 start가 needs_image_runtime으로 호스트의 실제 이미지 경로 보고(imageRuntime)를 받고, needs_image_choice로 선택지 전체를 사용자에게 보여 확정한다(내장 경로를 먼저 제안). 확정한 선택은 changeImageChoice로 바꾸기 전까지 재사용한다. 모델 단계(연출·검증·시각 검토)는 needs_model→lore_resume, 칸 수가 없으면 needs_interview. 상태는 .vibelore/webtoon/에 저장하고 소설 정본과 프로젝트 webtoon/ 폴더는 건드리지 않는다. 진행 중 워크플로가 있으면 start는 WEBTOON_WORKFLOW_ACTIVE로 거부되므로 revise나 retry로 끝낸다. 시각 검토를 통과하면 status=completed. 기존 컷별 workflow는 변경하지 않는다.
Inputs: workId (required), asset, action, project, +15 more.
lore_workflow_historyARead-onlyIdempotent
워크플로의 감사 이력(단계 전환·검토 발견·승인·커밋 이벤트)을 읽기 전용으로 조회한다. 현재 상태만 필요하면 lore_workflow_status를 쓴다. 반환은 {found, workflowId, events, modelExchanges?}. includeModelExchanges=true이면 선택된 이벤트의 실제 모델 요청과 응답 전문까지 돌려주므로 응답이 커진다. 대체된 이전 워크플로도 id로 조회할 수 있다.
Inputs: workId (required), lane, limit, project, +2 more.
lore_workflow_statusARead-onlyIdempotent
진행 중인 한 화(또는 웹툰 장면) 워크플로의 현재 단계, 시도 횟수, 다음 행동과 품질 결과를 읽기 전용으로 조회한다. 작품 전체 진행은 lore_status, 지난 이벤트는 lore_workflow_history를 쓴다. 소설은 {active, workflow(원고 본문 제외), resume?}를 돌려주며 워크플로가 없으면 {active:false}. 모델 응답 대기 중이면 resume.runId로 lore_resume을 이어갈 수 있다. lane=webtoon은 현재 웹툰 워크플로 상태를 돌려주며 status가 곧 단계다.
Inputs: workId (required), lane, detail, project, +1 more.
lore_writeA
다음 화의 계획 확인부터 원본 초고 프롬프트, 의미·논리 검사(최대 3회, 그 사이 최소 수정 최대 2회), 검사 영수증, 승인·커밋까지 순서대로 실행하는 기본 집필 도구다. 소설을 이어 쓸 때는 이 도구만 호출한다. 항상 마지막 화의 다음 화를 쓰며 기존 화를 덮어쓰지 않는다. 같은 화의 진행 중 워크플로가 있으면 새로 만들지 않고 이어간다. 모델 작업마다 status=needs_model을 돌려주므로 lore_resume으로 답한다. 준비가 덜 됐으면 status=needs_setup(FOUNDATION_MISSING·PROFILE_NOT_ACTIVE·STORY_SPINE_NOT_ACTIVE·WRITER_SKILL_NOT_ACTIVE·ARC_NOT_ACTIVE), 손수정이 있으면 needs_sync(→lore_sync)를 돌려준다. guided는 검사를 마친 원고를 status=awaiting_approval과 approvalId로 돌려주며 lore_decide로 결정한다. auto는 검사를 통과하면 chapters/·summaries/·상태·스냅숏을 커밋하고 status=completed를 돌려준다. 실패는 clean_fail·validation_incomplete·provider_error.
Inputs: workId (required), project, autonomy, language, +4 more. Returns: 집필 상태별 응답. needs_model은 lore_resume, awaiting_approval은 lore_decide, needs_sync…
lore_writer_decideAIdempotent
lore_writer_skill이 오디션으로 고른 WriterSkill을 승인(active)하거나 거절(rejected)한다. 다른 후보로 바꾸는 기능은 없으므로 원하지 않으면 거절 후 feedback과 함께 다시 생성한다. 모델 호출 없음. WriterSkill이 없으면 오류. 반환은 {approved, skill}. 승인 뒤 다음 단계는 lore_arc_plan.
Inputs: action (required), workId (required), project.
lore_writer_skillADestructive
이 작품을 쓸 WriterSkill(장면 판단·정보 지연·보상 지급·반복 고착 방지 방식)을 서로 다른 후보 3개로 만들고, 후보별 짧은 산문 오디션을 판정 모델이 비교해 하나를 고른다. 표면 문체가 아니라 서술 판단을 설계한다. 순서는 lore_story_decide(approve) 다음, lore_arc_plan 앞이며 기반과 승인된 StorySpine이 필요하다. 문체 예시를 고정하는 lore_style_anchor와는 다르다. 호출할 때마다 기존 WriterSkill을 이력 없이 교체해 .vibelore/writer-skill.json과 world/writer-skill.md에 저장한다. 후보 생성·오디션 판정·언어 검증에 status=needs_model이 약 3회 나온다. 반환은 {skill(선택 후보와 점수), candidates, needsApproval}.
Inputs: workId (required), mode, project, feedback.
lore_writer_statusARead-onlyIdempotent
WriterSkill만 읽기 전용으로 조회한다. 없으면 {planned:false}, 있으면 {planned:true, skill(status: pending|active|rejected, 선택 후보, 후보 3개와 오디션 산문·점수)}. 사용자에게 오디션 결과를 보여 줄 때 쓴다. 문체 기준 예시는 lore_style_anchor, 작품 전체 진행은 lore_status로 본다.
Inputs: workId (required), project.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 27 tools
Descriptions are unusually thorough and explicitly cross-reference sibling tools (e.g. lore_profile_status points to lore_status and lore_configure; lore_workflow_status points to lore_workflow_history), which strongly aids selection. However, the large cluster of status/getter tools (lore_status, lore_story_status, lore_profile_status, lore_writer_status, lore_arc_status, lore_snapshot_status, lore_workflow_status) and the five *_decide tools create real overlap risk, and the generic lore_decide (for lore_write approvals) sits confusingly alongside the entity-scoped deciders.
Nearly all 27 tools use a consistent lore_<noun> / lore_<noun>_<verb> snake_case convention (lore_story_plan, lore_arc_decide, lore_writer_status). Minor deviations exist: bare-verb names like lore_write, lore_sync, lore_init, and the generic lore_decide breaks the otherwise predictable <entity>_decide pattern.
At 27 tools this is heavy and pushes past the comfortable 3-15 range, so the surface is broad and requires the agent to hold a lot of context. A novel-orchestration domain with distinct lifecycle stages can plausibly justify it, but several status/decide variants inflate the count beyond the strict minimum.
The lifecycle is well covered: profile, init/create, story spine, writer skill, arc planning, writing, approval, sync of manual edits, rollback, snapshots, configuration, style anchoring, and a webtoon branch, with status tools for each artifact. Minor gaps remain (e.g. no restore tool from rollback archives, webtoon only exposes a single scene tool), but core workflows have no dead ends.
Maintenance
Related MCP Connectors
A home for your agents: an owned book of record any AI agent can write to, with provenance and undo.
Hosted agent memory with provenance, contradiction surfacing, and snapshot rollback.
Design, save, and run outcome-aligned AI workflows and verifiers, with reliable image output.
A blog CMS that AI agents write into over MCP: Markdown drafts, versions, media, human approval.
Related MCP Servers
- FlicenseCqualityDmaintenanceA multi-agent book-writing MCP server that manages a guarded chapter pipeline (writer → editor → third-pass agents → approve) with project planning, continuity tracking, and export/diff helpers.35-
- AlicenseCqualityDmaintenanceProvides local desktop agents with durable project memory and safety gates for writing long novels, enabling continuity management, chapter drafting, and state-aware handoffs.313MIT
- AlicenseAqualityCmaintenanceEnables AI tools to collaboratively write novels by managing chapters, characters, and story state through commands like validate, context, draft, review, and approve.8MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI-driven long-form novel creation and management, including chapter generation, character and timeline tracking, semantic memory retrieval, version savepoints, and deep consistency checking across multiple projects through MCP tools, with support for local LM Studio or any OpenAI-compatible API.16MIT