FFT Companion
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Final Fantasy Tactics game data across the PSX, War of the Lions and Ivalice Chronicles releases
| Author | app.fftcompanion |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 575 ms |
| Last measured | 2026-10-26 |
Measured statistics
| Tools measured | 8 |
|---|---|
| Latency, 30-day median (L1) | 575 ms |
| Latency, latest (L1) | 575 ms |
| Safe-call success | 1/1 (100%) |
| 30-day success rate (L2) | 100% |
| Last checked | 2026-10-26 |
| Total checks | 4 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"FFT Companion": {
"url": "https://mcp.fftcompanion.app/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
list_versionsLists 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.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
searchFinds 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.
Parameters:
version(required) — string — Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.query(required) — string — Name or id fragment, e.g. 'excalibur', 'battle axe', 'ベヒーモス'.lang— stringkinds— array — Restrict to these entity kinds.limit— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_recordsReturns 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.
Parameters:
version(required) — string — Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.kind(required) — stringids(required) — array — Entity ids from search.lang— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
query_equipmentFilters 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.
Parameters:
version(required) — string — Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.lang— stringlimit— integersortBy— string — Stat name to sort by, descending. Falls back to cost.maxCost— number — Maximum shop cost in gil.minStat— object — Minimum values per stat, e.g. { weaponPower: 10, magicAttack: 2 }.category— stringsubCategory— string — Narrower type, e.g. 'katana', 'robe', 'hat'.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_item_sourcesReverse 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.
Parameters:
version(required) — string — Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.itemId(required) — string — Equipment or consumable id, e.g. 'excalibur'.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_jobFull 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.
Parameters:
version(required) — string — Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.jobId(required) — string — Job id, e.g. 'ninja', 'calculator', 'darkKnight'.lang— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_monsterFull 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.
Parameters:
version(required) — string — Which release to read. psx = original PlayStation, wotl = War of the Lions, ic = The Ivalice Chronicles. Data differs meaningfully between them.monsterId(required) — string — Monster id, e.g. 'behemoth', 'redPanther'.lang— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
compare_versionsCompares 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.
Parameters:
kind(required) — stringid(required) — string — Entity id, present in at least one version.versions— array — Which releases to compare.
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.