MGS Toolbox
Fantasy TTRPG data: metals, minerals, ingredients, potions, gems, craft rules, music catalogue.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"toolbox": {
"url": "https://michaelghelfistudios.com/api/v1/mcp"
}
}
}원격 엔드포인트
https://michaelghelfistudios.com/api/v1/mcpstreamable-http할 수 있는 일
도구 목록
도구 (12)
🟢search_encyclopedia(q, kind, lang, limit)
Find metals, minerals, alchemical ingredients, potions and gems by name (case- and accent-insensitive; exact names first, then prefixes, then substrings, aliases included). Returns each hit with its kind, id, one-line summary and page url; call get_entry for the full data.
입력 스키마
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 1,
"description": "The name or part of it."
},
"kind": {
"type": "string",
"description": "Restrict to some catalogues, comma-separated (e.g. \"metal,mineral\")."
},
"lang": {
"type": "string",
"enum": [
"en",
"fr",
"all"
],
"description": "Language of the texts: en (default), fr, or all for both."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"q"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_entry(kind, id, lang)
The full data of one metal, mineral, ingredient, potion or gem by its id (from search_encyclopedia or list_entries): properties, lore, page url, embed_url.
입력 스키마
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"metal",
"mineral",
"ingredient",
"potion",
"gem"
],
"description": "Which catalogue: metal, mineral, ingredient, potion or gem."
},
"id": {
"type": "string",
"description": "The entry id, e.g. \"iron\", \"rose_quartz\"."
},
"lang": {
"type": "string",
"enum": [
"en",
"fr",
"all"
],
"description": "Language of the texts: en (default), fr, or all for both."
}
},
"required": [
"kind",
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_entries(kind, filters, q, lang, limit, ...)
A page of one catalogue, filtered. Use it to answer "which minerals are cubic and gem-quality?", "legendary metals of the medieval era", "swamp ingredients with a fire essence". Combine with q for a name search inside the filter.
입력 스키마
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"metal",
"mineral",
"ingredient",
"potion",
"gem"
],
"description": "Which catalogue: metal, mineral, ingredient, potion or gem."
},
"filters": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Field filters as {name: \"value\" | \"value1,value2\"} (any-of, case-insensitive). Names per catalogue: metal → category, era, rarity, fictional, tag; mineral → type, system, rarity, gem_quality, color, magic, planar_origin, origin; ingredient → category, rarity, environment, essence, tag; potion → essence; gem → color, rarity, temporary. list_facets gives the values."
},
"q": {
"type": "string"
},
"lang": {
"type": "string",
"enum": [
"en",
"fr",
"all"
],
"description": "Language of the texts: en (default), fr, or all for both."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"type": "integer",
"minimum": 0
}
},
"required": [
"kind"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪random_entry(kind, filters, lang)
One entry at random among those matching the filters: loot tables, "mineral of the day", a credible metal for a blacksmith, a foraging roll.
입력 스키마
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"metal",
"mineral",
"ingredient",
"potion",
"gem"
],
"description": "Which catalogue: metal, mineral, ingredient, potion or gem."
},
"filters": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Field filters as {name: \"value\" | \"value1,value2\"} (any-of, case-insensitive). Names per catalogue: metal → category, era, rarity, fictional, tag; mineral → type, system, rarity, gem_quality, color, magic, planar_origin, origin; ingredient → category, rarity, environment, essence, tag; potion → essence; gem → color, rarity, temporary. list_facets gives the values."
},
"lang": {
"type": "string",
"enum": [
"en",
"fr",
"all"
],
"description": "Language of the texts: en (default), fr, or all for both."
}
},
"required": [
"kind"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_facets(kind)
Every distinct value of each filterable field of a catalogue (categories, rarities, crystal systems, environments, essences…) and its entry count.
입력 스키마
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"metal",
"mineral",
"ingredient",
"potion",
"gem"
],
"description": "Which catalogue: metal, mineral, ingredient, potion or gem."
}
},
"required": [
"kind"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪craft_rules(lang)
The rules of the crafting system (characters, essences, extraction, brewing, gem cutting, socketing) as titled HTML sections.
입력 스키마
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"fr",
"all"
],
"description": "Language of the texts: en (default), fr, or all for both."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_tracks(type, genre, mood, era, keyword, ...)
Published tracks of MGS Audio (music, ambiences, sound effects) with composer, album, moods, keywords, duration and page url. Metadata only: no audio file. "A battle theme" → genre: "Combat", type: "music"; "a forest ambience" → type: "ambience", genre: "Forest"; "something for a dungeon" → keyword: "dungeon".
입력 스키마
{
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Audio type(s), comma-separated: music, ambience, sfx…"
},
"genre": {
"type": "string",
"description": "Theme(s), comma-separated, case-insensitive: Combat, Forest, Dungeon, Taverns and Inns, Magic, Weather… (audio_taxonomy lists them)."
},
"mood": {
"type": "string",
"description": "Musical style(s), comma-separated: Orchestral, Celtic, Folk, Medieval, Metal…"
},
"era": {
"type": "string",
"description": "Era token(s), comma-separated."
},
"keyword": {
"type": "string",
"description": "Keyword(s), comma-separated, any of them."
},
"composer": {
"type": "string",
"description": "Composer id or slug."
},
"album": {
"type": "string",
"description": "Album id or slug."
},
"q": {
"type": "string",
"description": "Text search in title, description, keywords."
},
"duration_min": {
"type": "number",
"description": "Minimum duration, seconds."
},
"duration_max": {
"type": "number",
"description": "Maximum duration, seconds."
},
"sort": {
"type": "string",
"enum": [
"newest",
"oldest",
"title",
"duration",
"random"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪random_track(type, genre, mood, era, keyword, ...)
One published track at random among those matching the filters.
입력 스키마
{
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Audio type(s), comma-separated: music, ambience, sfx…"
},
"genre": {
"type": "string",
"description": "Theme(s), comma-separated, case-insensitive: Combat, Forest, Dungeon, Taverns and Inns, Magic, Weather… (audio_taxonomy lists them)."
},
"mood": {
"type": "string",
"description": "Musical style(s), comma-separated: Orchestral, Celtic, Folk, Medieval, Metal…"
},
"era": {
"type": "string",
"description": "Era token(s), comma-separated."
},
"keyword": {
"type": "string",
"description": "Keyword(s), comma-separated, any of them."
},
"composer": {
"type": "string",
"description": "Composer id or slug."
},
"album": {
"type": "string",
"description": "Album id or slug."
},
"q": {
"type": "string",
"description": "Text search in title, description, keywords."
},
"duration_min": {
"type": "number",
"description": "Minimum duration, seconds."
},
"duration_max": {
"type": "number",
"description": "Maximum duration, seconds."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_track(id)
One track by id or slug, with its published alternative versions.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_composers
Every composer with published tracks, most prolific first, with their page url.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_albums(limit, offset)
Published albums with track count, page url and an embeddable player url.
입력 스키마
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪audio_taxonomy
The vocabulary of the track filters: every genre, mood, era and keyword in use.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거