사용 설명서 › Slima MCP › schema 리소스로 작품 권한 정확하게 조회하기
schema 리소스로 작품 권한 정확하게 조회하기
마지막 업데이트 2026년 9월 9일 · 약 8분 소요
MCP에는 툴(tools)만 있는 것이 아닙니다 — 리소스(resources) 도 있습니다. schema 리소스는 그중에서도 핵심인데, 작품 하나의 정확한 권한 규칙을 AI에게 알려줍니다.

사용 방법
Resource URI: slima://books/{book_token}/schema
MCP를 지원하는 클라이언트는 툴을 호출할 필요 없이 리소스를 직접 읽어올 수 있습니다.
# 의사 코드 (실제 호출 방식은 클라이언트의 resource API에 따라 다름)
schema = read_resource("slima://books/bk_xxx/schema")
반환되는 내용
{
"book_token": "bk_xxx",
"book_type": "script",
"studio_label": "Script Studio",
"mcp_capabilities": {
"readable_paths": "Any path within the book tree ...",
"writable_paths": [".script_studio/planning/**/*"],
"writable_exceptions": [".script_studio/planning/.initialized"],
"readonly_paths": [
".script_studio/series.json",
".script_studio/seasons/**/season.json",
".script_studio/seasons/**/episodes/**/episode.json",
".script_studio/seasons/**/scenes/*.scene",
".script_studio/characters/**/*.character",
".script_studio/locations/**/*.location",
".script_studio/storylines/**/*.storyline",
".script_studio/notes/**/*.note",
".script_studio/planning/.initialized"
],
"write_access_note": "..."
},
"ai_file_policy": {
"writable": [".md", ".markdown", ".txt"],
"field_level_tools": {
".beats": "update_beat_board",
".timeline": "update_timeline",
".script": "update_script",
".map": "update_relationship_map",
".geomap": "update_world_map"
},
"readonly": [".character", ".location", ".json", ".yaml", ".yml"],
"authority": "get_capabilities"
},
"structured_file_types": { "*.scene": "...", "*.character": "..." },
"policy_source": "Rails: Mcp::FileOperationService#validate_studio_write_path!"
}
이 리소스가 존재하는 이유
*.scene 같은 경로에 직접 쓰기를 시도하면 어차피 400 에러로 막힙니다 — 하지만 schema를 먼저 호출하면 그 경로가 read-only라는 사실을 미리 알 수 있어서, API 호출 한 번을 헛되이 낭비하지 않아도 됩니다.
AI에게 권장하는 워크플로
1. list_books → book_token 확보
2. read_resource(slima://books/{token}/schema) → 권한 규칙 확보
3. 규칙에 맞춰 안전하게 read / write 계획 수립
4. 실제 작업 실행
일부 MCP 클라이언트는 리소스를 자동으로 AI에게 펼쳐서 보여주기 때문에, AI가 명시적으로 호출할 필요가 없습니다.
글쓰기 스튜디오 작품의 schema
{
"book_token": "bk_xxx",
"book_type": "book",
"studio_label": "Writing Studio",
"mcp_capabilities": {
"writable_paths": ["**/*"],
"readonly_paths": []
},
"ai_file_policy": {
"writable": [".md", ".markdown", ".txt"],
"field_level_tools": {
".beats": "update_beat_board",
".timeline": "update_timeline",
".script": "update_script",
".map": "update_relationship_map",
".geomap": "update_world_map"
},
"readonly": [".character", ".location", ".json", ".yaml", ".yml"],
"authority": "get_capabilities"
},
"structured_file_types": {}
}
경로와 파일 형식은 서로 다른 질문입니다. 하나로 읽지 마십시오.
mcp_capabilities는 경로에 대한 답입니다. 글쓰기 스튜디오 책에서는 모든 경로에 쓸 수 있습니다.
ai_file_policy는 형식에 대한 답이며, 두 스튜디오 모두에 적용됩니다. 범용 쓰기 도구(write_file, edit_file, append_to_file, delete_file)는 원고만 다룹니다 — .md, .markdown, .txt. field_level_tools 아래의 다섯 형식은 거기 적힌 도구로 한 번에 한 필드씩 고칩니다. 문서 전체 쓰기는 거부되는데, 모델이 보지 못한 부분을 떨어뜨리기 때문입니다. 이들에 쓰려면 유료 플랜이 필요하고, 읽기에는 필요 없습니다. readonly 아래의 형식은 아예 쓸 수 없습니다.
기억해 둘 예외는 create_file입니다. 구조 파일에는 형태가 맞는 빈 문서를 만들고 보낸 내용은 무시하므로, 먼저 만든 뒤 도구로 채우는 흐름이 됩니다.
이 블록은 client와 함께 배포되므로 서버 배포보다 늦을 수 있습니다. 둘이 어긋나면 get_capabilities가 맞습니다 — authority 필드가 말하는 바가 그것입니다.
관련 문서
앱을 열고 내 책으로 같은 과정을 따라 해 보십시오. 무료로 시작할 수 있고 신용카드는 필요 없습니다.