HowLongToBeat MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@HowLongToBeat MCPHow long does it take to beat Hollow Knight with all extras?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
HowLongToBeat MCP
Serveur MCP en lecture seule pour rechercher des jeux et consulter leurs durées sur HowLongToBeat, depuis Claude Code ou Codex local (application, CLI ou extension). Basé sur ckatzorke/howlongtobeat, il conserve le modèle de jeu et le calcul de similarité d'origine, avec un accès réseau adapté au site actuel. Aucun compte HowLongToBeat ni clé API n'est nécessaire.
Projet communautaire indépendant, sans affiliation avec HowLongToBeat.
Installation locale
Prérequis : Node.js 22 ou plus, npm et Git.
git clone https://github.com/pierro-bn/howlongtobeat-mcp.git
cd howlongtobeat-mcp
npm ci --ignore-scripts
npm run buildLe fichier à lancer est dist/index.js. Utiliser son chemin absolu, entre
guillemets si nécessaire. npm start lance également le serveur ; l'absence
de sortie est normale, il attend des messages MCP sur stdin.
Le projet est distribué sous forme de sources sur GitHub, sans publication npm.
Le champ private: true du manifeste empêche une publication npm accidentelle ;
il ne concerne pas la visibilité du dépôt GitHub.
Related MCP server: Video Games MCP Server
Claude Code
claude mcp add --transport stdio --scope user howlongtobeat -- node "/chemin/absolu/howlongtobeat-mcp/dist/index.js"
claude mcp listSur Windows, remplacer le chemin par exemple par
C:/outils/howlongtobeat-mcp/dist/index.js. Si node n'est pas dans le PATH du
client, utiliser le chemin absolu de node.exe.
Pour une configuration par projet, fusionner cette entrée dans .mcp.json
sans écraser les autres serveurs :
{
"mcpServers": {
"howlongtobeat": {
"type": "stdio",
"command": "node",
"args": ["C:/outils/howlongtobeat-mcp/dist/index.js"]
}
}
}Relancer Claude Code, puis vérifier /mcp.
Documentation Claude Code.
Codex
codex mcp add howlongtobeat -- node "/chemin/absolu/howlongtobeat-mcp/dist/index.js"
codex mcp listAutre possibilité : ajouter cette section dans ~/.codex/config.toml en
préservant la configuration existante :
[mcp_servers.howlongtobeat]
command = "node"
args = ["C:/outils/howlongtobeat-mcp/dist/index.js"]
startup_timeout_sec = 15
tool_timeout_sec = 40Redémarrer le client ou ouvrir une nouvelle session pour charger le serveur. Documentation officielle MCP de Codex.
ChatGPT dans un navigateur : le site web ne lit pas le fichier local de Codex. Ce serveur expose uniquement stdio, sans endpoint HTTP public. Pour un environnement ChatGPT disposant de Secure MCP Tunnel, le processus local peut être relié par le tunnel selon les accès du compte. Le tunnel n'est pas installé ni configuré par ce projet. Publier du code sur GitHub ne crée pas un endpoint MCP accessible à ChatGPT.
Outils
Outil | Paramètres | Résultat |
|
| Première page de résultats avec IDs HLTB, titres, durées et similarité du titre |
|
| Fiche d'un jeu avec ses durées |
detail vaut compact par défaut ; detailed ajoute description, plateformes
et image lorsqu'elles sont disponibles. Pour la description complète, utiliser
hltb_get_game : la recherche ne fournit généralement pas de résumé.
Chaque réponse réussie inclut la source et l'heure de récupération ; chaque jeu
inclut son lien HowLongToBeat. Les données sont rendues à la fois en texte JSON et dans
structuredContent pour les clients MCP compatibles.
Exemples d'appels :
{"query":"Portal","limit":3}{"game_id":"7230","detail":"detailed"}Exemples de demandes à l'assistant :
« Combien de temps faut-il pour terminer Portal, avec et sans les objectifs secondaires ? »
« Cherche Hollow Knight sur HowLongToBeat et montre-moi la fiche correspondante. »
Interprétation et limites
Les durées sont des estimations en heures, pas des garanties.
nullindique une estimation absente ou nulle dans la source.Les champs
comp_main,comp_plusetcomp_100sont convertis de secondes en heures sans arrondi à l'heure entière.precisionvautsource_seconds_converted_to_hours. Les chiffres peuvent différer des valeurs arrondies affichées sur le site ; ils restent des estimations communautaires.time_labelsdécrit les trois catégories de complétion. Le temps multijoueur n'est pas substitué à une durée de campagne manquante.Un ID HLTB n'est pas un ID Steam. La similarité mesure le texte du titre, pas la certitude qu'il s'agit du bon jeu ou de la bonne édition.
Le serveur demande uniquement la première page, avec une taille de 20 résultats.
coverageindique cette couverture limitée ;truncatedindique seulement silimita écarté des jeux de cette page.truncated: falsene signifie donc pas que tout le catalogue a été parcouru.no_resultsne prouve pas l'absence du jeu.Aucun cache persistant, aucune écriture distante et aucune télémétrie ajoutée. La session de recherche est conservée en mémoire pendant dix minutes et renouvelée une seule fois si la recherche reçoit HTTP 401/403. Les titres recherchés et IDs sont envoyés directement à HowLongToBeat par le serveur.
Le site n'offre pas ici une API contractuelle : blocages réseau et changements de format peuvent rendre le fournisseur inutilisable. Les descriptions récupérées doivent être traitées comme du contenu externe non fiable.
Tests et diagnostic
Validation du 18 octobre 2026 : 20 tests réussis, compilation réussie et recherche de Portal avec lecture de sa fiche vérifiées sur le site réel via MCP stdio. La CI a également réussi sur Windows/Linux avec Node 22 et 24. Ces tests ne garantissent pas la disponibilité future du site.
npm test
npm run test:live
npm audit --omit=devLes tests ordinaires n'accèdent pas au site : validation, erreurs, durées
inconnues, limites, annulation, timeout, protocole stdio, initialisation et
renouvellement de session, erreurs HTTP et données structurées de fiche.
Un test conserve la vérification de la bibliothèque d'origine avec Axios.
test:live interroge vraiment Portal via le processus MCP et renvoie un code non nul si la recherche ou la fiche
échoue. Il ne fait pas partie de la CI déterministe.
Codes d'erreur : UPSTREAM_UNAVAILABLE, UPSTREAM_FORMAT_CHANGED,
UPSTREAM_FORBIDDEN, UPSTREAM_RATE_LIMITED, UPSTREAM_NOT_FOUND, TIMEOUT,
CANCELLED, INTERNAL_ERROR. Une erreur de lecture n'est jamais convertie en
résultat vide. Le délai global est de 25 secondes pour l'ensemble d'un appel,
avec annulation transmise à chaque requête HTTP. Un HTTP 429 n'est pas retenté.
En cas d'erreur : vérifier l'accès au site depuis la machine du client puis
relancer test:live. Un HTTP 403 ne permet pas de distinguer à lui seul un
blocage réseau, un refus du site ou une route devenue obsolète. Ne pas désactiver
TLS ou contourner les restrictions d'accès pour faire passer le test.
La CI couvre Node 22/24 sur Windows/Linux. Aucune configuration personnelle Claude/Codex n'est modifiée par les commandes de compilation ou de test.
Mise à jour
Depuis le dossier du dépôt, avec une copie de travail sans modifications locales :
git pull --ff-only
npm ci --ignore-scripts
npm run buildRedémarrer ensuite le client MCP pour qu'il lance la nouvelle version compilée.
Soutenir le projet
Si ce serveur MCP vous est utile, vous pouvez soutenir son développement et sa maintenance avec un don facultatif sur Ko-fi. Merci pour votre soutien !
Licence et provenance
MIT pour le serveur MCP ; WTFPL v2 pour la bibliothèque d'origine. Le modèle
HowLongToBeatEntry et le calcul de similarité d'origine sont conservés.
L'accès réseau et la lecture des fiches sont implémentés dans src/provider.ts
pour suivre le format actuel du site. Voir
THIRD_PARTY_NOTICES.md. Le verrouillage npm inclut une
mise à jour d'Axios imposée à la dépendance amont pour éviter sa version 0.22.
Available Tools
2 toolshltb_get_gameGet HowLongToBeat gameARead-onlyIdempotent
Read a game detail page using an HLTB ID returned by search. Missing or unreadable pages produce an error, never fabricated durations.
Inputs: game_id (required), detail.
hltb_search_gamesSearch HowLongToBeatARead-onlyIdempotent
Find games by title with estimated main story, extras and completion times. Returns only the first upstream page, not exhaustive results. No account or API key required.
Inputs: query (required), limit, detail.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: hltb_search_games finds games by title, while hltb_get_game retrieves a specific game's detail page by ID. The description explicitly links them (get uses an ID returned by search), so an agent cannot confuse the two.
Both tools follow a consistent hltb_ + verb_noun pattern (hltb_get_game, hltb_search_games) with the server prefix applied uniformly. The singular/plural difference is semantically natural, not a convention break.
Two tools is on the thin side, but it matches the narrow read-only scope of a game-length lookup service where search plus detail retrieval is the complete workflow. Nothing extraneous, though there is little room for agent flexibility.
The search-then-get pattern covers the core lookup lifecycle for this domain, and the descriptions transparently flag limits (first page only, error instead of fabricated data). No update/create/delete is expected for a read-only reference service, so there is no real dead end.
Maintenance
Related MCP Connectors
Habitica MCP server for ChatGPT, Claude and any AI agent: list tasks, create task, score habit or daily, update checklist, hatch and feed pets and start party quest in your own Habitica account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Habitica yourself; Cotlet does not store your password and you need no Habitica API key. About the official Habitica API: Habitica has a full public REST API (v3) but no official MCP server (checked 17 Oct 2026). The API reads and changes tasks, tags, pets, mounts, parties and quests. Setup and FAQ: https://cotlet.dev/integrations/habitica-api-mcp-server
Google Search Console, GA4 and PageSpeed MCP server for Claude, ChatGPT and Cursor. Free, hosted.
Discord MCP server for ChatGPT, Claude and any AI agent: list servers and channels, read channel messages, search messages, send message, reply to message, send DM, read mentions and assign role in your own Discord account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Discord yourself; Cotlet does not store your password and you need no Discord API key. About the official Discord API: Yes, Discord has an official API for bots and OAuth2 apps, but it acts as a bot that a server manager adds, not as you, and Discord has no official MCP server for it (checked 5 Nov 2026). The MCP server on Discord's docs site only searches documentation. Setup and FAQ: https://cotlet.dev/integrations/discord-api-mcp-server
Hosted Airtable MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThis server enables Claude to access Team Fight Tactics (TFT) game data, allowing users to retrieve match histories and detailed match information through the Riot Games API.7 npm9MIT
- AlicenseNot gradedqualityDmaintenanceProvides direct access to the RAWG gaming database, allowing users to search for games, retrieve detailed metadata, and explore genres within Claude. It streamlines game research by offering information on ratings, platforms, and release dates through natural language queries.3MIT
- AlicenseAqualityDmaintenanceA local MCP server that lets Claude fetch data from your Steam game library via the Steam Web API. All tools are read-only.5Apache 2.0
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides structured game data and scraped guides for video games, enabling natural language queries via Claude Code skills. Currently supports Clair Obscur: Expedition 33 with tools to search pictos, weapons, bosses, and more.-