PlugWiki

MSW Search skill for Claude Code: look up MapleStory Worlds APIs and resources

A MapleStory Worlds skill that makes Claude look up API docs and real resource IDs (RUIDs) instead of guessing them.

Installs
10.2K
on skills.sh
Stars
38
on GitHub
Files
5
besides SKILL.md
Updated
Oct 2026
last repo commit

msw-search covers two kinds of lookups. The first is API docs and guides, searched through the msw-mcp server after the local .d.mlua files. The second is resources: sprites, animations, sounds, resource packs and avatar items, searched through a bundled Node script that calls a public REST API.

Its rule is never to guess a RUID. Claude searches resource packs first, asks for 3 results by default, and converts Maker editor code examples into valid .mlua.

Good for

  • MapleStory Worlds creators who need sprites, sounds or avatar items for a game
  • Developers who need API details missing from the .d.mlua files
  • Anyone converting Maker editor code examples to .mlua

Install msw-search

Claude Code

  1. 1

    Copy this prompt.

    Install the msw-search skill in Claude Code. Run this command:
    
    npx skills add https://github.com/msw-git/msw-ai-coding-plugins-official --skill msw-search --skill msw-general
    
    Then check that it loaded and tell me how to use it.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Node.js.

The plugin route installs msw-maker-base-skill: 13 skills (counted from the git tree) and hooks (6 hook events backed by 12 Node scripts, per hooks.json and the git tree). Read the permissions section first. The skills CLI route copies only the skill folders named, without the hooks. SKILL.md for msw-general says every other MSW skill depends on it, so it is always in the list. The skills also call two MCP servers, msw-maker-mcp and msw-mcp. SKILL.md points to the official setup page for wiring them and the API key: https://maplestoryworlds-creators.nexon.com/ko/docs?postId=1368 The default shown is the skills CLI route, which does not add the hooks.

Built from the package data we hold. Not yet tested by us. Source.

What's in the skill

When it loads

MSW search integration — (1) vector search for API docs and implementation guides via the msw-mcp MCP server (mlua_api_retriever / mlua_document_retriever), (2) REST API search for resources (sprite / animation / sound / resource pack / avatar). Use for 'find details, examples, or related APIs not in .d.mlua', 'need a SpriteRUID', 'monster sprite', 'background image', 'find a sound', 'avatar item lookup', etc. Keywords: document search, API details, examples, guide, retriever, resource, sprite, animation, sound, RUID, resource pack, avatar.

Sections in SKILL.md

  1. Routing Table
  2. Decision Flow
  3. API Research Order
  4. Priority 1 — .d.mlua (always first)
  5. Priority 2 — Vector search (when .d.mlua is not enough)
  6. MCP Tools (msw-mcp)
  7. .d.mlua vs Search — Information Comparison
  8. Maker Editor Syntax → .mlua Conversion Rules
  9. Access — always go through msw_resource_api.cjs
  10. Wrapper function ↔ endpoint map
  11. Base URL & transport (informational)
  12. Result count — this skill's default is 3
  13. POST body rule — let msw_resource_api.cjs handle it
  14. Resource Types
  15. Categories
  16. General resources (sprite / animationclip / resource_pack / bgm / voice / effect)

Key facts

Installs on skills.sh
10,212 as of Nov 2, 2026
Last commit to the repo
Oct 6, 2026

What it includes

  • Picks document search or resource search

    Maps requests such as "I need a SpriteRUID" or "details for this RUID" to the right lookup. Asset upload, list, update and delete requests go straight to msw-mcp asset tools.

    Read · Routing table

  • .d.mlua first, then vector search

    Document search uses msw-mcp mlua_api_retriever and mlua_document_retriever. If a call fails, Claude must say what it could not verify and fall back to .d.mlua.

    Try: “How does AttackComponent decide critical hits?”

    Network · API research order

  • Turns Maker editor examples into .mlua

    Maps override to method, braces to end, int to integer, and warns that an override must keep the parent's @ExecSpace to avoid LEA-3014.

    Write · Maker syntax conversion

  • scripts/msw_resource_api.cjs with 11 functions

    A Node 18+ wrapper around the resource search API: search, search-avatar, similar, get, batch, tags, list, random, packs, avatars and avatar-defaults.

    Try: “Find a slime monster sprite for my map.”

    Runs code · Resource search script

  • Searches resource_pack before single sprites

    A pack bundles the sprites, animations and sounds for one asset. Claude switches types only when you ask for a single sprite, sound or avatar item.

    Network · Pack-first rule

  • Never invent a RUID; most sprites face left

    Covers the RUID format, response fields, pagination and a sprite-orientation section.

    Read · RUID handling and sprite facing

  • Upload, list, update and delete your own assets

    Requests like these, and sprite pivot or 9-slice border changes, are sent to msw-mcp asset tools including asset_update_resource_storage_info.

    Delete · Direct asset tools

From the official docs

Permissions

Medium risk

This skill sends your search text to a Nexon-hosted API and can call msw-mcp tools that change your assets, and the plugin route adds hooks. Check each asset call and read the hook findings before installing the plugin.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • It can change your assets through msw-mcp

    SKILL.md routes upload, update and delete requests, and pivot or 9-slice changes, to msw-mcp asset tools. Check the asset named in each call before you approve it. github.com

  • The plugin runs 9 hook scripts on 6 events

    hooks.json registers 9 hook scripts on 6 events. SessionStart: mlua-session-start.cjs starts the mlua LSP daemon in the background when it finds a RootDesk folder, and inject-agents-md.cjs (next item). UserPromptSubmit: skill-router-reminder.cjs adds the same fixed routing reminder to every prompt. PreToolUse: skill-read-guard.cjs refuses Bash reads such as cat, head or grep on the plugin's skill .md files, and structured-file-guard.cjs refuses reads, edits and shell commands on .model and .ui files. PostToolUse on Edit, Write and MultiEdit: mlua-diagnose-post-tool-use.cjs runs the mlua checker on edited .mlua files and returns a block decision with the errors when it finds any, and a second hook calls the msw-maker-mcp tool maker_refresh_workspace. PostToolUse on Read and Skill, and the InstructionsLoaded event: skill-log.cjs logs skill reads to .mswai/logs/skill.log. PostToolUse on every tool: mcp-log.cjs (below). SessionEnd: mlua-session-end.cjs stops the LSP daemon. Use the skills CLI route in the install box if you do not want hooks. github.com

  • The plugin writes AGENTS.md and edits CLAUDE.md

    inject-agents-md.cjs copies its AGENTS.md to your project root, replacing the file if the content differs, and adds an @AGENTS.md line at the top of CLAUDE.md. Back up an existing AGENTS.md first. github.com

  • The plugin runs a downloaded package with npx -y

    The mlua checks start a background daemon at session start and run again after each .mlua edit. resolve-cmd.cjs looks first for a local copy (env override, the workspace .mswai/runtime folder, the ai-cli vendored copy, mlua-lsp on PATH). If none is found and npx exists, it runs npx -y @maplestoryworlds/mlua-lsp@1.1.4, which downloads that package from the npm registry. github.com

  • Search text is sent to a Nexon-hosted API

    The resource script posts your query to maplestoryworlds-resourcesearch-new.nexon.com. Do not put private text in a search. github.com

  • The plugin logs every MCP call to .mswai/logs

    mcp-log.cjs runs after every tool call and, for MCP tools from any server, appends one line to .mswai/logs/mcp.log in your project with the tool name, the full arguments and the full response (cut only if MCP_LOG_MAX_OUTPUT_BYTES is set). lsp.log and skill.log are written to the same folder. Our advice: add .mswai/ to .gitignore, because the log can hold anything your MCP servers return. github.com

  • The plugin blocks direct reads of .model and .ui files

    structured-file-guard.cjs refuses Read, Edit, Write and shell commands on .model and .ui files and tells Claude to use the builders. Setting MSW_STRUCTURED_FILE_GUARD_DISABLE=1 turns it off. github.com

Security advisories

No published security advisories as of Nov 2, 2026.

Technical details
Turning on read-onlySKILL.md names no read-only setting.
Talks tomaplestoryworlds-resourcesearch-new.nexon.com (resource search script). msw-mcp server you configure (document search and assets)
Scopes
  • Runs scripts/msw_resource_api.cjs with Node, which sends queries over HTTPS

  • Calls msw-mcp document search and asset tools (upload, list, update, delete)

Questions

What does the msw-search skill do?

It makes Claude look things up instead of guessing: MapleStory Worlds API docs through msw-mcp and sprite, animation, sound and avatar RUIDs through a public resource search API.

Does it need an API key?

SKILL.md describes the resource search API as public with no auth. The msw-mcp tools need the MCP setup and key described on the official page: https://maplestoryworlds-creators.nexon.com/ko/docs?postId=1368.

Where do my search queries go?

The resource script sends your query text to maplestoryworlds-resourcesearch-new.nexon.com. Document search goes to the msw-mcp server you configure.

How do I install it?

Use the install box above. The skills CLI route also installs msw-general, which SKILL.md names as the home for MCP tools and workspace rules.

Is it official, made by Nexon?

The repo does not say so. It is published by a personal GitHub account named MSW-Git (account type User, no company or description on the profile). The repo name contains "official" and the README calls it the public release source for MSW maker skills, but nothing in the repo names Nexon as the publisher. marketplace.json lists the owner as MSW-Git with an outlook.kr email address. The skills do link to Nexon's MapleStory Worlds creators docs for MCP setup. Its resource search script calls a nexon.com host. Our advice: treat it as a third-party toolkit for Nexon's platform unless Nexon confirms otherwise.

Why does it search resource packs first?

SKILL.md says a pack bundles every sprite, animation and sound for one asset, so a stray single sprite is less likely to fit. It switches to single types only when you ask.

Is msw-search safe to use?

It runs a Node script that sends search text to a Nexon-hosted API and can call msw-mcp tools that upload, update and delete your assets. The plugin route also adds hooks, so read the permissions section before you install it.

Information

updated Nov 2, 2026

Folder
plugins/msw-maker-base-skill/skills/msw-search

msw-git/msw-ai-coding-plugins-officialskills.sh

Sources

Docs, issue trackers and discussions this page is built from.

Show all 16
  1. msw-ai-coding-plugins-official README · github.com
  2. marketplace.json · github.com
  3. msw-search SKILL.md · github.com
  4. skills.sh listing · skills.sh
  5. msw-search scripts/msw_resource_api.cjs · github.com
  6. MSW-Git GitHub profile · github.com
  7. hooks.json · github.com
  8. inject-agents-md.cjs · github.com
  9. resolve-cmd.cjs · github.com
  10. mcp-log.cjs · github.com
  11. structured-file-guard.cjs · github.com
  12. skill-router-reminder.cjs · github.com
  13. mlua-diagnose-post-tool-use.cjs · github.com
  14. skill-log.cjs · github.com
  15. skill-read-guard.cjs · github.com
  16. mlua-session-start.cjs · github.com

Updated Nov 2, 2026.