@onimaxxing/sussy-seeds-mcp
v0.1.5
Published
MCP server for Oxygen Not Included seed hunting. Runs the sussy-seeds wasm scanner over stdio; the LLM composes Builder AST specs and drives cluster / summary / map-tier scans against the game's real worldgen.
Maintainers
Readme
@onimaxxing/sussy-seeds-mcp
MCP server for Oxygen Not Included seed hunting. Runs the sussy-seeds wasm scanner over stdio so an LLM can compose Builder AST specs and drive scans against onimaxxing worldgen.
Companion to the browser scanner at onimaxxing.com/sussy-seeds. Shared share-URL format round-trips between the MCP and the web app.
Install
Claude Code
.mcp.json (project) or ~/.claude/settings.json (user):
{
"mcpServers": {
"sussy-seeds": {
"command": "npx",
"args": ["-y", "@onimaxxing/sussy-seeds-mcp"]
}
}
}Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or the platform equivalent:
{
"mcpServers": {
"sussy-seeds": {
"command": "npx",
"args": ["-y", "@onimaxxing/sussy-seeds-mcp"]
}
}
}Codex CLI
codex mcp add sussy-seeds -- npx -y @onimaxxing/sussy-seeds-mcpOr edit ~/.codex/config.toml directly:
[mcp_servers.sussy-seeds]
command = "npx"
args = ["-y", "@onimaxxing/sussy-seeds-mcp"]Other clients
Same {command, args} shape works in Cursor, Windsurf, Zed, Continue, Cline. Progress notifications carry _meta.progressToken.
Requirements
Node 20 or newer.
Tools
Discovery
listClusters({filter?})listWorlds({coord}),listWorldsAcrossClusters({query})listStoryTraits,listMixingCategorieslistGeysers,listTraits,listBiomes,listPoislistSpawnTags({query?, group?, offset?, limit?})listConstraintKindslistHelperslistPrefabAdmissibility({coord, prefabId})
Coord composition
buildCoord({formState})parseCoord({coord})describeCoord({coord})freshCoord({clusterPrefix})
Admissibility
verdictOf({coord, constraint}),verdictOfSpec({coord, spec})
Scanning
Streams notifications/progress when the client sends _meta.progressToken. Cancellable via JSON-RPC.
scan({coord, spec, opts?}): top-K over a seed range. Bytecode tier (~1M/s/core) for require-only summary specs; JS tier otherwise.scanUntil({coord, spec, targetHits, opts?}): stops at N matches.scanSeeds({coord, spec, seeds}): one row per input seed.
spec.preHook and spec.postHook accept raw JS. Reserved-identifier guard rejects sources that shadow the Builder emit's bindings.
Inspection
getSeedSummary({coord, seed})getSeedDeep({coord, seed})describeSeed({coord, seed, deep?})
Sharing
shareResults({coord, spec, seeds, scanLimit?, tab?}): returnshttps://onimaxxing.com/sussy-seeds/<hash>. Opening the URL loads the spec, pins the seeds, sets the coord.
Diagnostics
ping()probeStreaming({steps, delayMs})
Constraint kinds
world.trait, world.geyser, world.distToHome, world.distTo, world.traitCount, world.oilWells, world.critter, world.plant, world.spawn, world.biomeCount, world.marshyTungstenInMagma, world.niobiumVolcanoAccess, world.sussy, world.trash, world.asteroidRemix, poi.count, map.elementMass, home.geyserNearStart, cluster.geyser, cluster.oilWells, cluster.critter, cluster.plant, cluster.sussy, cluster.trash.
License
MIT.
