I built this because I got tired of screenshotting my inventory every time I wanted to compare two items in Diablo 2: Resurrected (and am too garbage at the game myself to make the distinction). A local Go daemon watches save directories with fsnotify, parses files through sandboxed WASM plugins, and pushes structured state to Cloudflare Workers over binary protobuf WebSocket.
Every plugin binary is Ed25519 signed: community contributors submit source, CI builds and signs the WASM with a key they never touch. Your machine verifies before execution. This was the only trust model I'd accept for running other people's code on my gaming rig.
Server side is Cloudflare Workers + Durable Objects with WebSocket Hibernation, D1 with FTS5 for full-text search across saves and notes, and reference data modules (like a D2R drop calculator) running as separate WASM Workers via Workers for Platforms dispatch namespaces.
Currently supports Diablo II: Resurrected, Clair Obscur: Expedition 33 (what I'm playing currently!), Stardew Valley (theoretically), and WoW (Battle.net API + Raider.io). Linux and Windows are solid, Mac is kind of undertested. Apache 2.0, solo project. The marketing site is https://savecraft.gg
Actually i have a js lib which can do that part, but steam should be running under particular steam user for whom saves are parsing.
I'd love to see your JS lib if you're willing to share it! The raw files would still need per-game parsers (D2R's .d2s is a gnarly bit-packed binary, for example), but moving file access to the server side would be a big deal for adoption.
Actually I develop it mostly for steam integration in games under js.
I think the tricky thing left is in what format devs saving files to parse them correctly.
But generally it can parse most indie games, which are using steam remote storage api and store them as json.
The main requirement that steam must be launch for the user that MCP is parsing
Here is the doc for steam remote storage API: https://github.com/ArtyProf/steamworks-ffi-node/blob/main/do...