Documents

Tmp.ChIoCYDxiX

Try it

This skill should be used when the user asks about Infinite Campus (Campus Parent) data for their student(s). Triggers on phrases like "check grades", "what'...

What it does

This skill should be used when the user asks about Infinite Campus (Campus Parent) data for their student(s). Triggers on phrases like "check grades", "what's my kid's GPA", "any new assignments", "attendance record", "message the teacher", "Campus Parent inbox", "infinite campus", or any request involving school grades, assignments, attendance, messages, or documents in Infinite Campus.

The skill document

infinitecampus-mcp

MCP server for Infinite Campus Campus Parent — read student grades, attendance, assignments, and messages; download documents; and send messages.

Setup

Add to .mcp.json in your project or ~/.claude/mcp.json:

{
  "mcpServers": {
    "infinitecampus": {
      "command": "npx",
      "args": ["-y", "infinitecampus-mcp"],
      "env": {
        "IC_BASE_URL": "https://campus.yourdistrict.k12.example.us",
        "IC_DISTRICT": "your-district-appname",
        "IC_USERNAME": "parent@example.com",
        "IC_PASSWORD": "yourpassword"
      }
    }
  }
}

Option B — from source

git clone https://github.com/chrischall/infinitecampus-mcp
cd infinitecampus-mcp
npm install && npm run build

Authentication

Two paths — the MCP tries them in priority order:

  1. Username/password. Set IC_USERNAME + IC_PASSWORD along with IC_BASE_URL + IC_DISTRICT.
  2. fetchproxy fallback. Install the fetchproxy 0.3.0 extension, sign into your IC portal in the browser, and leave IC_USERNAME / IC_PASSWORD unset. IC_BASE_URL + IC_DISTRICT are still required so the MCP knows which host to read cookies from.

IC_BASE_URL is your district's portal URL; IC_DISTRICT is the app-name path segment from that URL. Set IC_DISABLE_FETCHPROXY=1 to opt out of the fallback (headless / CI).

Tools (prefix ic_)

Students & teachers

  • ic_list_students — list students linked to your parent account
  • ic_list_teachers — list teachers for a student

Academics

  • ic_list_grades(studentId) — class grades
  • ic_list_recent_grades(studentId) — recently graded items
  • ic_list_assignments(studentId) — current assignments
  • ic_list_assessments(studentId) — test scores

Attendance

  • ic_list_attendance(studentId) — attendance summary
  • ic_list_attendance_events(studentId) — individual absence/tardy events
  • ic_list_school_days(studentId) — calendar days

Behavior & fees

  • ic_list_behavior(studentId) — behavior incidents
  • ic_list_fees(studentId) — outstanding fees
  • ic_list_food_service(studentId) — cafeteria balance

Messaging

  • ic_list_messages — inbox
  • ic_get_message(id) — read a message
  • ic_list_documents(studentId) / ic_download_document(id) — documents

Notes

  • Set IC_NAME if you want a friendly name other than the district appname.
  • Auto-discovers the CUPS (Campus Unified Portal Services) layout from the base URL — no extra config needed for most districts.

Related skills

Query an Infinite Campus (Campus Parent portal) district directly with curl instead of running the infinitecampus-mcp server — log in with a real username/password, capture the session cookie + XSRF token, and curl grades, attendance, assignments, schedule, messages, documents, and fees. Use when you want IC data without the MCP, in a script, or on a machine where the MCP isn't installed. Infinite Campus is per-district: the base URL and district app name are configurable, not hardcoded.

1 installs

This skill should be used when the user asks about Canvas LMS data — their own student account or any observed student. Triggers on phrases like "check Canva...

12 installs

This skill should be used when the user asks about Canvas LMS data — their own student account or any observed student. Triggers on phrases like "check Canvas", "what's my grade", "Canvas inbox", "what's due", "missing assignments", "Canvas LMS", "Instructure", "course announcements", "syllabus", or any request about courses, assignments, grades, conversations, announcements, planner items, or files in Canvas.

1 installs

This skill should be used when the user asks about their child's school arrival/dismissal through a SchoolPass parent account. Triggers on phrases like "check SchoolPass", "when is my kid dismissed", "what's my dismissal default", "list my students in SchoolPass", "who are my pickup drivers", "any pickup changes today", "school dismissal locations", or any request to read a SchoolPass parent account.

Turn support knowledge into an askable digital-human customer course.

1 installs

Read and change your children's school dismissal plans on PickUp Patrol (app.pickuppatrol.net) from a shell with curl — students, weekly defaults, day-by-day changes, school cutoff times.

1 installs