Skip to main content
Glama
ljy9303

MapleStory MCP Server

by ljy9303

MCP Badge

MapleStory MCP Server ๐Ÿ

NEXON ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์˜คํ”ˆ API ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ข…ํ•ฉ์ ์ธ MCP(Model Context Protocol) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. Claude Desktop ๋ฐ ๊ธฐํƒ€ MCP ํ˜ธํ™˜ AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ํ†ตํ•ด ์บ๋ฆญํ„ฐ ์ •๋ณด, ์œ ๋‹ˆ์˜จ ์„ธ๋ถ€์‚ฌํ•ญ, ๊ธธ๋“œ ๋ฐ์ดํ„ฐ, ๋žญํ‚น, ๊ฒŒ์ž„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๊ตฌ์กฐํ™”๋œ ์ ‘๊ทผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

โœจ ๊ธฐ๋Šฅ

  • ์บ๋ฆญํ„ฐ ์ •๋ณด: ์ƒ์„ธํ•œ ์บ๋ฆญํ„ฐ ์Šคํƒฏ, ์žฅ๋น„, ๊ธฐ๋ณธ ์ •๋ณด ์กฐํšŒ

  • ์œ ๋‹ˆ์˜จ ์‹œ์Šคํ…œ: ์œ ๋‹ˆ์˜จ ๊ณต๊ฒฉ๋Œ€ ๊ตฌ์„ฑ ๋ฐ ๋žญํ‚น ์ ‘๊ทผ

  • ๊ธธ๋“œ ๊ด€๋ฆฌ: ๊ธธ๋“œ ์ •๋ณด ๋ฐ ๋ฉค๋ฒ„ ์„ธ๋ถ€์‚ฌํ•ญ ์กฐํšŒ

  • ๋žญํ‚น: ๋‹ค์–‘ํ•œ ๋ฆฌ๋”๋ณด๋“œ ๋ฐ ๊ฒฝ์Ÿ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ

  • ๊ฒŒ์ž„ ๋ฉ”์ปค๋‹ˆ์ฆ˜: ํ๋ธŒ ๋ฐ ์Šคํƒ€ํฌ์Šค ๊ฐ•ํ™” ํ™•๋ฅ  ์ •๋ณด

  • ๊ฒŒ์ž„ ์—…๋ฐ์ดํŠธ: ์ตœ์‹  ๊ณต์ง€์‚ฌํ•ญ ๋ฐ ๋ฐœํ‘œ

  • TypeScript ์ง€์›: ์™„์ „ํ•œ ํƒ€์ž… ์•ˆ์ „์„ฑ ๋ฐ IntelliSense ์ง€์›

  • ์ข…ํ•ฉ์ ์ธ ๋กœ๊น…: ๋””๋ฒ„๊น…์„ ์œ„ํ•œ ์ƒ์„ธํ•œ ์ž‘์—… ๋กœ๊น…

  • ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ: ์ƒ์„ธํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๊ฐ•๋ ฅํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

Related MCP server: Brawl Stars MCP

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

NPX ์‚ฌ์šฉ (๊ถŒ์žฅ)

npx maplestory-mcp-server --api-key YOUR_NEXON_API_KEY

์„ค์น˜

npm install -g maplestory-mcp-server

๐Ÿ–ฅ๏ธ Claude Desktop๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ

1. NEXON API ํ‚ค ์ค€๋น„

๋จผ์ € NEXON ์˜คํ”ˆ API ํฌํ„ธ์—์„œ API ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์œผ์„ธ์š”:

  1. NEXON ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ

  2. "๊ฐœ๋ฐœ์ž ์„ผํ„ฐ" โ†’ "์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ" ์ด๋™

  3. "์ƒˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋ก" ํด๋ฆญ

  4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •๋ณด ์ž…๋ ฅ ํ›„ ๋“ฑ๋ก

  5. ์ƒ์„ฑ๋œ API ํ‚ค ๋ณต์‚ฌ

2. Claude Desktop ์„ค์ • ํŒŒ์ผ ์ฐพ๊ธฐ

์šด์˜์ฒด์ œ๋ณ„ ์„ค์ • ํŒŒ์ผ ์œ„์น˜:

Windows:

%APPDATA%\Claude\claude_desktop_config.json

macOS:

~/Library/Application Support/Claude/claude_desktop_config.json

Linux:

~/.config/Claude/claude_desktop_config.json

3. MCP ์„œ๋ฒ„ ์„ค์ • ์ถ”๊ฐ€

์„ค์ • ํŒŒ์ผ์— ๋‹ค์Œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜์„ธ์š”:

{
  "mcpServers": {
    "maplestory-mcp-server": {
      "command": "npx",
      "args": ["-y", "maplestory-mcp-server"],
      "env": {
        "NEXON_API_KEY": "์—ฌ๊ธฐ์—_๋ฐœ๊ธ‰๋ฐ›์€_API_ํ‚ค_์ž…๋ ฅ"
      }
    }
  }
}

โš ๏ธ ์ค‘์š”: YOUR_NEXON_API_KEY๋ฅผ ์‹ค์ œ ๋ฐœ๊ธ‰๋ฐ›์€ API ํ‚ค๋กœ ๊ต์ฒดํ•˜์„ธ์š”.

4. Claude Desktop ์žฌ์‹œ์ž‘

์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ ํ›„ Claude Desktop์„ ์™„์ „ํžˆ ์ข…๋ฃŒํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”.

5. ์—ฐ๊ฒฐ ํ™•์ธ

Claude Desktop์ด ์žฌ์‹œ์ž‘๋˜๋ฉด ์ƒˆ ๋Œ€ํ™”์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ด ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜์„ธ์š”:

๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ API๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์ค˜

์„ฑ๊ณต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋ฉด Claude๊ฐ€ ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ๊ด€๋ จ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๐Ÿ› ๏ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ MCP ๋„๊ตฌ

์บ๋ฆญํ„ฐ ๋„๊ตฌ

  • get_character_basic_info - ๊ธฐ๋ณธ ์บ๋ฆญํ„ฐ ์ •๋ณด ์กฐํšŒ (๋ ˆ๋ฒจ, ์ง์—…, ์›”๋“œ, ๊ธธ๋“œ)

  • get_character_stats - ์ƒ์„ธํ•œ ์บ๋ฆญํ„ฐ ์Šคํƒฏ ๋ฐ ์ „ํˆฌ ์Šคํƒฏ ์กฐํšŒ

  • get_character_equipment - ์บ๋ฆญํ„ฐ ์žฅ๋น„ ๋ฐ ์•„์ดํ…œ ์„ธ๋ถ€์‚ฌํ•ญ ์กฐํšŒ

  • get_character_full_info - ์ข…ํ•ฉ์ ์ธ ์บ๋ฆญํ„ฐ ์ •๋ณด๋ฅผ ํ•œ ๋ฒˆ์— ์กฐํšŒ

์œ ๋‹ˆ์˜จ ๋„๊ตฌ

  • get_union_info - ์œ ๋‹ˆ์˜จ ๋ ˆ๋ฒจ, ๋“ฑ๊ธ‰, ์•„ํ‹ฐํŒฉํŠธ ์ •๋ณด ์กฐํšŒ

  • get_union_raider - ์œ ๋‹ˆ์˜จ ๊ณต๊ฒฉ๋Œ€ ๋ณด๋“œ ๊ตฌ์„ฑ ๋ฐ ๋ธ”๋ก ์กฐํšŒ

  • get_union_ranking - ์œ ๋‹ˆ์˜จ ํŒŒ์›Œ ๋žญํ‚น ์กฐํšŒ

๊ธธ๋“œ ๋„๊ตฌ

  • get_guild_info - ๊ธธ๋“œ ์ •๋ณด, ๋ฉค๋ฒ„, ์Šคํ‚ฌ ์กฐํšŒ

  • get_guild_ranking - ๊ธธ๋“œ ๋ ˆ๋ฒจ ๋žญํ‚น ์กฐํšŒ

๋žญํ‚น ๋„๊ตฌ

  • get_overall_ranking - ํ•„ํ„ฐ๋ง ์˜ต์…˜์ด ํฌํ•จ๋œ ์ข…ํ•ฉ ๋ ˆ๋ฒจ ๋žญํ‚น ์กฐํšŒ

์œ ํ‹ธ๋ฆฌํ‹ฐ ๋„๊ตฌ

  • get_notice_list - ๊ฒŒ์ž„ ๊ณต์ง€์‚ฌํ•ญ ๋ฐ ๋ฐœํ‘œ ์กฐํšŒ

  • get_notice_detail - ์ƒ์„ธํ•œ ๊ณต์ง€์‚ฌํ•ญ ์ •๋ณด ์กฐํšŒ

  • get_cube_probability - ํ๋ธŒ ๊ฐ•ํ™” ํ™•๋ฅ  ์ •๋ณด ์กฐํšŒ

  • get_starforce_probability - ์Šคํƒ€ํฌ์Šค ๊ฐ•ํ™” ํ™•๋ฅ  ์ •๋ณด ์กฐํšŒ

  • health_check - API ์—ฐ๊ฒฐ ๋ฐ ์ƒํƒœ ํ™•์ธ

๐Ÿ“– ์‚ฌ์šฉ ์˜ˆ์‹œ

๐ŸŽฏ Claude Desktop์—์„œ ์งˆ๋ฌธํ•˜๊ธฐ

Claude Desktop์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž์—ฐ์–ด๋กœ ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์บ๋ฆญํ„ฐ ์ •๋ณด ์กฐํšŒ

"๊น€์ฝ”์ธ"์ด๋ผ๋Š” ์บ๋ฆญํ„ฐ์˜ ๊ธฐ๋ณธ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ค˜
"๋ฒ ๋ผ์›”๋“œ์šฉ์‚ฌ" ์บ๋ฆญํ„ฐ์˜ ์ƒ์„ธํ•œ ์Šคํƒฏ ์ •๋ณด๋ฅผ ์กฐํšŒํ•ด์ค˜
"๋ฆฌ๋ถ€ํŠธ์šฉ์‚ฌ" ์บ๋ฆญํ„ฐ๊ฐ€ ์ฐฉ์šฉํ•˜๊ณ  ์žˆ๋Š” ์žฅ๋น„ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค˜

์œ ๋‹ˆ์˜จ ๋ฐ ๊ธธ๋“œ ์ •๋ณด

"์Šค์นด๋‹ˆ์•„์šฉ์‚ฌ" ์บ๋ฆญํ„ฐ์˜ ์œ ๋‹ˆ์˜จ ์ •๋ณด๋ฅผ ์กฐํšŒํ•ด์ค˜
"์Šค์นด๋‹ˆ์•„" ์›”๋“œ์˜ "๊ธธ๋“œ๋ช…" ๊ธธ๋“œ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ค˜

๋žญํ‚น ์กฐํšŒ

์Šค์นด๋‹ˆ์•„ ์›”๋“œ์˜ ์•„ํฌ๋ฉ”์ด์ง€(๋ถˆ,๋…) ์ง์—… ๋žญํ‚น 1ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค˜
๋ฒ ๋ผ ์›”๋“œ์˜ ์œ ๋‹ˆ์˜จ ๋žญํ‚น ์ƒ์œ„ 20๋ช…์„ ์กฐํšŒํ•ด์ค˜

๊ฒŒ์ž„ ์ •๋ณด

๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์ตœ์‹  ๊ณต์ง€์‚ฌํ•ญ์„ ํ™•์ธํ•ด์ค˜
๋ ˆ๋“œ ํ๋ธŒ์˜ ๊ฐ•ํ™” ํ™•๋ฅ  ์ •๋ณด๋ฅผ ์•Œ๋ ค์ค˜

๐Ÿ’ก ํ™œ์šฉ ํŒ

1. ์บ๋ฆญํ„ฐ ์ข…ํ•ฉ ๋ถ„์„

"์Šค์นด๋‹ˆ์•„์šฉ์‚ฌ" ์บ๋ฆญํ„ฐ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ข…ํ•ฉ์ ์œผ๋กœ ๋ถ„์„ํ•ด์ค˜ (๊ธฐ๋ณธ์ •๋ณด, ์Šคํƒฏ, ์žฅ๋น„, ์œ ๋‹ˆ์˜จ)

2. ๊ธธ๋“œ ๊ด€๋ฆฌ

"๋ฒ ๋ผ" ์›”๋“œ์˜ "์šฐ๋ฆฌ๊ธธ๋“œ" ๊ธธ๋“œ์›๋“ค์˜ ๋ ˆ๋ฒจ๊ณผ ์ง์—…์„ ์ •๋ฆฌํ•ด์ค˜

3. ๋žญํ‚น ๋น„๊ต

"์Šค์นด๋‹ˆ์•„" ์›”๋“œ์™€ "๋ฒ ๋ผ" ์›”๋“œ์˜ ์ƒ์œ„ ๋žญ์ปค๋“ค์„ ๋น„๊ต ๋ถ„์„ํ•ด์ค˜

4. ์ง„ํ–‰ ์ƒํ™ฉ ์ถ”์ 

"๋‚ด์บ๋ฆญํ„ฐ" ์บ๋ฆญํ„ฐ์˜ ์–ด์ œ์™€ ์˜ค๋Š˜ ์Šคํƒฏ ๋ณ€ํ™”๋ฅผ ๋น„๊ตํ•ด์ค˜

๐Ÿ”ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ˆ์‹œ

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ง์ ‘ API ํ˜ธ์ถœ ์˜ˆ์‹œ:

์บ๋ฆญํ„ฐ ์ •๋ณด ์กฐํšŒ

// ๊ธฐ๋ณธ ์บ๋ฆญํ„ฐ ์ •๋ณด ์กฐํšŒ
const basicInfo = await getCharacterBasicInfo({
  characterName: "์Šค์นด๋‹ˆ์•„์šฉ์‚ฌ"
});

// ์ƒ์„ธํ•œ ์บ๋ฆญํ„ฐ ์Šคํƒฏ ์กฐํšŒ
const stats = await getCharacterStats({
  characterName: "์Šค์นด๋‹ˆ์•„์šฉ์‚ฌ",
  date: "2024-01-15"
});

// ์บ๋ฆญํ„ฐ ์žฅ๋น„ ์กฐํšŒ
const equipment = await getCharacterEquipment({
  characterName: "์Šค์นด๋‹ˆ์•„์šฉ์‚ฌ"
});

์œ ๋‹ˆ์˜จ ๋ฐ ๊ธธ๋“œ ๋ฐ์ดํ„ฐ

// ์œ ๋‹ˆ์˜จ ์ •๋ณด ์กฐํšŒ
const unionInfo = await getUnionInfo({
  characterName: "์Šค์นด๋‹ˆ์•„์šฉ์‚ฌ"
});

// ๊ธธ๋“œ ์ •๋ณด ์กฐํšŒ
const guildInfo = await getGuildInfo({
  guildName: "๊ธธ๋“œ๋ช…",
  worldName: "์Šค์นด๋‹ˆ์•„"
});

๋žญํ‚น ๋ฐ ๋ฆฌ๋”๋ณด๋“œ

// ์ข…ํ•ฉ ๋žญํ‚น ์กฐํšŒ
const rankings = await getOverallRanking({
  worldName: "์Šค์นด๋‹ˆ์•„",
  className: "์•„ํฌ๋ฉ”์ด์ง€(๋ถˆ,๋…)",
  page: 1
});

// ์œ ๋‹ˆ์˜จ ๋žญํ‚น ์กฐํšŒ
const unionRankings = await getUnionRanking({
  worldName: "์Šค์นด๋‹ˆ์•„",
  page: 1
});

๐Ÿ”ง ์„ค์ •

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

  • NEXON_API_KEY - NEXON ์˜คํ”ˆ API ํ‚ค (ํ•„์ˆ˜)

  • LOG_LEVEL - ๋กœ๊น… ๋ ˆ๋ฒจ (๊ธฐ๋ณธ๊ฐ’: "info")

  • NODE_ENV - ํ™˜๊ฒฝ (development/production)

CLI ์˜ต์…˜

  • --api-key - NEXON API ํ‚ค

  • --port - ์„œ๋ฒ„ ํฌํŠธ (๊ธฐ๋ณธ๊ฐ’: 3000)

  • --debug - ๋””๋ฒ„๊ทธ ๋กœ๊น… ํ™œ์„ฑํ™”

  • --name - ์„œ๋ฒ„ ์ด๋ฆ„ (๊ธฐ๋ณธ๊ฐ’: "mcp-maple")

  • --version - ์„œ๋ฒ„ ๋ฒ„์ „

๐Ÿ”‘ NEXON API ํ‚ค ์–ป๊ธฐ

์ƒ์„ธ ๊ฐ€์ด๋“œ

  1. NEXON ์˜คํ”ˆ API ํฌํ„ธ ์ ‘์†

  2. ๊ณ„์ • ์ƒ์„ฑ ๋ฐ ๋กœ๊ทธ์ธ

    • NEXON ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ (๊ฒŒ์ž„ ๊ณ„์ •๊ณผ ๋™์ผ)

    • ๊ณ„์ •์ด ์—†๋‹ค๋ฉด ํšŒ์›๊ฐ€์ž… ์ง„ํ–‰

  3. ๊ฐœ๋ฐœ์ž ์„ผํ„ฐ ์ด๋™

    • ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ "๊ฐœ๋ฐœ์ž ์„ผํ„ฐ" ํด๋ฆญ

    • "์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ" ์„ ํƒ

  4. ์ƒˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋ก

    • "์ƒˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋ก" ๋ฒ„ํŠผ ํด๋ฆญ

    • ํ•„์ˆ˜ ์ •๋ณด ์ž…๋ ฅ:

      • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„: MCP Maple (์˜ˆ์‹œ)

      • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๋ช…: Claude Desktop MCP ์„œ๋ฒ„์šฉ

      • ์„œ๋น„์Šค URL: http://localhost (๊ฐœ๋ฐœ์šฉ)

  5. API ํ‚ค ๋ฐœ๊ธ‰ ๋ฐ ๋ณต์‚ฌ

    • ๋“ฑ๋ก ์™„๋ฃŒ ํ›„ API ํ‚ค ํ™•์ธ

    • API ํ‚ค ๋ณต์‚ฌ (๋ณด์•ˆ์„ ์œ„ํ•ด ์•ˆ์ „ํ•œ ๊ณณ์— ์ €์žฅ)

  6. API ํ‚ค ์‚ฌ์šฉ

    • Claude Desktop ์„ค์ •์—์„œ NEXON_API_KEY๋กœ ์‚ฌ์šฉ

    • ๋˜๋Š” CLI์—์„œ --api-key ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ

๐Ÿ’ก ํŒ: API ํ‚ค๋Š” ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์„ธ์š”. GitHub ๋“ฑ ๊ณต๊ฐœ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œํ•˜์ง€ ๋งˆ์„ธ์š”.

๐ŸŽฎ ์ง€์›๋˜๋Š” ๊ฒŒ์ž„ ๋ฐ ์›”๋“œ

๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์›”๋“œ

  • ์Šค์นด๋‹ˆ์•„ (Scania)

  • ๋ฒ ๋ผ (Bera)

  • ๋ฃจ๋‚˜ (Luna)

  • ์ œ๋‹ˆ์Šค (Zenith)

  • ํฌ๋กœ์•„ (Croa)

  • ์œ ๋‹ˆ์˜จ (Union)

  • ์—˜๋ฆฌ์‹œ์›€ (Elysium)

  • ์ด๋…ธ์‹œ์Šค (Enosis)

  • ๋ ˆ๋“œ (Red)

  • ์˜ค๋กœ๋ผ (Aurora)

  • ์•„์ผ€์ธ (Arcane)

  • ๋…ธ๋ฐ” (Nova)

  • ๋ฆฌ๋ถ€ํŠธ (Reboot)

  • ๋ฆฌ๋ถ€ํŠธ2 (Reboot2)

๐Ÿšฆ ์š”์ฒญ ์ œํ•œ ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€

  • ์š”์ฒญ ์ œํ•œ: API ํ‚ค๋‹น ํ•˜๋ฃจ 500ํšŒ ์š”์ฒญ

  • ์š”์ฒญ ๋นˆ๋„: ์ดˆ๋‹น ์ตœ๋Œ€ 1ํšŒ ์š”์ฒญ

  • ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ : ์บ๋ฆญํ„ฐ ๋ฐ์ดํ„ฐ๋Š” ๋งค์ผ ์—…๋ฐ์ดํŠธ

  • ์บ์‹œ: ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์œ„ํ•œ ๊ฒฐ๊ณผ ์บ์‹ฑ

  • ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ: ์ผ์‹œ์  ์‹คํŒจ์— ๋Œ€ํ•œ ์ž๋™ ์žฌ์‹œ๋„

๐Ÿงช ๊ฐœ๋ฐœ

์ „์ œ ์กฐ๊ฑด

  • Node.js 18+

  • TypeScript 5.4+

  • NEXON API ํ‚ค

์„ค์ •

git clone https://github.com/ljy9303/maplestory-mcp-server.git
cd maplestory-mcp-server
npm install
npm run build

๋นŒ๋“œ

npm run build          # TypeScript ๋นŒ๋“œ
npm run dev            # ๊ฐœ๋ฐœ ๋ชจ๋“œ (watch)

๐Ÿ“š API ์ฐธ์กฐ

์บ๋ฆญํ„ฐ ์ •๋ณด ๋„๊ตฌ

get_character_basic_info

๋ ˆ๋ฒจ, ์ง์—…, ์›”๋“œ, ๊ธธ๋“œ๋ฅผ ํฌํ•จํ•œ ๊ธฐ๋ณธ ์บ๋ฆญํ„ฐ ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜:

  • characterName (string, ํ•„์ˆ˜): ์กฐํšŒํ•  ์บ๋ฆญํ„ฐ ์ด๋ฆ„

  • date (string, ์„ ํƒ์‚ฌํ•ญ): YYYY-MM-DD ํ˜•์‹์˜ ๋‚ ์งœ

๋ฐ˜ํ™˜๊ฐ’:

  • characterName: ์บ๋ฆญํ„ฐ ์ด๋ฆ„

  • level: ์บ๋ฆญํ„ฐ ๋ ˆ๋ฒจ

  • job: ์บ๋ฆญํ„ฐ ์ง์—…/ํด๋ž˜์Šค

  • world: ์›”๋“œ/์„œ๋ฒ„ ์ด๋ฆ„

  • guildName: ๊ธธ๋“œ ์ด๋ฆ„ (์žˆ๋Š” ๊ฒฝ์šฐ)

  • exp: ํ˜„์žฌ ๊ฒฝํ—˜์น˜

  • expRate: ๊ฒฝํ—˜์น˜ ๋น„์œจ ๋ฐฑ๋ถ„์œจ

get_character_stats

๋ฐ๋ฏธ์ง€, ํฌ๋ฆฌํ‹ฐ์ปฌ ํ™•๋ฅ , ๋ชจ๋“  ์ „ํˆฌ ์Šคํƒฏ์„ ํฌํ•จํ•œ ์ƒ์„ธํ•œ ์บ๋ฆญํ„ฐ ํ†ต๊ณ„๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜:

  • characterName (string, ํ•„์ˆ˜): ์กฐํšŒํ•  ์บ๋ฆญํ„ฐ ์ด๋ฆ„

  • date (string, ์„ ํƒ์‚ฌํ•ญ): YYYY-MM-DD ํ˜•์‹์˜ ๋‚ ์งœ

๋ฐ˜ํ™˜๊ฐ’:

  • basicStats: STR, DEX, INT, LUK, HP, MP

  • combatStats: ๊ณต๊ฒฉ๋ ฅ, ๋งˆ๋ ฅ, ํฌ๋ฆฌํ‹ฐ์ปฌ ์Šคํƒฏ

  • defenseStats: ๋ฌผ๋ฆฌ/๋งˆ๋ฒ• ๋ฐฉ์–ด ์Šคํƒฏ

  • allStats: ์™„์ „ํ•œ ์Šคํƒฏ ๋ถ„์„

์œ ๋‹ˆ์˜จ ๋„๊ตฌ

get_union_info

์œ ๋‹ˆ์˜จ ๋ ˆ๋ฒจ, ๋“ฑ๊ธ‰, ์•„ํ‹ฐํŒฉํŠธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜:

  • characterName (string, ํ•„์ˆ˜): ์กฐํšŒํ•  ์บ๋ฆญํ„ฐ ์ด๋ฆ„

  • date (string, ์„ ํƒ์‚ฌํ•ญ): YYYY-MM-DD ํ˜•์‹์˜ ๋‚ ์งœ

๋ฐ˜ํ™˜๊ฐ’:

  • unionLevel: ํ˜„์žฌ ์œ ๋‹ˆ์˜จ ๋ ˆ๋ฒจ

  • unionGrade: ์œ ๋‹ˆ์˜จ ๋“ฑ๊ธ‰/๋žญํฌ

  • unionArtifact: ์•„ํ‹ฐํŒฉํŠธ ๋ ˆ๋ฒจ ๋ฐ ํฌ์ธํŠธ

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

๋ชจ๋“  ๋„๊ตฌ๋Š” ์ผ๊ด€๋œ ์˜ค๋ฅ˜ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค:

{
  success: false,
  error: "์˜ค๋ฅ˜ ์„ค๋ช…",
  metadata?: {
    executionTime: number,
    apiCalls: number
  }
}

๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ธฐ์—ฌ ๊ฐ€์ด๋“œ๋ฅผ ์ฝ์–ด์ฃผ์„ธ์š”.

๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค

  1. ์ €์žฅ์†Œ๋ฅผ ํฌํฌํ•ฉ๋‹ˆ๋‹ค

  2. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค

  3. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค

  4. ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

  5. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

  6. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค

๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿ™ ๊ฐ์‚ฌ์˜ ๋ง

  • ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์˜คํ”ˆ API๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์‹  NEXON

  • MCP ์‚ฌ์–‘์„ ์ œ๊ณตํ•ด ์ฃผ์‹  Model Context Protocol

  • Claude ๋ฐ MCP ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์‹  Anthropic

๐Ÿ”ง ๋ฌธ์ œ ํ•ด๊ฒฐ

์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋“ค

1. Claude Desktop์—์„œ mcp-maple์ด ์ธ์‹๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

์ฆ์ƒ: Claude Desktop์—์„œ ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ๊ด€๋ จ ์งˆ๋ฌธ์„ ํ•ด๋„ ์‘๋‹ตํ•˜์ง€ ๋ชปํ•จ

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•:

  1. Claude Desktop์„ ์™„์ „ํžˆ ์ข…๋ฃŒ

  2. ์„ค์ • ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธ:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  3. JSON ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธ (์‰ผํ‘œ, ๊ด„ํ˜ธ ๋“ฑ)

  4. Claude Desktop ์žฌ์‹œ์ž‘

2. API ํ‚ค ์˜ค๋ฅ˜

์ฆ์ƒ: "API key is invalid" ๋˜๋Š” "Authentication failed" ์˜ค๋ฅ˜

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•:

  1. NEXON ์˜คํ”ˆ API ํฌํ„ธ์—์„œ API ํ‚ค ์ƒํƒœ ํ™•์ธ

  2. API ํ‚ค๊ฐ€ ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธ

  3. ์„ค์ • ํŒŒ์ผ์—์„œ API ํ‚ค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

  4. API ํ‚ค ์•ž๋’ค ๊ณต๋ฐฑ ์ œ๊ฑฐ

3. ์บ๋ฆญํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ

์ฆ์ƒ: "Character not found" ์˜ค๋ฅ˜

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•:

  1. ์บ๋ฆญํ„ฐ ์ด๋ฆ„์„ ์ •ํ™•ํžˆ ์ž…๋ ฅ (๋Œ€์†Œ๋ฌธ์ž, ํŠน์ˆ˜๋ฌธ์ž ํฌํ•จ)

  2. ํ•ด๋‹น ์บ๋ฆญํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š”์ง€ ๊ฒŒ์ž„์—์„œ ํ™•์ธ

  3. ์บ๋ฆญํ„ฐ๊ฐ€ ์ตœ๊ทผ์— ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ ํ•˜๋ฃจ ์ •๋„ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ์žฌ์‹œ๋„

4. ์š”์ฒญ ์ œํ•œ ์ดˆ๊ณผ

์ฆ์ƒ: "Rate limit exceeded" ์˜ค๋ฅ˜

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•:

  1. ์ž ์‹œ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ์žฌ์‹œ๋„ (1๋ถ„ ์ •๋„)

  2. ์š”์ฒญ ๋นˆ๋„๋ฅผ ์ค„์—ฌ์„œ ์‚ฌ์šฉ

  3. ํ•˜๋ฃจ 500ํšŒ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜

5. ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ๋ฌธ์ œ

์ฆ์ƒ: "Network error" ๋˜๋Š” "Timeout" ์˜ค๋ฅ˜

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•:

  1. ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์ƒํƒœ ํ™•์ธ

  2. ๋ฐฉํ™”๋ฒฝ์ด๋‚˜ ํ”„๋ก์‹œ ์„ค์ • ํ™•์ธ

  3. ์ž ์‹œ ํ›„ ์žฌ์‹œ๋„

๋””๋ฒ„๊น… ๋ฐฉ๋ฒ•

1. ์ƒ์„ธํ•œ ๋กœ๊ทธ ํ™•์ธ

npx mcp-maple --debug --api-key YOUR_API_KEY

2. ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ

Claude Desktop์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•˜์—ฌ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ํ™•์ธ:

๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ API ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด์ค˜

3. ์„ค์ • ํŒŒ์ผ ๊ฒ€์ฆ

JSON ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ์˜จ๋ผ์ธ JSON ๊ฒ€์ฆ๊ธฐ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์•Œ๋ ค์ง„ ์ œํ•œ ์‚ฌํ•ญ

  • API ํ˜ธ์ถœ ์ œํ•œ: ํ•˜๋ฃจ 500ํšŒ, ์ดˆ๋‹น 1ํšŒ

  • ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ : ์บ๋ฆญํ„ฐ ์ •๋ณด๋Š” ๋งค์ผ ์˜ค์ „ 8์‹œ๊ฒฝ ์—…๋ฐ์ดํŠธ

  • ์ง€์› ์›”๋“œ: ์ผ๋ถ€ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๋‚˜ ํŠน์ˆ˜ ์›”๋“œ๋Š” ์ง€์›๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ

๐Ÿ“ž ์ง€์›

๐Ÿ”— ๊ด€๋ จ ํ”„๋กœ์ ํŠธ


๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ„ํ•ด โค๏ธ๋กœ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค

Available Tools

15 tools
get_character_basic_infoB

Retrieve basic information about a MapleStory character including level, job, world, and guild

ParametersJSON Schema
NameRequiredDescriptionDefault
characterNameYesThe name of the character to look up
dateNoDate for character info in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states this is a retrieval operation but doesn't disclose behavioral traits such as whether it's read-only, requires authentication, has rate limits, or how it handles errors. For a tool with no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose and key data fields without any wasted words. It's appropriately sized for a simple lookup tool and earns its place by clearly stating what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It explains what data is retrieved but lacks context on usage versus siblings and behavioral details. With no output schema, it could benefit from hinting at return values, but the simplicity keeps it from being incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for both parameters in the input schema. The description adds no additional parameter semantics beyond what's already documented in the schema, so it meets the baseline score of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('retrieve') and resource ('basic information about a MapleStory character'), and specifies key data fields (level, job, world, guild). However, it doesn't explicitly differentiate from siblings like get_character_full_info or get_character_stats, which likely provide overlapping or more detailed information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_character_full_info or get_character_stats. It mentions what data is retrieved but not the context or trade-offs compared to sibling tools, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_character_equipmentB

Retrieve equipment information for a MapleStory character including all equipped items and their stats

ParametersJSON Schema
NameRequiredDescriptionDefault
characterNameYesThe name of the character to look up
dateNoDate for character equipment in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states what the tool does, not behavioral traits like rate limits, authentication needs, error handling, or data freshness. It mentions retrieving 'equipment information' but doesn't detail format, pagination, or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('retrieve equipment information') and specifies scope ('including all equipped items and their stats'). There is no wasted verbiage, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose but lacks behavioral details and usage context. Without annotations or output schema, more guidance on return values or operational constraints would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for both parameters (characterName and date). The description adds no additional meaning beyond the schema, such as explaining character name constraints or date usage context, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('retrieve equipment information') and the resource ('MapleStory character'), specifying the scope as 'all equipped items and their stats'. It distinguishes from siblings like get_character_basic_info or get_character_stats by focusing specifically on equipment, though it doesn't explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_character_full_info (which might include equipment) or get_character_stats (which might overlap with stats). The description implies usage for equipment retrieval but lacks explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_character_full_infoC

Retrieve comprehensive character information including basic info, stats, and equipment in a single request

ParametersJSON Schema
NameRequiredDescriptionDefault
characterNameYesThe name of the character to look up
dateNoDate for character info in YYYY-MM-DD format (optional, defaults to yesterday)
includeEquipmentNoWhether to include equipment information (defaults to true)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions retrieving comprehensive information, it lacks details on permissions needed, rate limits, error handling, or what 'comprehensive' entails beyond listed components. For a read operation with no annotation coverage, this leaves significant gaps in understanding tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. Every word contributes to understanding the tool's scope, with no redundant or vague phrasing. However, it could be slightly more structured by explicitly listing what 'comprehensive' includes upfront.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with 3 parameters, 100% schema coverage, and no output schema, the description is minimally adequate. It covers the 'what' but lacks context on 'how' (e.g., response format, pagination) and 'why' (use cases vs. siblings). Without annotations or output schema, more behavioral and comparative context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing clear documentation for all parameters. The description adds minimal value beyond the schema, only implying that parameters control retrieval scope (e.g., includeEquipment affects equipment inclusion). No additional syntax, format, or semantic details are provided, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and resource 'comprehensive character information', specifying it includes 'basic info, stats, and equipment in a single request'. However, it doesn't explicitly differentiate from sibling tools like get_character_basic_info or get_character_stats, which suggests overlapping functionality without clear boundaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_character_basic_info or get_character_equipment. It mentions retrieving comprehensive information in one request, but doesn't clarify trade-offs (e.g., performance, data freshness) or prerequisites, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_character_statsC

Retrieve detailed statistics for a MapleStory character including damage, critical rate, and all combat stats

ParametersJSON Schema
NameRequiredDescriptionDefault
characterNameYesThe name of the character to look up
dateNoDate for character stats in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves data, implying a read-only operation, but doesn't cover aspects like rate limits, authentication needs, error handling, or response format. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose with specific examples. It avoids redundancy and wastes no words, though it could be slightly more structured by separating usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that retrieves detailed statistics. It doesn't explain what the return values look like (e.g., format, structure), error cases, or behavioral constraints, leaving the agent with insufficient context for reliable use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional meaning beyond implying the tool retrieves stats for a character, which is already clear from the schema's parameter descriptions. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve detailed statistics') and the resource ('a MapleStory character'), with specific examples of what stats are included ('damage, critical rate, and all combat stats'). It distinguishes from siblings like 'get_character_basic_info' by specifying 'detailed statistics' rather than basic info, though it doesn't explicitly contrast with 'get_character_full_info' which might overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_character_basic_info' or 'get_character_full_info', nor does it mention prerequisites or exclusions. It implies usage for retrieving combat-related stats but lacks explicit context for tool selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cube_probabilityC

Retrieve cube usage probability information and enhancement statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
cubeTypeNoType of cube to get probability for (optional)
potentialGradeNoCurrent potential grade (optional)
itemLevelNoItem level range for probability (optional)
dateNoDate for probability data in YYYY-MM-DD format (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'retrieve,' implying a read-only operation, but lacks details on permissions, rate limits, data freshness, or response format. This is insufficient for a tool with multiple parameters and no output schema, leaving key behavioral traits unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. However, it could be more structured by explicitly addressing key aspects like usage context or output, but it avoids redundancy and stays focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 4 optional parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'enhancement statistics' entail, how parameters interact, or what the return values look like, leaving significant gaps for the agent to navigate without sufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal meaning beyond the input schema, which has 100% coverage with detailed descriptions for all parameters. It mentions 'cube usage probability' and 'enhancement statistics,' hinting at the purpose of parameters like 'cubeType' and 'potentialGrade,' but doesn't elaborate on their interactions or provide additional context. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Retrieve cube usage probability information and enhancement statistics.' It specifies the action (retrieve) and the resource (cube usage probability and enhancement statistics), making it understandable. However, it doesn't explicitly differentiate from siblings like 'get_starforce_probability,' which might handle similar enhancement data, leaving room for ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools (e.g., 'get_starforce_probability'), leaving the agent to infer usage based on context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_guild_infoB

Retrieve basic information about a MapleStory guild including level, members, and skills

ParametersJSON Schema
NameRequiredDescriptionDefault
guildNameYesThe name of the guild to look up
worldNameYesThe world/server name where the guild exists
dateNoDate for guild info in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves information, implying a read-only operation, but doesn't clarify aspects like rate limits, authentication needs, error handling, or data freshness. The mention of 'basic information' hints at limited scope, but specifics like pagination or response format are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose without unnecessary details. Every word contributes to understanding the tool's function, making it appropriately sized and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is minimal but adequate for a read-only tool. It covers the core purpose but lacks details on behavioral traits, error cases, or output format. For a tool with 3 parameters and full schema coverage, it meets the minimum viable threshold but leaves gaps in usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents parameters (guildName, worldName, date). The description adds no additional parameter semantics beyond implying guild lookup, which the schema already covers. Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate with extra context like default behavior for the optional date.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('retrieve') and resource ('MapleStory guild'), specifying what information is obtained ('basic information including level, members, and skills'). It distinguishes from siblings like 'get_guild_ranking' by focusing on guild details rather than rankings, but doesn't explicitly contrast with other guild-related tools since none exist in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. While the description implies it's for guild information, it doesn't mention prerequisites, limitations, or compare it to other tools like 'get_character_basic_info' for character data. The agent must infer usage from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_guild_rankingB

Retrieve guild rankings for a specific world or overall rankings

ParametersJSON Schema
NameRequiredDescriptionDefault
worldNameNoWorld name to get guild rankings for (optional, gets all worlds if not specified)
guildNameNoSpecific guild name to search for in rankings (optional)
pageNoPage number for pagination (1-based, optional, defaults to 1)
dateNoDate for rankings in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions retrieval but doesn't disclose behavioral traits like rate limits, authentication needs, data freshness (e.g., rankings might be delayed), or pagination behavior beyond what's in the schema. The description is minimal and adds little beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasteโ€”it directly states the tool's purpose without redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is minimal but covers the basic purpose. For a read-only tool with full schema coverage, it's adequate but lacks context about return values, error handling, or usage nuances. It meets minimum viability but has clear gaps in behavioral transparency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond implying optional world filtering and overall rankings, which are already covered in the schema (worldName optional, gets all worlds if not specified). Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve guild rankings') and resource ('guild rankings'), specifying it can be for 'a specific world or overall rankings'. It distinguishes from siblings like get_guild_info (which likely provides detailed guild data rather than rankings) and get_overall_ranking (which might be for characters rather than guilds), though the distinction isn't explicitly stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like get_guild_info or get_overall_ranking. The description implies usage for ranking retrieval but lacks context about prerequisites, typical scenarios, or exclusions (e.g., when not to use it due to data freshness).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notice_detailC

Retrieve detailed information for a specific MapleStory notice

ParametersJSON Schema
NameRequiredDescriptionDefault
noticeIdYesID of the notice to retrieve details for

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a retrieval operation but doesn't describe what 'detailed information' includes, whether it requires authentication, rate limits, error conditions, or response format. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a description that only states the basic purpose, this is incomplete for effective tool use. The agent won't know what 'detailed information' includes, what format it returns, or any behavioral constraints. For a retrieval tool with rich sibling tools in this server, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'noticeId' clearly documented in the schema. The description doesn't add any additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for adequate but minimal value-add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and the resource 'detailed information for a specific MapleStory notice', making the purpose understandable. However, it doesn't explicitly differentiate from its sibling 'get_notice_list' (which likely lists multiple notices), leaving some ambiguity about when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_notice_list'. It mentions 'specific MapleStory notice' which implies you need a particular notice ID, but doesn't state this explicitly or mention prerequisites. No exclusions or comparisons with siblings are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notice_listC

Retrieve list of MapleStory game notices and announcements

ParametersJSON Schema
NameRequiredDescriptionDefault
noticeTypeNoType of notices to retrieve (optional)general
pageNoPage number for pagination (1-based, optional, defaults to 1)
limitNoNumber of notices per page (optional, defaults to 10)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it retrieves a list but doesn't mention whether this is a read-only operation, if authentication is required, rate limits, error conditions, or what the return format looks like. This leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficiently complete. It doesn't address behavioral aspects like safety, authentication, or return format, leaving the agent with incomplete context for a tool that retrieves potentially complex data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter information beyond what's already in the schema, which has 100% coverage with clear descriptions, defaults, and constraints. The baseline score of 3 reflects adequate schema documentation without additional value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve list') and resource ('MapleStory game notices and announcements'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from its sibling 'get_notice_detail', which retrieves individual notice details rather than a list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_notice_detail' or other sibling tools. It lacks context about appropriate use cases, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_overall_rankingC

Retrieve overall level rankings for MapleStory characters with filtering options

ParametersJSON Schema
NameRequiredDescriptionDefault
worldNameNoWorld name to get rankings for (optional)
worldTypeNoWorld type filter (optional)
classNameNoCharacter class filter (optional)
characterNameNoSpecific character name to search for (optional)
pageNoPage number for pagination (1-based, optional, defaults to 1)
dateNoDate for rankings in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves rankings but doesn't describe what the rankings include (e.g., level, experience), how results are ordered, pagination behavior, rate limits, authentication needs, or data freshness. This leaves significant gaps for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words, though it could be slightly more structured by explicitly listing key filter types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what data is returned (e.g., ranking structure, fields), how to interpret results, or error conditions. The agent lacks context to use this tool effectively beyond basic parameter passing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional parameter semantics beyond mentioning 'filtering options', which is already implied by the schema. This meets the baseline for high schema coverage but doesn't enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and resource ('overall level rankings for MapleStory characters'), making the purpose evident. However, it doesn't explicitly differentiate this tool from sibling ranking tools like 'get_guild_ranking' or 'get_union_ranking', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'filtering options' but provides no guidance on when to use this tool versus alternatives like 'get_character_basic_info' or other ranking tools. There's no mention of prerequisites, typical use cases, or limitations beyond what parameters imply.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_starforce_probabilityC

Retrieve starforce enhancement probability information and success rates

ParametersJSON Schema
NameRequiredDescriptionDefault
itemLevelNoItem level for starforce probability (optional)
currentStarsNoCurrent starforce level (optional)
targetStarsNoTarget starforce level (optional)
eventTypeNoStarforce event type (optional)
dateNoDate for probability data in YYYY-MM-DD format (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but only states what the tool retrieves without detailing how it behavesโ€”e.g., whether it's a read-only operation, if it requires authentication, rate limits, or error handling. This leaves significant gaps in understanding the tool's operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for the tool's complexity, making it easy to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is incomplete. It lacks details on behavioral traits, usage context, and output expectations, which are crucial for an AI agent to invoke the tool correctly without structured support from annotations or output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what's in the schema, such as explaining relationships between parameters or providing usage examples. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('retrieve') and resources ('starforce enhancement probability information and success rates'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'get_cube_probability', which might handle similar probability calculations but for different game mechanics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as 'get_cube_probability' or other sibling tools. It lacks context about prerequisites, scenarios where it's most useful, or any exclusions, leaving the agent to infer usage based on the name and parameters alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_union_infoC

Retrieve union information for a MapleStory character including level, grade, and artifact details

ParametersJSON Schema
NameRequiredDescriptionDefault
characterNameYesThe name of the character to look up union info for
dateNoDate for union info in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions what data is retrieved but omits critical details such as rate limits, authentication requirements, error handling, or data freshness (e.g., if it fetches live or cached data). This is inadequate for a tool with potential external dependencies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by specifying the action, target, and key data points, making it easy to scan and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that likely interacts with an external game API. It lacks details on return format (e.g., structure of union info), error cases, or behavioral constraints, which are essential for reliable agent use in this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents both parameters (characterName and date). The description adds no additional parameter semantics beyond implying union info retrieval, aligning with the baseline score when schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('retrieve') and resource ('union information for a MapleStory character'), specifying the included details (level, grade, artifact details). It distinguishes from siblings like get_character_basic_info or get_union_raider by focusing on union-specific data, though it doesn't explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_character_full_info or get_union_raider. The description implies usage for union-related data but lacks explicit context, prerequisites, or exclusions, leaving the agent to infer based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_union_raiderC

Retrieve union raider board information including block placement and stats

ParametersJSON Schema
NameRequiredDescriptionDefault
characterNameYesThe name of the character to look up union raider for
dateNoDate for union raider in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving information, implying a read-only operation, but doesn't specify if it requires authentication, rate limits, error conditions, or what the output format looks like (e.g., JSON structure). For a tool with no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and wastes no words, making it easy to parse. However, it could be slightly more structured by explicitly separating the tool's function from its output details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that likely returns complex data (e.g., union raider board with blocks and stats). It doesn't hint at the response structure, error handling, or behavioral constraints, leaving significant gaps for the agent to infer usage in a broader context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear documentation for both parameters (characterName and date). The description adds minimal value beyond the schema, as it doesn't explain parameter interactions or provide additional context like what happens if the date is invalid or the character doesn't exist. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and the resource 'union raider board information', specifying it includes 'block placement and stats'. It distinguishes this tool from siblings like get_union_info or get_union_ranking by focusing on raider board details rather than general union data or rankings. However, it doesn't explicitly contrast with all siblings, keeping it at 4 instead of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_character_stats or get_union_info. It lacks context about prerequisites, such as whether the character must be in a union, or exclusions for when not to use it. This leaves the agent with minimal usage direction beyond the tool's name and parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_union_rankingB

Retrieve union power rankings for a specific world or overall rankings

ParametersJSON Schema
NameRequiredDescriptionDefault
worldNameNoWorld name to get rankings for (optional, gets all worlds if not specified)
characterNameNoSpecific character name to search for in rankings (optional)
pageNoPage number for pagination (1-based, optional, defaults to 1)
dateNoDate for rankings in YYYY-MM-DD format (optional, defaults to yesterday)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions retrieval but doesn't describe what 'union power rankings' actually contain, how results are structured, whether there are rate limits, authentication requirements, or data freshness considerations. For a ranking tool with 4 parameters, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place - 'Retrieve' specifies the action, 'union power rankings' identifies the resource, and 'for a specific world or overall rankings' clarifies the scope options without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only ranking tool with comprehensive schema documentation but no output schema, the description is minimally adequate. It identifies what's being retrieved but doesn't explain the ranking system, result format, or typical use cases. With no annotations and no output schema, more context about what 'union power rankings' represent would be helpful for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are well-documented in the schema itself. The description adds minimal value beyond the schema - it mentions 'specific world' which corresponds to worldName, and 'overall rankings' which implies no worldName, but doesn't provide additional semantic context about parameter interactions or ranking criteria.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and resource ('union power rankings'), and specifies the scope options ('for a specific world or overall rankings'). It doesn't explicitly differentiate from sibling tools like get_union_info or get_overall_ranking, but the focus on 'union power rankings' provides reasonable distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives like get_overall_ranking or get_union_info. The description mentions 'overall rankings' but doesn't clarify the relationship with the similarly named sibling tool get_overall_ranking, leaving the agent to guess about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

health_checkB

Check the health status of the MCP server and NEXON API connection

ParametersJSON Schema
NameRequiredDescriptionDefault
includeDetailsNoWhether to include detailed system information

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe what 'health status' entails (e.g., response format, success/failure indicators, timeout behavior, or what happens if connections fail). For a diagnostic tool with zero annotation coverage, this leaves significant gaps in understanding its operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any redundant or unnecessary information. It is appropriately sized and front-loaded, making it easy to parse while conveying the essential function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficient for a diagnostic tool. It doesn't explain what the health check returns (e.g., status codes, metrics, error details) or how to interpret results, leaving the agent without necessary context to use the tool effectively beyond knowing its broad purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'includeDetails' fully documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, so it meets the baseline of 3 where the schema handles the parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Check') and the target resources ('health status of the MCP server and NEXON API connection'), distinguishing it from all sibling tools which focus on game data retrieval rather than system monitoring. It provides a precise verb+resource combination that leaves no ambiguity about its function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, prerequisites, or context for invocation. While the purpose is clear, there is no mention of when it should be triggered (e.g., during initialization, after errors, periodically) or how it differs from other diagnostic tools that might exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation3/5

The tools have clear distinctions between character, guild, notice, union, and ranking categories, but there is notable overlap within character tools (get_character_basic_info, get_character_full_info, get_character_stats, get_character_equipment) where their purposes could be confused, especially since get_character_full_info appears to encompass the others. Descriptions help differentiate them, but an agent might struggle to choose the most efficient one.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_character_basic_info, get_guild_info, get_notice_list). The pattern is predictable and readable throughout the set, with no deviations in style or convention.

Tool Count5/5

With 15 tools, the count is well-scoped for a MapleStory MCP server covering character, guild, notice, union, ranking, and server health aspects. Each tool earns its place by targeting specific resources or actions, and the number aligns with typical server scopes (3-15 tools).

Completeness4/5

The tool surface provides comprehensive coverage for retrieving information in the MapleStory domain, including character details, guild data, notices, union info, and rankings. Minor gaps exist, such as no tools for updating or creating data (e.g., modifying characters or guilds), but agents can work around this for read-only operations, and core workflows are well-covered.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI assistants with access to real-time Brawl Stars game data including player statistics, club information, brawler details, battle logs, and current events through the Brawl Stars API.
    17
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that integrates the Neople Cyphers Open API with AI assistants for searching players, match histories, and rankings. It provides tools for retrieving character info, game items, and real-time statistics directly through natural language.
    13
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Provides real-time access to Path of Exile 2 game data including currency exchange rates, item prices, and ladder meta-build statistics. It also enables LLMs to search the community wiki and retrieve datamined game information from public APIs.
    8
    5
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ljy9303/maplestory-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server