Register your application as a Caliper sensor and obtain the Caliper endpoint URL and bearer token from the target analytics platform
Select the appropriate Caliper 1.2 event profile for the action (e.g., SessionEvent for login, AssessmentEvent for exam start/submit, GradeEvent for score posting)
Construct the event JSON object with required properties: id (UUID URN), type, actor (Person entity), action, object (relevant Caliper entity), and eventTime (ISO 8601)
Wrap one or more events in an Envelope JSON object with sensor, sendTime, dataVersion set to http://purl.imsglobal.org/ctx/caliper/v1p2, and a data array
POST the Envelope to the sensor endpoint with Content-Type: application/json and Authorization: Bearer {token}
Confirm a 200 or 201 HTTP response; implement retry with exponential backoff for 429 or 5xx responses
Known gotchas
Event id must be a globally unique URN UUID (urn:uuid:{uuid4}) — reusing the same id across retries will cause the endpoint to silently deduplicate and drop the event
The Caliper 1.2 context URL (v1p2) differs from v1.1; mixing context versions in the same envelope causes validation failures on strict sensor endpoints
GradeEvent score values use a SoftwareApplication as actor (not the student), and the generated entity links back to the originating AssessmentEvent — omitting this linkage is a common schema error
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