MCP Server

FFT Companion

app.fftcompanion/fft-companion
Gaming Public & reachable MCP 2025-11-25

What this MCP does

Provides searchable and comparable data for Final Fantasy Tactics releases, including jobs, monsters, equipment, abilities, locations, and item sources.

compare_versions
Diff a record across releases
Compares the same entity across psx, wotl and ic and reports exactly which fields changed. Answers questions like "was this weapon nerfed in War of the Lions?" or "did Ivalice Chronicles lift the female-only restriction?" that otherwise require holding three datasets side by side. Free while this deployment runs unmetered.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind', 'id'], 'properties': {'id': {'type': 'string', 'description': 'Entity id, present in at least one version.'}, 'kind': {'enum': ['equipment', 'abilities', 'jobs', 'monsters', 'bosses', 'locations', 'consumables'], 'type': 'string'}, 'versions': {'type': 'array', 'items': {'enum': ['psx', 'wotl', 'ic'], 'type': 'string', 'description': 'Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.'}, 'default': ['psx', 'wotl', 'ic'], 'minItems': 2, 'description': 'Which releases to compare.'}}}
find_item_sources
Find where an item comes from
Reverse lookup: every way to obtain a piece of equipment or a consumable — which outfitter unlocks it and after which battle, which monsters poach into it, and which treasure tiles hold it. This is indexed backwards from the game data and is not readable from the item record alone. Free while this deployment runs unmetered.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'itemId'], 'properties': {'itemId': {'type': 'string', 'description': "Equipment or consumable id, e.g. 'excalibur'."}, 'version': {'enum': ['psx', 'wotl', 'ic'], 'type': 'string', 'description': 'Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.'}}}
get_job
Get a job with abilities and equipment access
Full job record: raw stat multipliers and growth, static move/jump/evasion, the complete learnable ability set with JP costs, and which equipment types the job can equip. Also returns the version's stat ceilings for normalization. Free while this deployment runs unmetered.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'jobId'], 'properties': {'lang': {'enum': ['en', 'ja', 'pt', 'ko', 'es', 'fr', 'de', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en'}, 'jobId': {'type': 'string', 'description': "Job id, e.g. 'ninja', 'calculator', 'darkKnight'."}, 'version': {'enum': ['psx', 'wotl', 'ic'], 'type': 'string', 'description': 'Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.'}}}
get_monster
Get a monster with poach table and spawn locations
Full monster record: stat multipliers and growth by rank, poach drops (common and rare), ability set, and the random-battle locations it appears in per chapter — including which map you must travel from. Free while this deployment runs unmetered.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'monsterId'], 'properties': {'lang': {'enum': ['en', 'ja', 'pt', 'ko', 'es', 'fr', 'de', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en'}, 'version': {'enum': ['psx', 'wotl', 'ic'], 'type': 'string', 'description': 'Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.'}, 'monsterId': {'type': 'string', 'description': "Monster id, e.g. 'behemoth', 'redPanther'."}}}
get_records
Get full records by id
Returns complete records for up to 25 ids of one entity kind, including stats, costs, effects and availability with all cross-references resolved to names. Free while this deployment runs unmetered.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'kind', 'ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 25, 'minItems': 1, 'description': 'Entity ids from search.'}, 'kind': {'enum': ['equipment', 'abilities', 'jobs', 'monsters', 'bosses', 'locations', 'consumables'], 'type': 'string'}, 'lang': {'enum': ['en', 'ja', 'pt', 'ko', 'es', 'fr', 'de', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en'}, 'version': {'enum': ['psx', 'wotl', 'ic'], 'type': 'string', 'description': 'Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.'}}}
list_versions
List game versions
Lists the three Final Fantasy Tactics releases covered by this server and how many records exist per entity kind in each. Call this first to pick a version.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
query_equipment
Query equipment with filters
Filters and sorts the equipment table — by category, weapon/armor type, cost, and stat thresholds. Use this instead of paging through get_records when shopping for "best X under Y gil". Free while this deployment runs unmetered.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version'], 'properties': {'lang': {'enum': ['en', 'ja', 'pt', 'ko', 'es', 'fr', 'de', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1}, 'sortBy': {'type': 'string', 'description': 'Stat name to sort by, descending. Falls back to cost.'}, 'maxCost': {'type': 'number', 'description': 'Maximum shop cost in gil.'}, 'minStat': {'type': 'object', 'description': 'Minimum values per stat, e.g. { weaponPower: 10, magicAttack: 2 }.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'number'}}, 'version': {'enum': ['psx', 'wotl', 'ic'], 'type': 'string', 'description': 'Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.'}, 'category': {'enum': ['weapon', 'bodyArmor', 'shield', 'headgear', 'accessory'], 'type': 'string'}, 'subCategory': {'type': 'string', 'description': "Narrower type, e.g. 'katana', 'robe', 'hat'."}}}
search
Search the catalog
Finds entities by name or id across equipment, abilities, jobs, monsters, bosses, locations and consumables. Returns ids and display names only — use get_records or a specific data tool to retrieve the actual data. Matches English, Japanese, Portuguese, Korean, Spanish, French and German names, and is punctuation-insensitive.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'query'], 'properties': {'lang': {'enum': ['en', 'ja', 'pt', 'ko', 'es', 'fr', 'de', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en'}, 'kinds': {'type': 'array', 'items': {'enum': ['equipment', 'abilities', 'jobs', 'monsters', 'bosses', 'locations', 'consumables'], 'type': 'string'}, 'description': 'Restrict to these entity kinds.'}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'minLength': 1, 'description': "Name or id fragment, e.g. 'excalibur', 'battle axe', 'ã\x83\x99ã\x83\x92ã\x83¼ã\x83¢ã\x82¹'."}, 'version': {'enum': ['psx', 'wotl', 'ic'], 'type': 'string', 'description': 'Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.'}}}
Added
compare_versions
Sept. 17, 2026, 7:57 a.m.
Added
get_monster
Sept. 17, 2026, 7:57 a.m.
Added
get_job
Sept. 17, 2026, 7:57 a.m.
Added
find_item_sources
Sept. 17, 2026, 7:57 a.m.
Added
query_equipment
Sept. 17, 2026, 7:57 a.m.
Added
get_records
Sept. 17, 2026, 7:57 a.m.
Added
search
Sept. 17, 2026, 7:57 a.m.
Added
list_versions
Sept. 17, 2026, 7:57 a.m.