사용 설명서 › Slima MCP › schema 리소스로 작품 권한 정확하게 조회하기

schema 리소스로 작품 권한 정확하게 조회하기

마지막 업데이트 2026년 9월 9일 · 약 8분 소요

MCP에는 툴(tools)만 있는 것이 아닙니다 — 리소스(resources) 도 있습니다. schema 리소스는 그중에서도 핵심인데, 작품 하나의 정확한 권한 규칙을 AI에게 알려줍니다.

Slima 계정의 연결된 앱 페이지 — schema 리소스로 권한을 조회하는 MCP 클라이언트가 여기에 표시되며, MCP Remote 토큰은 slima_********로 마스킹되어 있습니다

사용 방법

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 필드가 말하는 바가 그것입니다.

관련 문서

Slima에서 직접 해 보기

앱을 열고 내 책으로 같은 과정을 따라 해 보십시오. 무료로 시작할 수 있고 신용카드는 필요 없습니다.

Slima 열기
도움이 되었습니까?