wuwa-helper
v0.1.2
Published
MCP server with utilities for Wuthering Waves.
Readme
wuwa-helper
wuwa-helper is a stdio Model Context Protocol server for Wuthering Waves read-only lookup workflows.
It proxies two public upstreams:
https://mc.yakitahome.com: multilingual in-game text search datahttps://api.kurobbs.com: public Kuro Wiki catalogue tree and catalogue cards
Tools
The server exposes 8 tools:
wuwa_game_text_meta: inspect text dataset version, languages, and indexed file previewwuwa_game_text_search: search multilingual game text by keyword, speaker, orstateKeywuwa_game_text_context: fetch surrounding lines for a knownfileIdx+entryIdwuwa_dialogue_search: search dialogue-focused lines with reduced non-dialogue noisewuwa_dialogue_block: expand a dialogue hit into a contiguous dialogue blockwuwa_wiki_catalogue_tree: inspect the Kuro Wiki catalogue tree and validate route pathswuwa_wiki_catalogue_page: fetch paged Kuro Wiki catalogue cards bycatalogueKey,catalogueId, or strictfid/sid/thidroutewuwa_wiki_catalogue_lookup: fuzzy-match wiki cards by proper name across supported catalogue families
Selected Catalogue Keys
Common wuwa_wiki_catalogue_page and wuwa_wiki_catalogue_lookup scopes include:
character,weapon,echo,enemy,recipehot_boss,hot_explorationtutorial_encyclopedia,map_text,world_insight,exploration_reportglossary_background,glossary_activity
Example page calls:
{
"catalogueKey": "hot_boss",
"page": 1,
"limit": 10
}{
"catalogueKey": "glossary_activity",
"page": 1,
"limit": 10
}Install And Run
npm install
npm run build
npm startAfter publishing, you can also launch it with:
npx -y wuwa-helperMCP Host Example
Example mcpServers entry for a stdio host:
{
"mcpServers": {
"wuwa-helper": {
"command": "node",
"args": ["F:\\wuwa-helper\\dist\\index.js"]
}
}
}If the package is installed globally or published, command: "npx" with args: ["-y", "wuwa-helper"] also works.
Cache And Refresh
The server uses in-process TTL caches for upstream data that is reused across calls:
- text meta: 10 minutes
- wiki catalogue tree: 10 minutes
- wiki catalogue snapshots: 10 minutes
Important behavior:
- Caches are not permanent; stale data ages out automatically.
- Tools that depend on cached upstream data expose a
refreshflag. refresh: trueforces a new upstream fetch before the tool completes.wuwa_wiki_catalogue_pagenow paginates locally from the cached catalogue snapshot sopage,pageSize,total,totalPages, andrecords.lengthstay consistent even when the upstream page API reports inconsistent pagination fields.
Route And Pagination Semantics
pathIdsforwuwa_wiki_catalogue_treeare strict tree paths. Invalid or disconnected paths now return an error.fid/sid/thidforwuwa_wiki_catalogue_pageare also strict.sidrequiresfid, andthidrequiressid.catalogueIddirect lookup is still supported, but it is validated against the catalogue tree.- Some
catalogueKeyaliases resolve to third-level wiki paths and therefore populaterequestedPath.thidas well asfidandsid. - For wiki page output, structured content includes a
paginationobject that shows the local pagination mode and the raw upstream pagination fields.
Common Failure Modes
- upstream timeout: all external fetches now use
AbortControllerand return a clearupstream timeouterror - upstream schema change: if
mc.yakitahome.comorapi.kurobbs.comchanges response shape, tool calls may fail fast instead of returning misleading structured content - invalid wiki route: malformed
pathIdsor brokenfid/sid/thidpaths return an explicit error instead of falling back to an unrelated node - upstream partial data: the wiki page tool exposes raw upstream pagination metadata because Kuro Wiki currently reports page fields that do not match requested
limit
Development
npm run lint
npm run build
npm test