Crafting Activity Atlas #9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-02T23:10:05Z - https://github.com/coilysiren/eco-mcp-app/issues/16
Task 7 — Crafting Activity Atlas
Prereq: read
todo/README.mdfirst.Goal
Build an MCP tool
get_eco_crafting_atlasrendering a card of live crafting activity reconstructed from event logs.Data sources (admin,
X-API-Keyfrom SSM/eco-mcp-app/api-admin-token, regionus-east-1)GET http://eco.coilysiren.me:3001/api/v1/exporter/actionlistresp.text.splitlines().GET http://eco.coilysiren.me:3001/api/v1/exporter/actions?actionName=ItemCraftedActionActionLocation,WorldObjectItem,Citizen,ItemUsed,OverrideHierarchyActionsToConsumer,Count,Timecsv.readeron the response iterator), aggregate in a single pass, and never.textthe whole body into memory.ChopTree,HarvestOrHunt,DigOrMine,ConstructOrDeconstructfor a full production picture. Same streaming discipline.Before implementing: check whether
/api/v1/exporter/actionsaccepts a date or time-range query param that would let the server filter. If it does, use it to cap input size. If it doesn't, stream-aggregate on the client.Analyses to render
Countgrouped byItemUsed(the output item).WorldObjectItem(e.g.CampfireItem,WorkbenchItem,CarpentryTableItem). Rank hot → cold.WorldObjectItem → ItemUsed, thickness = sum ofCount. Used3-sankey— bundle it into the HTML, don't load from CDN at runtime (CSP).Countacross all craft-like action types.Dead-end (do not attempt)
Static parsing of mod C# source for recipe definitions. Recipes-as-definitions aren't exposed over HTTP. This tool is observed events only — which is strictly better because mod items (BunWulf, Nid, vanilla) all appear naturally where they're actually used.
Implementation notes
~/.cache/eco-mcp-app/crafting.sqliteso repeat calls don't re-stream the full CSV. Invalidate on a 5-minute TTL.src/eco_mcp_app/server.py.src/eco_mcp_app/templates/partials/.Acceptance
inv smokepasses.