사용 설명서 › Slima MCP › 쓰기가 거부될 때
쓰기가 거부될 때
마지막 업데이트 2026년 9월 9일 · 약 8분 소요
한 줄로: 쓰기가 거부되는 원인들을 어떻게 구별하는지, 그리고 원인마다 다음에 무엇을 해야 하는지 정리했습니다.
다시 보내기 전에 코드를 읽으십시오
거부된 쓰기에는 서로 무관한 원인이 여러 개 있고, 해결책도 서로 통하지 않습니다. 그것들을 구별하는 수단이 오류 코드입니다.
| 오류 코드 | 상태 | 뜻 | 다음에 할 일 |
|---|---|---|---|
AI_READONLY_FILE_TYPE |
403 | 이 종류는 통째 쓰기를 받지 않습니다 | 구조화 파일이면 메시지가 지목한 update_*를 쓰십시오. .character / .json 같은 종류는 대안이 없습니다 |
SUBSCRIPTION_REQUIRED |
403 | 이 기능은 구독 플랜에 속합니다 | 읽기는 제한되지 않습니다. 읽고 나서 권하는 변경을 말로 설명하십시오 |
INVALID_PATH |
400 | 예전 시나리오 스튜디오 작품에서 기획 폴더 밖에 쓰려고 했습니다 | .script_studio/planning/ 아래에 쓰십시오 |
FOLDER_NOT_EMPTY |
422 | 지우려는 폴더 안에 내용물이 있습니다 | 그럴 의도였다면 recursive: true를 붙여 다시 보내십시오 |
이 네 가지 가운데 같은 인자를 다시 보내서 성공으로 바뀌는 경우는 하나도 없습니다.
1 · 구조화 파일: 메시지가 쓸 도구를 지목합니다
.map, .beats, .timeline, .script, .geomap에 write_file이나 edit_file, append_to_file을 겨누면 이런 응답이 돌아옵니다.
.map files are structured documents — a generic write would corrupt them.
Use POST /api/v1/books/:book_token/mcp/files/structured (the MCP client
exposes it as update_relationship_map): it takes one field-level operation at
a time, so the parts of the document you were never shown cannot be dropped.
If update_relationship_map is not in your tool list, your Slima MCP client is
older than this server — ask the author to update the Slima MCP package.
A missing tool always means an out-of-date client; nothing about this account
ever hides a tool from you.
여기에 두 가지가 담겨 있습니다. 어느 도구를 써야 하는지, 그리고 그 도구가 목록에 없을 때 어떻게 해야 하는지입니다. 뒤쪽이 중요합니다. 0.2.0에는 그 도구들이 없고 서버는 통째 쓰기도 받지 않으니, 낡은 클라이언트는 두 길이 다 막힌 상태입니다. 업그레이드 방법은 slima-mcp 버전은 어떻게 동작하는가에 있습니다.
.character, .location, .json, .yaml은 같은 코드를 돌려주지만 대안을 알려 주는 문장은 없습니다. 파일을 읽고, 무엇을 어떻게 바꾸면 좋을지 말로 설명하십시오.
2 · 구독 관문: 읽기는 결코 제한되지 않습니다
플랜이 구조화 파일 쓰기를 열지 않은 상태라면 코드는 SUBSCRIPTION_REQUIRED이고, 메시지는 이렇게 옵니다.
Writing .map files is part of Slima's subscription plans. Reading them is not
restricted — read the file and describe the change you recommend, and the
author can make it in the app or subscribe to let you make it directly.
(Credits bought as a one-off pack cover AI usage inside the Slima app;
structured file writing goes with a plan.)
여기서 따라오는 것이 셋입니다.
- 읽기는 전혀 영향받지 않습니다. 무료 계정의 AI도 작품 안의 모든
.map과.timeline을 읽습니다. 고칠 수만 없습니다. - 기준은 플랜이고, 돈을 낸 적이 있는지가 아닙니다. 일회성 크레딧 팩은 Slima 앱 안의 AI 사용량을 위한 것이고, 구조화 파일 쓰기를 열어 주지 않습니다.
- 삭제도 쓰기와 같은 관문을 지납니다. 무료 계정에서는
.map을 만들 수도, 고칠 수도, 지울 수도 없습니다.
이때 쓸모 있는 대응은 재시도가 아닙니다. 파일을 읽고 무엇을 어떻게 바꿀지 정확히 말해서, 작가가 앱에서 하도록 하는 것입니다.
3 · 예전 시나리오 스튜디오 작품: INVALID_PATH
그 작품이 예전 시나리오 스튜디오 작품이라면 완전히 별개의 규칙 체계가 적용되고, 기준은 경로입니다. 쓸 수 있는 영역은 .script_studio/planning/ 트리뿐이며, series.json, *.character, *.location, *.scene, *.storyline, *.note, 그리고 .script_studio/planning/.initialized는 MCP에서 전부 읽기 전용입니다.
.script_studio/planning/scene-3-1-revision.md ← 쓸 수 있음
Episodes/03/scene-1.scene ← 400 INVALID_PATH
길은 하나입니다. 제안을 그 planning 트리에 써 두고, 작가가 앱에서 반영하게 하는 것입니다. 시도하기 전에 규칙을 알고 싶다면 slima://books/{book_token}/schema 리소스를 읽거나, 그냥 get_book을 호출하십시오. 이런 작품에 대해서는 쓰기 제한을 스스로 출력해 줍니다.
4 · 가장 놓치기 쉬운 경우: 성공했는데 파일이 비어 있습니다
create_file은 구조화 확장자 다섯 종류에서 거부되지 않습니다. 성공합니다. 그리고 서버가 써 넣은 것은 빈 골격이고, 보낸 내용은 버려집니다. 응답에도 그렇게 분명히 적혀 옵니다.
실패가 아니기 때문에 「만들었다」로 읽힙니다. 올바른 순서는 두 단계입니다. create_file로 빈 파일을 만들고, update_* 배치로 채워 넣습니다.
파일 종류와 무관한 두 가지 원인
- 작품이 휴지통에 있습니다. 휴지통에 들어간 작품에는 쓸 수 없습니다. 먼저 복원하십시오.
- 작품이 공유받은 것입니다. 그 작품에 쓰기 수준의 권한이 없으면 읽기만 됩니다.
거부를 우회하지 마십시오
Slima의 MCP 오류는 메시지만 읽고 고칠 수 있게 쓰여 있습니다. 없는 id를 보내면 진짜 id가 함께 오고, 없는 장소 계층을 보내면 진짜 계층이 함께 오고, 필드를 엉뚱한 작업에 넣으면 그 필드가 어느 작업의 것인지 알려 줍니다. 우회의 비용은 작가가 치르고, 메시지를 읽는 비용은 여러분이 치릅니다. 뒤쪽이 훨씬 쌉니다.
관련 문서
- Docs: 구조화 파일 보호
- Docs: 구조화 편집 도구
- Docs: slima-mcp 버전은 어떻게 동작하는가
- Docs: MCP가 파일 종류별로 할 수 있는 일
- Docs: MCP에 연결되지 않을 때: 401 / Authorization 헤더
앱을 열고 내 책으로 같은 과정을 따라 해 보십시오. 무료로 시작할 수 있고 신용카드는 필요 없습니다.