Authenticate to the OneRoster provider and confirm it advertises Gradebook or Results write capability via /metadata or documentation
GET /lineItems for the relevant class to identify or create the line item that the result will be attached to
Construct a result object with a sourcedId, lineItem reference, student reference, score, scoreStatus, and comment fields
PUT or POST to /results (provider behavior varies; prefer PUT with a known sourcedId for idempotent upsert semantics)
Verify the response status; a 200 or 201 indicates acceptance, but some providers queue results asynchronously
Re-fetch the result after a short delay to confirm persistence if your workflow requires confirmation
Known gotchas
OneRoster 1.2 Results writes require the provider to have enabled the Gradebook service; not all district SIS providers expose this endpoint
The score field is typically a floating-point string or number in the range 0 to 100; out-of-range values may be silently clamped or rejected
sourcedIds for results must be globally unique within the provider; use a deterministic scheme (e.g. combining lineItem and student sourcedIds) to enable idempotent re-submission
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