Authenticate with the Ed-Fi ODS/API by POSTing client_id and client_secret to /oauth/token with grant_type=client_credentials to receive a bearer token
Retrieve schools with GET /ed-fi/schools to obtain the schoolId values needed as foreign keys in subsequent calls
Create or update a student record with PUT /ed-fi/students using the student's unique studentUniqueId and required demographic fields
Associate the student with a school by PUT /ed-fi/studentSchoolAssociations with studentReference, schoolReference, entryDate, and entryGradeLevelDescriptor
Post assessment results with PUT /ed-fi/studentAssessments providing studentReference, assessmentReference, administrationDate, and scoreResults array
Known gotchas
Ed-Fi descriptors (such as gradeLevelDescriptor or assessmentReportingMethodDescriptor) must exactly match values in the ODS's descriptor tables; submitting an unrecognized descriptor string returns a 400 error
Ed-Fi uses upsert semantics via PUT; if the resource does not exist it is created, if it does exist it is replaced in full — partial updates require sending the complete resource body
Natural key changes (e.g., changing a student's studentUniqueId) are not supported via PUT; the old record must be deleted and recreated with the new key
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