Emit IMS Caliper 1.2 AssessmentEvent and GradeEvent envelopes from an edtech tool and deliver them to a Sensor API endpoint
domain: imsglobal.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Construct a Caliper Envelope with sensor, sendTime, dataVersion 'http://purl.imsglobal.org/spec/caliper/v1p2', and a data array of events
Build an AssessmentEvent with action Started or Submitted, an actor Person entity, and an Assessment object with items
Build a GradeEvent with action Graded, a SoftwareApplication actor (the tool), and a Result entity carrying normalScore and maxScore
POST the envelope to the platform's Caliper endpoint URL with the Bearer token from tool registration
Handle 200 OK with no body as success; retry on 429 with exponential backoff
Validate entity IRIs use consistent namespacing so the platform can correlate events across tools
Known gotchas
Caliper entities referenced in events should be embedded as full objects on first appearance and may be referenced by IRI only in later events within the same envelope
The dataVersion string must exactly match the supported version string of the endpoint; a minor variation causes silent rejection on some platforms
GradeEvent actors must be the grading agent (usually the tool or LMS), not the learner; using the learner as actor is a common modelling error
Give your agent this knowledge — and 6,400+ more routes
One MCP install gives any agent live access to the full route map across 2,100+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp