MGS Toolbox
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Fantasy TTRPG data: metals, minerals, ingredients, potions, gems, craft rules, music catalogue.
| Author | com.michaelghelfistudios |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2625 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"MGS Toolbox": {
"url": "https://michaelghelfistudios.com/api/v1/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (12)
search_encyclopediaFind metals, minerals, ingredients and materials, potions, gems, the milieux, animals, plants and creatures of Biomes and the reference pages of Hearth, Passage and Bearer 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.
Parameters:
q(required) — string — The name or part of it.kind— string — Restrict to some catalogues, comma-separated (e.g. "metal,mineral").lang— string — Language of the texts: en (default), fr, or all for both.limit— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_entryThe full data of one entry (a metal, mineral, ingredient, potion, gem, milieu, animal, plant, creature or reference page) by its id (from search_encyclopedia or list_entries): properties, lore, page url, embed_url.
Parameters:
kind(required) — string — Which catalogue: metal, mineral, ingredient, potion, gem, milieu, animal, plant, monster, hearth_page, passage_page, bearer_page.id(required) — string — The entry id, e.g. "iron", "rose_quartz".lang— string — Language of the texts: en (default), fr, or all for both.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_entriesA 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.
Parameters:
kind(required) — string — Which catalogue: metal, mineral, ingredient, potion, gem, milieu, animal, plant, monster, hearth_page, passage_page, bearer_page.q— stringlang— string — Language of the texts: en (default), fr, or all for both.limit— integeroffset— integerfilters— object — 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, realm, biome, landform, structure, qualifier, essence, creature_type, part; potion → essence; gem → color, rarity, temporary; milieu → realm, group; animal → kind, size, danger, activity, domestic and the place filters; plant → kind and the place filters; monster → type, size, cr, danger and the place filters; hearth_page, passage_page, bearer_page → none (search by name with q). list_facets gives the values.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
random_entryOne entry at random among those matching the filters: loot tables, "mineral of the day", a credible metal for a blacksmith, a foraging roll.
Parameters:
kind(required) — string — Which catalogue: metal, mineral, ingredient, potion, gem, milieu, animal, plant, monster, hearth_page, passage_page, bearer_page.lang— string — Language of the texts: en (default), fr, or all for both.filters— object — 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, realm, biome, landform, structure, qualifier, essence, creature_type, part; potion → essence; gem → color, rarity, temporary; milieu → realm, group; animal → kind, size, danger, activity, domestic and the place filters; plant → kind and the place filters; monster → type, size, cr, danger and the place filters; hearth_page, passage_page, bearer_page → none (search by name with q). list_facets gives the values.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_facetsEvery distinct value of each filterable field of a catalogue (categories, rarities, crystal systems, biomes, essences…) and its entry count.
Parameters:
kind(required) — string — Which catalogue: metal, mineral, ingredient, potion, gem, milieu, animal, plant, monster, hearth_page, passage_page, bearer_page.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
craft_rulesThe rules of the crafting system (characters, essences, extraction, brewing, gem cutting, socketing) as titled HTML sections.
Parameters:
lang— string — Language of the texts: en (default), fr, or all for both.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_tracksPublished 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".
Parameters:
q— string — Text search in title, description, keywords.era— string — Era token(s), comma-separated.mood— string — Musical style(s), comma-separated: Orchestral, Celtic, Folk, Medieval, Metal…sort— stringtype— string — Audio type(s), comma-separated: music, ambience, sfx…album— string — Album id or slug.genre— string — Theme(s), comma-separated, case-insensitive: Combat, Forest, Dungeon, Taverns and Inns, Magic, Weather… (audio_taxonomy lists them).limit— integeroffset— integerkeyword— string — Keyword(s), comma-separated, any of them.composer— string — Composer id or slug.duration_max— number — Maximum duration, seconds.duration_min— number — Minimum duration, seconds.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
random_trackOne published track at random among those matching the filters.
Parameters:
q— string — Text search in title, description, keywords.era— string — Era token(s), comma-separated.mood— string — Musical style(s), comma-separated: Orchestral, Celtic, Folk, Medieval, Metal…type— string — Audio type(s), comma-separated: music, ambience, sfx…album— string — Album id or slug.genre— string — Theme(s), comma-separated, case-insensitive: Combat, Forest, Dungeon, Taverns and Inns, Magic, Weather… (audio_taxonomy lists them).keyword— string — Keyword(s), comma-separated, any of them.composer— string — Composer id or slug.duration_max— number — Maximum duration, seconds.duration_min— number — Minimum duration, seconds.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_trackOne track by id or slug, with its published alternative versions.
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_composersEvery composer with published tracks, most prolific first, with their page url.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_albumsPublished albums with track count, page url and an embeddable player url.
Parameters:
limit— integeroffset— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
audio_taxonomyThe vocabulary of the track filters: every genre, mood, era and keyword in use.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.