Skip to main content
Glama

gameLLM — Game Guide Assistant

A Claude Code knowledge base for video games. Scrapes guides from multiple portals, stores structured game data, and exposes everything through an MCP server and a set of Claude Code skills so you can ask questions in natural language.

Currently supports Clair Obscur: Expedition 33 out of the box. Structured data (pictos, weapons, bosses, skills, side areas, status effects, etc.) is included in the repository and works immediately without scraping anything.

Disclaimer

This project is a personal, non-commercial tool for private study and reference.

  • Content ownership: All scraped content belongs to the respective source sites (Vandal, Eliteguias, Game8, IGN, Mein-MMO, Maxroll, etc.). This repository does not include any scraped data — the output/<game>/<portal>/ directories are excluded from version control and must be generated locally.

  • Game intellectual property: Game names, characters, mechanics, and all related assets are the property of their respective owners (e.g. Sandfall Interactive for Clair Obscur: Expedition 33). This project is not affiliated with, endorsed by, or connected to any game developer or publisher.

  • No affiliation: This project has no affiliation with any of the scraped websites or their owners.

  • Terms of Service: Web scraping may be restricted by the Terms of Service of some sites. Anyone running this tool is solely responsible for ensuring compliance with the terms of any site they scrape.

  • No warranty: Scraped content may be incomplete, outdated, or inaccurate. This tool is provided as-is, with no guarantees regarding the correctness or completeness of the data it produces.


Related MCP server: Skillz

Quick Start

git clone <repo>
cd gameLLM
pip install -r requirements.txt

Open the project in Claude Code. The MCP server (mcps/ex33mcp/) starts automatically via .mcp.json — no manual setup needed.


Querying Expedition 33

Use the /ex33-guide skill in Claude Code to ask anything about the game:

/ex33-guide what's the best build for Maelle?
/ex33-guide where do I find the Lost Gestrals?
/ex33-guide what pictos work well with a burn build?
/ex33-guide which bosses are in act II and what level should I be?
/ex33-guide what does the Foretell status effect do?

The skill queries the MCP server first for structured data, then falls back to scraped guides if needed.

What data is available without scraping

The output/expedition-33/data/ directory is included in the repository and covers:

File

Content

pictos.md

All pictos — names (EN/ES), effect, LP cost, location

weapons.md

All weapons — stats, scaling, passives, per character

skills.md

All skills — names (EN/ES), AP cost, character, effect

boss-levels.md

All bosses — recommended level, location, type

side-areas.md

Optional areas — act, recommended level, rewards

skill-damage-scaling.md

Damage scaling numbers per character and skill

monoco-skills.md

Monoco learnable skills and source enemies

status.md

Status effects — names (EN/ES)

zone-mapping.md

Zone name translations EN↔ES

quests.md

Side quests

expedition-journals.md

Collectible journals

music-records.md

Collectible music records

lost-gestrals.md

Lost Gestral locations

mimes.md

Mime locations

petanks.md

Petank locations

paint-cages.md

Paint cage locations

outfits.md

Outfits

haircuts.md

Haircuts

tint-upgrades.md

Tint upgrades

endless-tower.md

Endless Tower floors

MCP tools

The MCP server exposes these queryable tools (used automatically by /ex33-guide):

Tool

Description

search_pictos

Search pictos by name (EN/ES), effect, or attribute

search_weapons

Search weapons by name, passive, damage type, or character

search_bosses

Search bosses by name or location; filter by type and level range

search_side_areas

Search optional areas by zone name or reward; filter by act

get_skill_scaling

Damage scaling data for a character's skills

evaluate_picto_lumina

Recommend whether to use a picto as Picto or Lumina

search_status

Translate status effect names EN↔ES


Adding Content

Scrape more portals for Expedition 33

python scrape.py <guide_url> --game expedition-33

After scraping, run /ex33-index in Claude Code to update the portal index.

Add a new game

# 1. If the site isn't supported yet, generate a scraper:
/scraper-creator   ← provide the URL in Claude Code

# 2. Scrape the guides:
python scrape.py <url> --game <slug>

# 3. Bootstrap the game (generates _index.json + guide skill):
/game-setup <slug>

# 4. Start querying:
/<slug>-guide

Output Structure

output/
└── <game-slug>/
    ├── <portal>/
    │   ├── 001-section-title.md
    │   ├── 002-another-section.md
    │   ├── _guide.md         ← all sections concatenated
    │   └── README.md         ← section index
    ├── data/                 ← structured data (included in repo)
    └── _index.json           ← portal index

Technical Reference

Supported scraping sites

Domain

Scraper

Notes

vandal.elespanol.com

VandalScraper

SSR, requests

www.eliteguias.com

EliteGuiasScraper

SSR, requests

game8.co

Game8Scraper

SSR, requests

mein-mmo.de

MeinMMOScraper

SSR, requests

www.ign.com

IGNScraper

Playwright required — React-rendered

maxroll.gg

MaxRollScraper

requests

Any other URL

SinglePageScraper

Use --single-page; auto-upgrades to Playwright if JS-rendered

IGN scraper additionally requires:

pip install playwright && playwright install chromium

Scraper architecture — scrapers/base.py

GuiaScraper is an abstract base class. Subclasses implement:

  • extract_guide_links(soup, guide_url) → list[{title, url}] — discovers all sections

  • extract_content(soup) → Tag — extracts and cleans article content

  • extract_guide_title(soup) → str — page title (optional override)

  • output_slug(guide_url) → str — portal directory name

Attribute

Default

Description

REQUEST_DELAY

1.5

Seconds between requests

RECURSIVE_LINKS

False

Enable BFS link discovery

run() fetches the index, iterates sections writing numbered .md files, resumes from existing files on re-run, and writes _guide.md + README.md at the end.

BFS link discovery (RECURSIVE_LINKS = True): Some sites (IGN) only link sub-pages from category pages, not the index. BFS discovers links as it scrapes. Cached pages are not re-fetched for new links — delete the portal directory to start fresh.

Scraper notes

IGN — React-rendered; uses Playwright. Waits for .wiki-html. RECURSIVE_LINKS = True because category pages hold the individual boss/quest sub-pages. Known working selector: .wiki-html (.wiki-section fires too early).

Game8 — SSR. Content in .archive-style-wrapper. Do not use main — on game8 it only contains the membership modal.

SinglePageScraper — Tries requests first; auto-upgrades to Playwright if body < 300 chars. Steam guides work via plain requests (#profileBlock).

Adding a new scraper manually

  1. Create scrapers/<name>.py subclassing GuiaScraper

  2. Implement extract_guide_links, extract_content, output_slug

  3. Register the domain in scrape.py's SCRAPERS dict

Use /scraper-creator in Claude Code to automate this — it fetches the target page, analyzes the HTML structure, and generates the scraper class.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deese/gameLLM'

If you have feedback or need assistance with the MCP directory API, please join our Discord server