الدليل › Slima MCP › استعلام مخطّط الكتاب عبر المورد
استعلام مخطّط الكتاب عبر المورد
آخر تحديث 9/09/2026 · قراءة 8 دقيقة
ليس في MCP أدوات فقط — بل موارد أيضاً. ومورد المخطّط من أبرزها: يُخبر الذكاء الاصطناعي بصلاحيات الكتاب بدقّة.

كيف يُستخدم
Resource URI: slima://books/{book_token}/schema
عملاء MCP يستطيعون قراءة الموارد مباشرة — بلا استدعاء أداة.
# شِبه كود (يعتمد على واجهة مورد العميل)
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) — لكن استدعاء المخطّط أولاً يتيح معرفة مسبقة بأن المسار للقراءة فقط، بلا استدعاء API مهدور.
مسار العمل الموصى به للذكاء الاصطناعي
1. list_books ← احصل على book_token
2. read_resource(slima://books/{token}/schema) ← احصل على القواعد
3. خطّط للقراءات / الكتابات بأمان وفق القواعد
4. نفّذ
بعض عملاء MCP يوسّعون الموارد تلقائياً للذكاء الاصطناعي — لا يحتاج الذكاء إلى استدعاء صريح.
مخطّط كتاب استوديو الكتابة
{
"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: مع النوع المُهيكل ينشئ مستندًا فارغًا بالشكل الصحيح ويتجاهل ما ترسله من محتوى، فتنشئ أولًا ثم تملأ بالأداة.
وهذه الكتلة تُشحن مع العميل وقد تتأخر عن نشر الخادم. وعند الاختلاف فـget_capabilities هو الصحيح — وهذا ما يقوله حقل authority.
مقالات ذات صلة
افتح التطبيق وطبّق الخطوات على كتابك. ابدأ مجانًا، من دون بطاقة ائتمان.