FFT Companion

Final Fantasy Tactics game data across the PSX, War of the Lions and Ivalice Chronicles releases

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
86%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,804Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (1.41% of 128k context)

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-http

What it can do

Tool inventory

Tools (8)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒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

search_research
Search for information about [topic] using FFT Companion
Expected tools: search
find_specific
Find [specific item] using FFT Companion
Expected tools: search
retrieve_data
Get details about [item] from FFT Companion
Expected tools: get_records
fetch_info
Fetch [information type] using FFT Companion
Expected tools: get_records
list_items
List all [items] available in FFT Companion
Expected tools: list_versions

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools