Skip to main content
Glama
README.md
# FC 26 MCP

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)

MCP servers for EA SPORTS FC 26. Works with Claude, Codex, Pi, Cursor, Cline, Windsurf, and any other agent that supports the [Model Context Protocol](https://modelcontextprotocol.io/).

Two servers are included:

1. **`fc26-mcp-file`** — parses and edits raw `Squads*` files in FBCHUNKS/T3DB format.
2. **`fc26-mcp-live`** — controls FC 26 through [xAranaktu's Live Editor](https://www.patreon.com/collection/1744905) Lua API while the game runs.

---

## Install

From PyPI:

```bash
pip install fc26-mcp
```

From GitHub:

```bash
pip install git+https://github.com/INSANE0777/Fc26-live-editor-mcp.git
```

From source:

```bash
git clone https://github.com/INSANE0777/Fc26-live-editor-mcp.git
cd fc26-mcp
pip install -e .
```

## GUI editor

A desktop GUI (tkinter, no extra dependencies) for opening a squad file and
editing it entirely in the UI — no MCP client or Live Editor needed:

```bash
fc26-mcp-gui                      # open via file dialog
fc26-mcp-gui "path/to/Squads..."  # open a specific squad file directly
```

Features:
- Browse / search / edit / delete rows in **all 78 DB tables** (filter box per table)
- **Player search** by name or ID, showing current club and loan status
- **One-click transfers** — pick a player + target team, applies to all club links
  (national team links are preserved automatically)
- **Terminate loans** — removes the `playerloans` row(s)
- **Auto-backup** before you save, plus a manual Backup button
- Unsaved-changes indicator; Save writes back to the same file (or a copy)

Note: the squad file's `dcplayernames` table is incomplete (~6k of ~22k players),
so many players show `?` as their name — search by **player ID** for those.

---

## Paths

The package uses placeholder paths. Set your actual paths via command-line flags or environment variables:

| What | Flag | Environment Variable | Example |
|------|------|---------------------|---------|
| Squad file | `--squad-file` | `FIFA_SQUAD_FILE` | `C:\Path\To\Your\SquadsFile` |
| Live Editor bridge folder | `--bridge-root` | `FC26_BRIDGE_ROOT` | `C:\Path\To\Your\FC 26 LE\le_bridge` |
| Live Editor scripts folder | `--install-lua` | — | `C:\Path\To\Your\FC 26 LE\lua\scripts` |

## Quick start

### 1. Squad file MCP

```bash
fc26-mcp-file --squad-file "C:\Path\To\SquadsFile"
```

The bundled FC 26 metadata is used automatically. You can override it with `--meta-file`.

### 2. Live Editor MCP bridge

1. Launch FC 26 and inject Live Editor.
2. Load Career Mode.
3. Install the Lua bridge into Live Editor once:

```bash
fc26-mcp-live --install-lua "C:\Path\To\Your\FC 26 LE\lua\scripts"
```

4. In Live Editor, go to **Features → Lua Engine** and run `le_bridge.lua`.
5. Start the MCP server:

```bash
fc26-mcp-live --bridge-root "C:\Path\To\Your\FC 26 LE\le_bridge"
```

---

## Tools

### File parser
- `list_clubs`
- `search_players`
- `get_player_club`
- `plan_transfers`
- `apply_transfers`

### Live Editor bridge (28 tools)
- Core: `le_ping`, `le_list_clubs`, `le_search_players`, `le_get_player_club`
- Transfers/loans: `le_transfer_player`, `le_loan_player`, `le_release_player`, `le_terminate_loan`
- Lists: `le_add_to_transfer_list`, `le_add_to_loan_list`, `le_remove_from_lists`, `le_is_transfer_listed`, `le_is_loan_listed`
- Player state: `le_set_player_sharpness`, `le_set_player_morale`, `le_set_player_form`, `le_set_player_fitness`
- Budget: `le_get_transfer_budget`, `le_set_transfer_budget`
- Database editor: `le_get_db_tables`, `le_get_db_fields`, `le_get_db_rows`, `le_edit_db_field`, `le_insert_db_row`, `le_delete_db_row`
- Stats: `le_get_players_stats`, `le_get_player_stats`
- Power user: `le_execute_lua`

See [README_LE_BRIDGE.md](README_LE_BRIDGE.md) for detailed Live Editor docs.

---

## MCP client config

Use `mcp_config.json` as a template, or add these servers manually:

```json
{
  "mcpServers": {
    "fc26-file": {
      "command": "fc26-mcp-file",
      "args": [
        "--squad-file",
        "C:\Path\To\SquadsFile"
      ]
    },
    "fc26-live": {
      "command": "fc26-mcp-live",
      "args": [
        "--bridge-root",
        "C:\Path\To\Your\FC 26 LE\le_bridge"
      ]
    }
  }
}
```

### Claude Desktop

Open `claude_desktop_config.json` and add the server blocks above.

### Cursor

Open **Cursor Settings → MCP → Add MCP Server**, paste the command and args.

### Cline / Roo Code

Add the JSON to your MCP settings file.

### Pi

Pi detects stdio MCP servers from `mcp_config.json` or your workspace settings.

---

## Environment variables

| Variable | Purpose |
|----------|---------|
| `FIFA_SQUAD_FILE` | Default squad file path for `fc26-mcp-file` |
| `FIFA_META_FILE` | Override bundled FC 26 metadata XML |
| `FC26_BRIDGE_ROOT` | Bridge folder for `fc26-mcp-live` |

---

## Safety

- Always back up your squad files and Career Mode saves before editing.
- Career Mode tools only work inside Career Mode.
- `le_execute_lua` can run arbitrary code — use it carefully.

---

## License

MIT

TDQS

C2.9/5.0

Scored across 30 tools

Disambiguation5/5

Each tool has a clear and distinct purpose. Operations like loan list addition vs. loan execution are differentiated by name and description. No two tools appear to do the same thing.

Naming Consistency5/5

All tools follow a consistent 'le_verb_noun' pattern with clear action-object relationships. No mixing of naming conventions.

Tool Count2/5

30 tools is above the 25 threshold defined as 'too many' for the apparent scope. While the server covers both high-level game actions and low-level database operations, the number feels excessive for a coherent tool set.

Completeness4/5

Covers core player management, club operations, and database CRUD. Minor gaps like contract editing are addressable via generic db edit tools.

Maintenance

ActivitySlowing
ResponsivenessNo issues