Skip to main content
Glama
kcw2034

io.github.kcw2034/maplestory-mcp-server

by kcw2034
README.md
# MapleStory MCP Server

An MCP (Model Context Protocol) server that wraps the [Nexon MapleStory OpenAPI](https://open.api.nexon.com), allowing AI assistants to query MapleStory game data including character info, rankings, union, guild, and more.

## Features

- **Character** - Basic info, stats, equipment, skills, V/HEXA matrix, Dojang records
- **Union** - Union level, raider layout, artifact info
- **Guild** - Guild search and basic info
- **Ranking** - Overall, union, guild, Dojang, The Seed, achievement rankings
- **History** - Starforce, cube, potential re-roll history
- **Notice** - Official notices, updates, events, cash shop notices

## Prerequisites

- Python 3.13+
- [uv](https://docs.astral.sh/uv/) package manager
- MapleStory API key from [Nexon OpenAPI](https://open.api.nexon.com)

## Installation

```bash
# Clone the repository
git clone https://github.com/kcw2034/maplestory-mcp-server.git
cd maplestory-mcp-server

# Install dependencies
uv sync
```

## Configuration

Create a `.env` file in the project root:

```env
MAPLESTORY_API_KEY=your_api_key_here
```

You can get an API key by registering an app at [Nexon OpenAPI](https://open.api.nexon.com).

## Usage

### Running the server

```bash
uv run server.py
```

### Claude Desktop configuration

Add this to your Claude Desktop config (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "maplestory": {
      "command": "uv",
      "args": ["run", "server.py"],
      "cwd": "/path/to/maplestory-mcp-server",
      "env": {
        "MAPLESTORY_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

## Available Tools

| Category | Tool | Description |
|----------|------|-------------|
| Character | `get_character_ocid` | Look up character OCID by name |
| Character | `get_character_basic` | Basic info (level, class, world, guild) |
| Character | `get_character_stat` | Combined stats (STR, DEX, combat power) |
| Character | `get_character_item_equipment` | Equipped items |
| Character | `get_character_skill` | Skill info by grade |
| Character | `get_character_hexamatrix` | HEXA matrix (6th job skills) |
| Union | `get_union` | Union level and grade |
| Union | `get_union_raider` | Union raider layout and effects |
| Guild | `get_guild_id` | Look up guild ID by name and world |
| Guild | `get_guild_basic` | Guild basic info |
| Ranking | `get_ranking_overall` | Overall ranking |
| Ranking | `get_ranking_dojang` | Mu Lung Dojang ranking |
| History | `get_history_starforce` | Starforce enhancement history |
| Notice | `get_notices` | Official notice list |

> See `server.py` for the full list of 30+ tools.

## License

[MIT](LICENSE)

<!-- mcp-name: io.github.kcw2034/maplestory-mcp-server -->

TDQS

B3.4/5.0

Scored across 39 tools

Disambiguation5/5

Every tool follows a clear get_<category>_<subcategory> pattern and maps to a distinct API resource: character stats, equipment categories, skills, union/guild, rankings, histories, and notices are all unambiguous. Even near-neighbor tools like get_character_vmatrix vs get_character_hexamatrix are separated by explicit grade/domain.

Naming Consistency5/5

All 39 tools use the same verb prefix (`get_`) and snake_case noun hierarchy, making the namespace highly predictable. Minor structural differences (e.g., `get_union` vs `get_guild_basic`) reflect actual resource groupings rather than inconsistent style.

Tool Count2/5

At 39 tools, the set is well beyond the 25+ threshold and will be heavy for agents to navigate, even though each endpoint is distinct. The server could be reduced by grouping related lookups (e.g., one notices tool with category filters or one equipment tool with a type parameter).

Completeness5/5

The set covers the full MapleStory read-only domain: character basics/equipment/skills/progress, union, guild, all ranking categories, enhancement histories, and notice retrieval with detail lookup. There are no obvious dead ends; prerequisite lookup tools (OCID, guild ID) are included.

Maintenance

ActivityInactive
ResponsivenessNo issues