Nightbreak Forge
Read-only knowledge of Nightbreak Minecraft plugins: wiki, source, config schemas and validation.
사용해야 할까요
품질 및 안전성
발견 사항 (2)
- LOWfetch_plugin_source_file에서
- LOWfetch_wiki_page에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"forge": {
"url": "https://forge.nightbreak.io/mcp"
}
}
}원격 엔드포인트
https://forge.nightbreak.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (10)
🟢search_plugin_source(query, repos, mode, path_prefix, max_results)
Search the EliteMobs, MagmaCore, BetterStructures, FreeMinecraftModels, CannonRTP and ResurrectionChest source code for a query. By default searches every mirrored repo by file content (grep). MagmaCore contains shared core functionality (Lua engine, base entity tables, scripting helpers) used by every plugin — always check it for hooks, helpers, or context methods that feel like they should be common across plugins. FreeMinecraftModels (freeminecraftmodels) has its own LuaItemTable / LuaPropTable and prop-specific hooks. Use this BEFORE answering plugin-specific questions or generating Lua/YAML files.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Text or regex to grep for. Symbol names, hook names, error messages."
},
"repos": {
"type": "array",
"items": {
"type": "string",
"enum": [
"elitemobs",
"magmacore",
"betterstructures",
"freeminecraftmodels",
"cannonrtp",
"resurrectionchest"
]
},
"description": "Optional. Defaults to every mirrored repo."
},
"mode": {
"type": "string",
"enum": [
"content",
"path"
],
"description": "\"content\" (default) greps file contents; \"path\" matches file paths."
},
"path_prefix": {
"type": "string",
"description": "Optional. Restrict to a subdirectory like \"src/main/java/\"."
},
"max_results": {
"type": "number",
"description": "Default 20."
}
},
"required": [
"query"
]
}🟢fetch_plugin_source_file(repo, path, line_start, line_end)
Fetch a file from a mirrored plugin source repo. Optional line slicing for large files.
입력 스키마
{
"type": "object",
"properties": {
"repo": {
"type": "string",
"enum": [
"elitemobs",
"magmacore",
"betterstructures",
"freeminecraftmodels",
"cannonrtp",
"resurrectionchest"
]
},
"path": {
"type": "string",
"description": "Repo-relative path, e.g. \"src/main/java/com/magmaguy/elitemobs/powers/lua/LuaPowerRuntime.java\"."
},
"line_start": {
"type": "number",
"description": "Optional. Read from this line (1-indexed)."
},
"line_end": {
"type": "number",
"description": "Optional. Read up to and including this line."
}
},
"required": [
"repo",
"path"
]
}🟢get_local_lua_reference(script_type, scope)
Read the current Nightbreak Forge local Lua validator/editor reference. Use this to see which hooks, fields, methods, exact values, and handle helpers the editor currently knows about. **Pass `script_type` matching the file you are working on:** `"lua-power"` (default, EliteMobs boss powers — includes context handles, `em`, and exact values), `"fmm-script"` (FMM props), or `"npc-script"` (EliteMobs NPC scripts in `npc_scripts/`), or `"mind-behavior"` (EliteMobs Mind AI programs in `behaviors/`, selected by a boss's `behavior` field), `"fmm-pet-behavior"` (FreeMinecraftModels pet behavior modules in `pet_behaviors/`, id `fmm:pet/<file name>`; loaded from FMM 2.13.0), or `"em-enchantment-script"` / `"fmm-enchantment-script"` (the Lua effect of an EliteMobs or FreeMinecraftModels enchantment in `enchantments/`). Each returns that script type's own hooks and `context.*` namespaces — the boss reference does NOT contain NPC, FMM, Mind or enchantment APIs, so query the matching type.
입력 스키마
{
"type": "object",
"properties": {
"script_type": {
"type": "string",
"enum": [
"lua-power",
"npc-script",
"mind-behavior",
"em-enchantment-script",
"fmm-script",
"fmm-enchantment-script",
"fmm-pet-behavior"
],
"description": "Which script type's reference to return. Defaults to \"lua-power\"."
},
"scope": {
"type": "string",
"description": "Optional scope. For lua-power: \"hooks\", \"context\", \"boss\", \"player\", \"event\", \"script\", \"handles\", \"em\", or \"values\". For fmm-script/npc-script: \"hooks\", \"context\", or a context namespace name (e.g. \"npc\", \"player\", \"prop\", \"projectile\")."
}
}
}🟢validate_lua_power_draft(content, script_type, path)
Validate a draft Lua script against the local Nightbreak Forge Lua validator. Use this before finalizing generated Lua files to catch unknown helpers, invalid fields, or malformed file structure. **IMPORTANT: pass `script_type` matching the file you are generating.** Use `"lua-power"` (default) for EliteMobs custom-boss Lua powers (files in `powers/`), `"fmm-script"` for FreeMinecraftModels prop scripts (files in `scripts/`), `"npc-script"` for EliteMobs NPC scripts (files in `npc_scripts/`), `"mind-behavior"` for Mind programs and modules (files in `behaviors/`), `"fmm-pet-behavior"` (FreeMinecraftModels pet behavior modules in `pet_behaviors/`, id `fmm:pet/<file name>`; loaded from FMM 2.13.0), or `"em-enchantment-script"` / `"fmm-enchantment-script"` for EliteMobs or FreeMinecraftModels enchantment scripts (files in `enchantments/`). They have different valid hook names and context namespaces — passing the wrong type produces false-positive errors (e.g. `on_right_click` is valid for `fmm-script`, `on_npc_interact` for `npc-script`, but both are rejected for `lua-power`).
입력 스키마
{
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "Full Lua script file content to validate."
},
"script_type": {
"type": "string",
"enum": [
"lua-power",
"npc-script",
"mind-behavior",
"em-enchantment-script",
"fmm-script",
"fmm-enchantment-script",
"fmm-pet-behavior"
],
"description": "Which validator ruleset to apply. `\"lua-power\"` for EliteMobs boss powers, `\"fmm-script\"` for FMM prop scripts, `\"npc-script\"` for EliteMobs NPC scripts, `\"mind-behavior\"` for behaviors/ programs and modules, `\"fmm-pet-behavior\"` (FreeMinecraftModels pet behavior modules in `pet_behaviors/`, id `fmm:pet/<file name>`; loaded from FMM 2.13.0). Defaults to `\"lua-power\"`."
},
"path": {
"type": "string",
"description": "Optional path such as \"powers/example.lua\" or \"scripts/fireball_wand.lua\" for reporting context."
}
},
"required": [
"content"
]
}🟢search_wiki(query, max_results)
Search the Nightbreak wiki for relevant pages and snippets. Matching is by word and case-insensitive, ranked by title, page name and body. Each result has a `page` value to pass to fetch_wiki_page. Use for high-level docs, examples, and tutorials — not for symbol verification (use search_plugin_source for that).
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keywords to search for, such as \"lua power files\", \"creating bosses\", or \"elitescript bridge\"."
},
"max_results": {
"type": "number",
"description": "Maximum number of results to return. Defaults to 10."
}
},
"required": [
"query"
]
}🟢fetch_wiki_page(path)
Fetch and extract readable content from a specific Nightbreak wiki page such as "EliteMobs/lua_getting_started". Page names change as the wiki grows: take them from search_wiki results. A missing page returns `suggestions` with the closest existing pages.
입력 스키마
{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Wiki page path relative to the site root, for example \"EliteMobs/lua_getting_started\" or \"EliteMobs/creating_bosses\"."
}
},
"required": [
"path"
]
}🟢get_authoring_notes
Where each config type's files go and the plugin rules Forge's own assistant follows: per-type notes, the newer plugins' knowledge, boss movement and combat AI, and the Lua hook quick reference. Read it once before writing files.
입력 스키마
{
"type": "object",
"properties": {}
}🟢list_config_types(plugin)
The config file types Forge knows for the released plugins, with each type's plugin, label, server path, format and wiki page. Pass a type to get_config_schema or as the path when validating.
입력 스키마
{
"type": "object",
"properties": {
"plugin": {
"type": "string",
"description": "Optional plugin id to filter by, such as \"elitemobs\", \"betterstructures\" or \"fmm\"."
}
}
}🟢get_config_schema(type, field)
One config type's fields as Forge edits and validates them: key, value type, default, whether it is required, description and allowed values. Long option lists are shortened; pass field to get one field with all its options.
입력 스키마
{
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "A type from list_config_types, such as \"custom-boss\" or \"fmm-pet\"."
},
"field": {
"type": "string",
"description": "Optional field key; returns only that field, with every allowed value."
}
},
"required": [
"type"
]
}🟢validate_config_files(files)
Validate plugin config files (YAML and Lua) with Forge's validator: required fields, allowed values, plugin rules, Lua analysis, and references between the files you send (a boss's powers, a dungeon's bosses). Send each file with its server path, such as "plugins/EliteMobs/custombosses/frost_king.yml", so Forge can tell its type. A reference to a file you did not send is reported as not found in the workspace, which here means this call's files. Up to 50 files per call. Nothing is stored.
입력 스키마
{
"type": "object",
"properties": {
"files": {
"type": "array",
"description": "The files to check together.",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Server path or plugin-relative path, such as \"plugins/EliteMobs/powers/frost_nova.lua\"."
},
"content": {
"type": "string",
"description": "The full file content."
}
},
"required": [
"path",
"content"
]
}
}
},
"required": [
"files"
]
}커뮤니티
증거