FFT Companion
Final Fantasy Tactics game data across the PSX, War of the Lions and Ivalice Chronicles releases
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"fft-companion": {
"url": "https://mcp.fftcompanion.app/mcp"
}
}
}Remote endpoints
https://mcp.fftcompanion.app/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
π’list_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",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}π’search(version, query, kinds, lang, limit)
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",
"properties": {
"version": {
"type": "string",
"enum": [
"psx",
"wotl",
"ic"
],
"description": "Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them."
},
"query": {
"type": "string",
"minLength": 1,
"description": "Name or id fragment, e.g. 'excalibur', 'battle axe', 'γγγΌγ’γΉ'."
},
"kinds": {
"description": "Restrict to these entity kinds.",
"type": "array",
"items": {
"type": "string",
"enum": [
"equipment",
"abilities",
"jobs",
"monsters",
"bosses",
"locations",
"consumables"
]
}
},
"lang": {
"default": "en",
"type": "string",
"enum": [
"en",
"ja",
"pt",
"ko",
"es",
"fr",
"de",
"zh-Hans",
"zh-Hant"
]
},
"limit": {
"default": 25,
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"version",
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_records(version, kind, ids, lang)
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",
"properties": {
"version": {
"type": "string",
"enum": [
"psx",
"wotl",
"ic"
],
"description": "Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them."
},
"kind": {
"type": "string",
"enum": [
"equipment",
"abilities",
"jobs",
"monsters",
"bosses",
"locations",
"consumables"
]
},
"ids": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "string"
},
"description": "Entity ids from search."
},
"lang": {
"default": "en",
"type": "string",
"enum": [
"en",
"ja",
"pt",
"ko",
"es",
"fr",
"de",
"zh-Hans",
"zh-Hant"
]
}
},
"required": [
"version",
"kind",
"ids"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π’query_equipment(version, category, subCategory, maxCost, minStat, ...)
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",
"properties": {
"version": {
"type": "string",
"enum": [
"psx",
"wotl",
"ic"
],
"description": "Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them."
},
"category": {
"type": "string",
"enum": [
"weapon",
"bodyArmor",
"shield",
"headgear",
"accessory"
]
},
"subCategory": {
"description": "Narrower type, e.g. 'katana', 'robe', 'hat'.",
"type": "string"
},
"maxCost": {
"description": "Maximum shop cost in gil.",
"type": "number"
},
"minStat": {
"description": "Minimum values per stat, e.g. { weaponPower: 10, magicAttack: 2 }.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"sortBy": {
"description": "Stat name to sort by, descending. Falls back to cost.",
"type": "string"
},
"lang": {
"default": "en",
"type": "string",
"enum": [
"en",
"ja",
"pt",
"ko",
"es",
"fr",
"de",
"zh-Hans",
"zh-Hant"
]
},
"limit": {
"default": 25,
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"version"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π’find_item_sources(version, itemId)
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",
"properties": {
"version": {
"type": "string",
"enum": [
"psx",
"wotl",
"ic"
],
"description": "Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them."
},
"itemId": {
"type": "string",
"description": "Equipment or consumable id, e.g. 'excalibur'."
}
},
"required": [
"version",
"itemId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π‘get_job(version, jobId, lang)
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",
"properties": {
"version": {
"type": "string",
"enum": [
"psx",
"wotl",
"ic"
],
"description": "Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them."
},
"jobId": {
"type": "string",
"description": "Job id, e.g. 'ninja', 'calculator', 'darkKnight'."
},
"lang": {
"default": "en",
"type": "string",
"enum": [
"en",
"ja",
"pt",
"ko",
"es",
"fr",
"de",
"zh-Hans",
"zh-Hant"
]
}
},
"required": [
"version",
"jobId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_monster(version, monsterId, lang)
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",
"properties": {
"version": {
"type": "string",
"enum": [
"psx",
"wotl",
"ic"
],
"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'."
},
"lang": {
"default": "en",
"type": "string",
"enum": [
"en",
"ja",
"pt",
"ko",
"es",
"fr",
"de",
"zh-Hans",
"zh-Hant"
]
}
},
"required": [
"version",
"monsterId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}βͺcompare_versions(kind, id, versions)
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",
"properties": {
"kind": {
"type": "string",
"enum": [
"equipment",
"abilities",
"jobs",
"monsters",
"bosses",
"locations",
"consumables"
]
},
"id": {
"type": "string",
"description": "Entity id, present in at least one version."
},
"versions": {
"default": [
"psx",
"wotl",
"ic"
],
"description": "Which releases to compare.",
"minItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"psx",
"wotl",
"ic"
],
"description": "Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them."
}
}
},
"required": [
"kind",
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Recommended Prompts
searchsearchget_recordsget_recordslist_versionsCommunity
Evidence