Register your tool as a Caliper Sensor in your analytics infrastructure; obtain the Caliper Event Store (or Event Receiver) endpoint URL and the API key or Bearer token for authentication.
Select the appropriate Caliper 1.2 event profile for your activity (e.g., AssessmentEvent for assessments, SessionEvent for logins, AnnotationEvent for highlights); use the corresponding event type, action, and entity definitions from the spec.
Construct a Caliper Event JSON object with required fields: @context (set to http://purl.imsglobal.org/ctx/caliper/v1p2), id (a UUID URI), type (e.g., AssessmentEvent), actor (Person entity), action (e.g., Started), object (the relevant entity), eventTime (ISO 8601), and edApp.
Wrap the event in a Caliper Envelope JSON object with sensor (your sensor IRI), sendTime (ISO 8601), dataVersion (http://purl.imsglobal.org/ctx/caliper/v1p2), and data (array containing one or more event objects).
POST the envelope to the event store endpoint with Content-Type: application/json and the Authorization header set to your Bearer token; a conformant event store returns 200 on successful receipt.
Validate your events against the Caliper 1.2 conformance test suite before going to production; malformed events may be accepted (200 response) but silently dropped or mis-categorized by the event store.
Known gotchas
The Caliper @context URI version must match the spec version you are targeting (v1p1 vs v1p2); mixing context versions in the same event causes conformance failures and may break event store routing rules.
Each event must have a globally unique UUID-based id URI — reusing event IDs across submissions causes the event store to treat them as duplicates and potentially discard the second submission without an error response.
Caliper action values are controlled vocabulary strings defined per profile (e.g., Started, Submitted, Graded); using a free-text action string outside the controlled vocabulary produces a non-conformant event that certified event stores should reject at validation.
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