Integration

Clever integration

Clever connects education apps to school districts' student information systems. With a district-app token, read a district's schools, users (students, teachers, staff, district admins and guardian contacts), sections, courses, terms and resources, and walk their relations (a section's students, a student's teachers or contacts). Follow changes through the 30-day events feed, read daily and per-section attendance (a preview API), and, for LMS Connect partners, create and update assignments and grade submissions in the district's LMS. Lists return 100 records by default with links to the next page. Which routes a token can read depends on the app's Clever agreement: without Secure Sync a district-app token reads only the district routes, and sections, events and paging need Secure Sync. Authentication is a district-app bearer token, copied from the district's overview in the Clever dashboard, sent in the Authorization header as Bearer.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Clever.Built from the 53 Clever tools below, on the connection you add once.

What you can do with Clever

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Section, 8 operations

  • get_sectionGet sectionGETReturns a specific section
  • list_attendance_for_sectionList attendance for sectionGETLists attendance records for the students of a section: date, status (present, absent, tardy), type and excuse code. Filter by date range and status. Preview API.
  • list_course_sectionsList course sectionsGETReturns the sections for a course
  • list_resource_sectionsList resource sectionsGETReturns the sections for a resource
  • list_school_sectionsList school sectionsGETReturns the sections for a school
  • list_sectionsList sectionsGETReturns a list of sections
  • list_term_sectionsList term sectionsGETReturns the sections for a term
  • list_user_sectionsList user sectionsGETReturns the sections for a user

District, 7 operations

  • get_course_districtGet course districtGETReturns the district for a course
  • get_districtGet districtGETReturns a specific district
  • get_school_districtGet school districtGETReturns the district for a school
  • get_section_districtGet section districtGETReturns the district for a section
  • get_term_districtGet term districtGETReturns the district for a term
  • get_user_districtGet user districtGETReturns the district for a user
  • list_districtsList districtsGETReturns the district the token belongs to (a district-app token sees one district), with its sync state, SIS type, LMS state and contact.

School, 7 operations

  • get_schoolGet schoolGETReturns a specific school
  • get_section_schoolGet section schoolGETReturns the school for a section
  • list_attendance_for_schoolList attendance for schoolGETLists attendance records for the students of a school (daily or per section): date, status (present, absent, tardy), type and excuse code. Filter by date range and status. Preview API.
  • list_course_schoolsList course schoolsGETReturns the schools for a course
  • list_schoolsList schoolsGETReturns a list of schools
  • list_term_schoolsList term schoolsGETReturns the schools for a term
  • list_user_schoolsList user schoolsGETReturns the schools for a user

Course, 5 operations

  • get_courseGet courseGETReturns a specific course
  • get_section_courseGet section courseGETReturns the course for a section
  • list_coursesList coursesGETReturns a list of courses
  • list_resource_coursesList resource coursesGETReturns the courses for a resource
  • list_school_coursesList school coursesGETReturns the courses for a school

Resource, 5 operations

  • get_resourceGet resourceGETReturns a specific resource
  • list_course_resourcesList course resourcesGETReturns the resources for a course
  • list_resourcesList resourcesGETReturns a list of resources
  • list_section_resourcesList section resourcesGETReturns the resources for a section
  • list_user_resourcesList user resourcesGETReturns the resources for a user

User, 5 operations

  • get_userGet userGETReturns one user: name, email, district and, under roles, the details of each role the user holds (student, teacher, staff, district_admin or contact).
  • list_resource_usersList resource usersGETReturns the student and/or teacher users for a resource
  • list_school_usersList school usersGETReturns the staff, student, and/or teacher users for a school
  • list_section_usersList section usersGETReturns the student and/or teacher users for a section
  • list_usersList usersGETLists the district's users: students, teachers, staff, district admins and guardian contacts. Filter by role; each user carries its role details under roles.

Assignment, 4 operations

  • create_assignmentCreate assignmentPOSTCreates an assignment in a section of the district's LMS (LMS Connect). title and description are required. Clever has no route to list assignments, so keep the returned id.
  • delete_assignmentDelete assignmentDELETEDeletes an assignment created with create_assignment from the section in the district's LMS.
  • get_assignmentGet assignmentGETReturns one assignment of a section: title, description, state, due date, points possible, submission types and attachments.
  • update_assignmentUpdate assignmentPATCHUpdates an assignment created with create_assignment. Send only the fields to change: title, description, attachments, due_date, assignee_ids, points_possible, submission_types, max_attempts or term_id.

Term, 4 operations

  • get_section_termGet section termGETReturns the term for a section
  • get_termGet termGETReturns one term of the district: its name, start date and end date.
  • list_school_termsList school termsGETReturns the terms for a school
  • list_termsList termsGETLists the district's terms with their name, start date and end date. Terms exist only when the district sends term information to Clever.

Submission, 3 operations

  • get_submissionGet submissionGETReturns one student's submission for an assignment: state, flags, grade, grade points, grader comment and attachments.
  • list_submissionsList submissionsGETLists the submissions of an assignment, one per assigned student, with their state. Identify a submission by its user_id; this list does not return a submission id.
  • update_submissionUpdate submissionPATCHGrades or updates one student's submission: state, grade, grade_points, grade_comment, grader_id, flags, extra_attempts, override_due_date or attachments.

Event, 2 operations

  • get_eventGet eventGETReturns one event: its type (such as users.updated), when it was created, and the record it concerns in data.object (with previous_attributes on updates).
  • list_eventsList eventsGETLists the district's events, oldest first: one per record created, updated or deleted in the last 30 days, with the record itself in data.object. Pass starting_after with the last event id you processed to get only newer events.

Mycontact, 1 operation

  • list_user_contactsList user contactsGETReturns the contact users for a student user

Mystudent, 1 operation

  • list_user_studentsList user studentsGETReturns the student users for a teacher or contact user

Myteacher, 1 operation

  • list_user_teachersList user teachersGETReturns the teacher users for a student user

Use Clever from Claude Code, Cursor or Codex

Connect Clever in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Clever operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Clever

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Clever once

    Add your Clever connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Clever integration FAQ

What can you do with the Clever integration?

LiveContext exposes 53 operations on Clever, covering section, district, school and course.

Popular integrations

Browse the whole catalog