maplestorysea-mcp-server
Version:
NEXON MapleStory SEA API MCP Server for Claude Desktop - Complete character info, union details, guild data, rankings optimized for SEA servers
812 lines • 22.1 kB
TypeScript
/**
* TypeScript interfaces for NEXON MapleStory SEA Open API
* Based on official NEXON Open API documentation for SEA region
*/
export interface BaseApiResponse {
count?: number;
}
import type { MemoryCache } from '../utils/cache';
export interface ApiError {
error: {
name: string;
message: string;
};
}
export interface CharacterOcid {
ocid: string;
}
export interface CharacterBasic {
date: string;
character_name: string;
world_name: string;
character_gender: string;
character_class: string;
character_class_level: string;
character_level: number;
character_exp: number;
character_exp_rate: string;
character_guild_name: string;
character_image: string;
}
export interface CharacterStat {
date: string;
character_class: string;
final_stat: Array<{
stat_name: string;
stat_value: string;
}>;
remain_ap: number;
}
export interface CharacterHyperStat {
date: string;
character_class: string;
use_preset_no: string;
use_available_hyper_stat: number;
hyper_stat_preset_1: Array<{
stat_type: string;
stat_point: number;
stat_level: number;
stat_increase: string;
}>;
hyper_stat_preset_2: Array<{
stat_type: string;
stat_point: number;
stat_level: number;
stat_increase: string;
}>;
hyper_stat_preset_3: Array<{
stat_type: string;
stat_point: number;
stat_level: number;
stat_increase: string;
}>;
}
export interface CharacterPropensity {
date: string;
charisma_level: number;
sensibility_level: number;
insight_level: number;
willpower_level: number;
handicraft_level: number;
charm_level: number;
}
export interface CharacterAbility {
date: string;
ability_grade: string;
ability_info: Array<{
ability_no: string;
ability_grade: string;
ability_value: string;
}>;
remain_fame: number;
preset_no: number;
}
export interface ItemEquipment {
date: string;
character_gender: string;
character_class: string;
preset_no: number;
item_equipment: Array<{
item_equipment_part: string;
item_equipment_slot: string;
item_name: string;
item_icon: string;
item_description: string;
item_shape_name: string;
item_shape_icon: string;
item_gender: string;
item_total_option: {
str: string;
dex: string;
int: string;
luk: string;
max_hp: string;
max_mp: string;
attack_power: string;
magic_power: string;
armor: string;
speed: string;
jump: string;
boss_damage: string;
ignore_monster_armor: string;
all_stat: string;
damage: string;
equipment_level_decrease: number;
max_hp_rate: string;
max_mp_rate: string;
};
item_base_option: {
str: string;
dex: string;
int: string;
luk: string;
max_hp: string;
max_mp: string;
attack_power: string;
magic_power: string;
armor: string;
speed: string;
jump: string;
boss_damage: string;
ignore_monster_armor: string;
all_stat: string;
max_hp_rate: string;
max_mp_rate: string;
base_equipment_level: number;
};
potential_option_grade: string;
additional_potential_option_grade: string;
potential_option_1: string;
potential_option_2: string;
potential_option_3: string;
additional_potential_option_1: string;
additional_potential_option_2: string;
additional_potential_option_3: string;
equipment_level_increase: number;
equipment_exp: number;
equipment_exp_rate: string;
item_exceptional_option: {
str: string;
dex: string;
int: string;
luk: string;
max_hp: string;
max_mp: string;
attack_power: string;
magic_power: string;
};
item_add_option: {
str: string;
dex: string;
int: string;
luk: string;
max_hp: string;
max_mp: string;
attack_power: string;
magic_power: string;
speed: string;
jump: string;
boss_damage: string;
damage: string;
all_stat: string;
equipment_level_decrease: number;
};
growth_exp: number;
growth_level: number;
scroll_upgrade: string;
cuttable_count: string;
golden_hammer_flag: string;
scroll_resilience_count: string;
scroll_upgradeable_count: string;
soul_name: string;
soul_option: string;
item_etc_option: {
str: string;
dex: string;
int: string;
luk: string;
max_hp: string;
max_mp: string;
attack_power: string;
magic_power: string;
armor: string;
speed: string;
jump: string;
};
starforce: string;
starforce_scroll_flag: string;
item_starforce_option: {
str: string;
dex: string;
int: string;
luk: string;
max_hp: string;
max_mp: string;
attack_power: string;
magic_power: string;
armor: string;
speed: string;
jump: string;
};
special_ring_level: number;
date_expire: string;
}>;
title: {
title_name: string;
title_icon: string;
title_description: string;
date_expire: string;
date_option_expire: string;
};
dragon_equipment: Array<{
item_equipment_part: string;
equipment_slot: string;
item_name: string;
item_icon: string;
item_description: string;
item_shape_name: string;
item_shape_icon: string;
item_gender: string;
}>;
mechanic_equipment: Array<{
item_equipment_part: string;
equipment_slot: string;
item_name: string;
item_icon: string;
item_description: string;
item_shape_name: string;
item_shape_icon: string;
item_gender: string;
}>;
}
export interface UnionInfo {
date: string;
union_level: number;
union_grade: string;
union_artifact_level: number;
union_artifact_exp: number;
union_artifact_point: number;
}
export interface UnionRaider {
date: string;
union_raider_stat: string[];
union_occupied_stat: string[];
union_inner_stat: Array<{
stat_field_id: string;
stat_field_effect: string;
}>;
union_block: Array<{
block_type: string;
block_class: string;
block_level: string;
block_control_point: {
x: number;
y: number;
};
block_position: Array<{
x: number;
y: number;
}>;
}>;
use_preset_no: number;
union_raider_preset_1: {
union_raider_stat: string[];
union_occupied_stat: string[];
union_inner_stat: Array<{
stat_field_id: string;
stat_field_effect: string;
}>;
union_block: Array<{
block_type: string;
block_class: string;
block_level: string;
block_control_point: {
x: number;
y: number;
};
block_position: Array<{
x: number;
y: number;
}>;
}>;
};
union_raider_preset_2: {
union_raider_stat: string[];
union_occupied_stat: string[];
union_inner_stat: Array<{
stat_field_id: string;
stat_field_effect: string;
}>;
union_block: Array<{
block_type: string;
block_class: string;
block_level: string;
block_control_point: {
x: number;
y: number;
};
block_position: Array<{
x: number;
y: number;
}>;
}>;
};
union_raider_preset_3: {
union_raider_stat: string[];
union_occupied_stat: string[];
union_inner_stat: Array<{
stat_field_id: string;
stat_field_effect: string;
}>;
union_block: Array<{
block_type: string;
block_class: string;
block_level: string;
block_control_point: {
x: number;
y: number;
};
block_position: Array<{
x: number;
y: number;
}>;
}>;
};
}
export interface GuildId {
oguild_id: string;
}
export interface GuildBasic {
date: string;
world_name: string;
guild_name: string;
guild_level: number;
guild_fame: number;
guild_point: number;
guild_master_name: string;
guild_member_count: number;
guild_member: string[];
guild_skill: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
guild_noblesse_skill: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
guild_mark: string;
guild_mark_custom: string;
}
export interface GuildMember {
guild_member: Array<{
character_name: string;
character_level: number;
character_class: string;
}>;
}
export interface OverallRanking extends BaseApiResponse {
ranking: Array<{
date: string;
ranking: number;
character_name: string;
world_name: string;
class_name: string;
sub_class_name: string;
character_level: number;
character_exp: number;
character_popularity: number;
character_guildname: string;
}>;
}
export interface UnionRanking extends BaseApiResponse {
ranking: Array<{
date: string;
ranking: number;
character_name: string;
world_name: string;
class_name: string;
sub_class_name: string;
union_level: number;
union_power: number;
}>;
}
export interface GuildRanking extends BaseApiResponse {
ranking: Array<{
date: string;
ranking: number;
guild_name: string;
world_name: string;
guild_level: number;
guild_master_name: string;
guild_mark: string;
guild_point: number;
}>;
}
export interface ApiClientConfig {
apiKey: string;
baseURL?: string;
timeout?: number;
retryAttempts?: number;
retryDelay?: number;
cache?: MemoryCache;
}
export interface PaginationParams {
count?: number;
page?: number;
}
export interface DateParam {
date?: string;
}
export interface CharacterPopularity {
date: string;
popularity: number;
character_name: string;
}
export interface SymbolEquipment {
date: string;
character_class: string;
symbol: Array<{
symbol_name: string;
symbol_icon: string;
symbol_description: string;
symbol_force: string;
symbol_level: number;
symbol_str: string;
symbol_dex: string;
symbol_int: string;
symbol_luk: string;
symbol_hp: string;
symbol_growth_count: number;
symbol_require_growth_count: number;
}>;
}
export interface SetEffect {
date: string;
set_effect: Array<{
set_name: string;
total_set_count: number;
set_effect_info: Array<{
set_count: number;
set_option: string;
}>;
set_option: string;
}>;
}
export interface AndroidEquipment {
date: string;
android_name: string;
android_nickname: string;
android_icon: string;
android_description: string;
android_hair: {
hair_name: string;
base_color: string;
mix_color: string;
mix_rate: string;
};
android_face: {
face_name: string;
base_color: string;
mix_color: string;
mix_rate: string;
};
android_ear_sensor_clip_flag: string;
android_gender: string;
android_grade: string;
android_skin_name: string;
android_cash_item_equipment: Array<{
cash_item_equipment_part: string;
cash_item_equipment_slot: string;
cash_item_name: string;
cash_item_icon: string;
cash_item_description: string;
cash_item_option: Array<{
option_type: string;
option_value: string;
}>;
date_expire: string;
date_option_expire: string;
cash_item_label: string;
cash_item_coloring_prism: {
color_range: string;
hue: number;
saturation: number;
value: number;
};
}>;
android_non_cash_item_equipment: Array<{
non_cash_item_equipment_part: string;
non_cash_item_equipment_slot: string;
non_cash_item_name: string;
non_cash_item_icon: string;
}>;
android_preset_1: any;
android_preset_2: any;
android_preset_3: any;
}
export interface PetEquipment {
date: string;
pet_1_name: string;
pet_1_nickname: string;
pet_1_icon: string;
pet_1_description: string;
pet_1_equipment: Array<{
item_name: string;
item_icon: string;
item_description: string;
item_option: Array<{
option_type: string;
option_value: string;
}>;
scroll_upgrade: string;
scroll_upgradeable: string;
item_shape: string;
item_shape_icon: string;
}>;
pet_1_auto_skill: {
skill_1: string;
skill_1_icon: string;
skill_2: string;
skill_2_icon: string;
};
pet_1_pet_type: string;
pet_1_skill: Array<string>;
pet_1_date_expire: string;
pet_1_appearance: string;
pet_1_appearance_icon: string;
pet_2_name: string;
pet_2_nickname: string;
pet_2_icon: string;
pet_2_description: string;
pet_2_equipment: Array<{
item_name: string;
item_icon: string;
item_description: string;
item_option: Array<{
option_type: string;
option_value: string;
}>;
scroll_upgrade: string;
scroll_upgradeable: string;
item_shape: string;
item_shape_icon: string;
}>;
pet_2_auto_skill: {
skill_1: string;
skill_1_icon: string;
skill_2: string;
skill_2_icon: string;
};
pet_2_pet_type: string;
pet_2_skill: Array<string>;
pet_2_date_expire: string;
pet_2_appearance: string;
pet_2_appearance_icon: string;
pet_3_name: string;
pet_3_nickname: string;
pet_3_icon: string;
pet_3_description: string;
pet_3_equipment: Array<{
item_name: string;
item_icon: string;
item_description: string;
item_option: Array<{
option_type: string;
option_value: string;
}>;
scroll_upgrade: string;
scroll_upgradeable: string;
item_shape: string;
item_shape_icon: string;
}>;
pet_3_auto_skill: {
skill_1: string;
skill_1_icon: string;
skill_2: string;
skill_2_icon: string;
};
pet_3_pet_type: string;
pet_3_skill: Array<string>;
pet_3_date_expire: string;
pet_3_appearance: string;
pet_3_appearance_icon: string;
}
export interface CharacterSkill {
date: string;
character_class: string;
character_skill_grade: string;
character_skill: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
}
export interface LinkSkill {
date: string;
character_class: string;
character_link_skill: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
character_link_skill_preset_1: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
character_link_skill_preset_2: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
character_link_skill_preset_3: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
character_owned_link_skill: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
character_owned_link_skill_preset_1: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
character_owned_link_skill_preset_2: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
character_owned_link_skill_preset_3: Array<{
skill_name: string;
skill_description: string;
skill_level: number;
skill_effect: string;
skill_icon: string;
}>;
}
export interface VMatrix {
date: string;
character_class: string;
character_v_core_equipment: Array<{
slot_id: string;
slot_level: number;
v_core_name: string;
v_core_type: string;
v_core_level: number;
v_core_skill_1: string;
v_core_skill_2: string;
v_core_skill_3: string;
}>;
character_v_matrix_remain_slot_upgrade_point: number;
}
export interface HexaMatrix {
date: string;
character_hexa_core_equipment: Array<{
hexa_core_name: string;
hexa_core_level: number;
hexa_core_type: string;
linked_skill: Array<{
hexa_skill_id: string;
}>;
}>;
character_hexa_matrix_preset_1: Array<{
hexa_core_name: string;
hexa_core_level: number;
hexa_core_type: string;
linked_skill: Array<{
hexa_skill_id: string;
}>;
}>;
character_hexa_matrix_preset_2: Array<{
hexa_core_name: string;
hexa_core_level: number;
hexa_core_type: string;
linked_skill: Array<{
hexa_skill_id: string;
}>;
}>;
character_hexa_matrix_preset_3: Array<{
hexa_core_name: string;
hexa_core_level: number;
hexa_core_type: string;
linked_skill: Array<{
hexa_skill_id: string;
}>;
}>;
}
export interface HexaMatrixStat {
date: string;
character_class: string;
character_hexa_stat_core: Array<{
slot_id: string;
main_stat_name: string;
sub_stat_name_1: string;
sub_stat_name_2: string;
main_stat_level: number;
sub_stat_level_1: number;
sub_stat_level_2: number;
stat_grade: number;
}>;
preset_hexa_stat_core: Array<{
slot_id: string;
main_stat_name: string;
sub_stat_name_1: string;
sub_stat_name_2: string;
main_stat_level: number;
sub_stat_level_1: number;
sub_stat_level_2: number;
stat_grade: number;
}>;
}
export interface DojangRecord {
date: string;
character_class: string;
world_name: string;
dojang_best_floor: number;
date_dojang_record: string;
dojang_best_time: number;
}
export interface UnionArtifact {
date: string;
union_artifact_effect: Array<{
name: string;
level: number;
}>;
union_artifact_crystal: Array<{
name: string;
validity_flag: string;
date_expire: string;
level: number;
crystal_option_name_1: string;
crystal_option_name_2: string;
crystal_option_name_3: string;
}>;
union_artifact_remain_ap: number;
}
export interface DojangRanking extends BaseApiResponse {
ranking: Array<{
date: string;
ranking: number;
character_name: string;
world_name: string;
class_name: string;
sub_class_name: string;
character_level: number;
dojang_floor: number;
dojang_time_record: number;
}>;
}
export interface TheSeedRanking extends BaseApiResponse {
ranking: Array<{
date: string;
ranking: number;
character_name: string;
world_name: string;
class_name: string;
sub_class_name: string;
character_level: number;
theseed_floor: number;
theseed_time_record: number;
}>;
}
export interface AchievementRanking extends BaseApiResponse {
ranking: Array<{
date: string;
ranking: number;
character_name: string;
world_name: string;
class_name: string;
sub_class_name: string;
trophy_point: number;
trophy_grade: string;
}>;
}
export type CharacterInfo = CharacterBasic & CharacterStat & CharacterHyperStat & CharacterPropensity & CharacterAbility;
export type EquipmentInfo = ItemEquipment;
export type RankingInfo = OverallRanking | UnionRanking | GuildRanking | DojangRanking | TheSeedRanking | AchievementRanking;
//# sourceMappingURL=types.d.ts.map