Initialize the Steam API and confirm the user is authenticated and owns the app in a context where UGC uploads are permitted
Call the CreateItem API in the UGC (Workshop) interface to create a new item record and obtain an item handle (PublishedFileId)
Use StartItemUpdate with the PublishedFileId to begin an update transaction, then set the content folder, preview image, title, description, and visibility
Call SubmitItemUpdate with the update handle and a required change note string; register the ItemUpdateStatus callback to monitor upload progress
On successful callback, capture the PublishedFileId and the user-agreement acceptance requirement flag — if required, direct the user to accept the Steam Subscriber Agreement
Query the item's status via GetPublishedFileDetails to confirm the item is live and visible before surfacing it in-game
Known gotchas
SubmitItemUpdate is asynchronous; progress must be tracked via polling ItemUpdateStatus or a registered callback, not by blocking on the call itself
If the user has not accepted the Steam Workshop legal agreement, the item will be in a pending state until acceptance — the API response includes a flag for this
Content folder paths must contain only the files to upload; the entire folder is synced, so extraneous files will be included in the item payload
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp