Skip to main content
Glama
chrischall
by chrischall

infinitecampus-mcp

CI npm license

MCP server for Infinite Campus (Campus Parent portal). Single-account config — linked districts are auto-discovered via CUPS SSO after login.

Tools

20 tools across academics, daily life, documents, messaging, feature discovery, and a credential/district healthcheck.

Domain

Tools

Districts

ic_list_districts

Students

ic_list_students

Schedule

ic_get_schedule

Assignments

ic_list_assignments (sectionID server-side; missingOnly / date filters client-side)

Grades

ic_list_grades, ic_list_recent_grades (default 14d window)

School calendar

ic_list_school_days

Attendance

ic_list_attendance (per-course summary), ic_list_attendance_events (individual events with codes + comments)

Behavior

ic_list_behavior (FeatureDisabled-aware)

Food service

ic_list_food_service (FeatureDisabled-aware)

Documents

ic_list_documents, ic_download_document

Messaging

ic_list_messages (3 sources: prism notifications + Messenger 2.0 inbox + portal announcements), ic_get_message (fetch parsed HTML body of an inbox message)

Teachers

ic_list_teachers (teachers per section + assigned counselors)

Assessments

ic_list_assessments (standardized test scores)

Fees

ic_list_fees (assignments + surplus balance)

Features

ic_get_features (per-enrollment displayOptions flags)

Tools that the harness will gate as write/IO operations: ic_download_document.

Related MCP server: canvas-parent-mcp

Configuration

infinitecampus-mcp tries two auth paths in priority order; whichever succeeds first is used. Existing setups keep working unchanged.

  1. Env-var credentials (legacy). Set all four:

    IC_BASE_URL=https://campus.springfield.k12.example.us
    IC_DISTRICT=springfield
    IC_USERNAME=parent@example.com
    IC_PASSWORD=...
    IC_NAME=Springfield           # optional, defaults to IC_DISTRICT
  2. fetchproxy fallback (no password needed). Set only IC_BASE_URL + IC_DISTRICT (still required so the MCP knows which host to talk to and which district to dispatch on), then install the fetchproxy 0.3.0 extension (Chrome Web Store / Safari .dmg) and sign into your IC portal once. The MCP reads the JSESSIONID (HttpOnly) + XSRF-TOKEN cookies from that tab and goes direct-to-API from Node thereafter — the extension is not in the request hot path. The read is repeated whenever the session lapses (JSESSIONID is a servlet session with a short idle timeout), so you stay signed in without restarting the MCP.

Set IC_DISABLE_FETCHPROXY=1 to opt out of the fallback (turns missing credentials into a hard error — useful in headless CI).

Linked districts (via CUPS SSO) are auto-discovered after primary login — a parent with kids in two districts only configures the primary. No extra config needed. If you have truly separate IC instances with different credentials, run two MCP instances.

See .env.example.

Status

Unofficial — not affiliated with Infinite Campus. AI-maintained.

Acknowledgement of Terms

By using this MCP server, you acknowledge and agree to the following:

1. This server accesses your own Campus Parent account. Auth happens via your own credentials, scoped to the student records your school district has authorized you to view. It does not — and cannot — access anyone else's student records.

2. Infinite Campus's Terms of Use govern your use of this server, just as they govern your direct use of Campus Parent. The clauses most relevant here:

Users may not access, use, or search the Services by any means other than our publicly supported interfaces (for example, scraping or using the content to train artificial intelligence software).

And: "You are responsible for safeguarding the password that you use to access the Service and you agree not to disclose your password to any third party."

You are agreeing to those terms — read by the maintainer 2026-05-23 — every time you invoke a tool in this server. This server uses Infinite Campus's mobile-app JSON endpoints (/campus/api/oneRosterCampus, /portal/api/...) which are not "publicly supported interfaces" — IC may treat this as a ToS violation.

3. Personal, parent/student use only. This project is not affiliated with, endorsed by, sponsored by, or in partnership with Infinite Campus, Inc. or any school district. It is a personal automation tool for an authorized Campus Parent / Campus Student user to read their own (or their student's) records. Do not use it to bulk-extract student data, share another family's grades, or train AI models on student records.

4. FERPA + COPPA apply. Student educational records are protected under the federal Family Educational Rights and Privacy Act (FERPA), and student data for under-13 users is additionally covered by COPPA. Even though your parent-portal access is lawful, how you store, redistribute, or feed that data into LLMs is regulated. Treat any output from this server (grades, attendance, behavior records, schedules) as confidential student data. Do not put it in shared LLM contexts, do not paste it into screenshots, and do not train models on it.

5. You accept full responsibility for any consequences of using this server in connection with your Campus Parent account — rate limiting, account warnings, district IT investigations, or any enforcement action your district or Infinite Campus takes. Your district may have additional acceptable-use policies (acceptable-use agreements, parent handbooks) that further restrict automation. If your district or Infinite Campus objects to your use, stop using this server.

This section is the maintainer's good-faith summary of the terms — it is not legal advice and does not modify or supersede Infinite Campus's actual ToU or any school district's policies.

Available Tools

1 tool
ic_healthcheckVerify credentials and upstream reachabilityA
Read-onlyIdempotent

Resolves the credential the way real tools do, then makes one authenticated request to your Infinite Campus portal. Reports which source supplied the credential, whether your Infinite Campus portal accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a your Infinite Campus portal-side problem'. Call this when a real tool fails and you want to know which hop broke. Read-only; never returns the credential itself.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, openWorldHint, and idempotentHint, and the description adds substantial context beyond them: one authenticated request, reporting of credential source, acceptance, round-trip time, and failure-mode hints, plus 'never returns the credential itself.' This fully discloses behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but every sentence adds value, covering behavior, output, usage trigger, and safety. It is slightly wordy and contains a minor grammatical artifact ('a your Infinite Campus portal-side problem'), but remains well-organized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, no-output-schema tool, the description fully covers what the tool does, what it reports, when to use it, and its read-only nature. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the baseline is 4. The description correctly does not invent parameter semantics; it describes what the tool does without any parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Resolves... makes... Reports') and a specific resource (Infinite Campus portal), and clearly describes a diagnostic health-check behavior rather than a generic operation. No sibling tools exist, so it does not need differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Call this when a real tool fails and you want to know which hop broke,' giving a concrete trigger condition. With no sibling tools, no alternative routing is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.3/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusing it with another tool. The purpose is clearly distinct by default.

Naming Consistency4/5

The single tool name 'ic_healthcheck' follows a clean lowercase_with_underscore convention. There is no pattern to compare against, but no inconsistency exists.

Tool Count2/5

A server named 'infinitecampus-mcp' with only a healthcheck tool is far too thin for the apparent domain of an Infinite Campus integration. One tool does not meaningfully cover the expected scope.

Completeness1/5

The server provides only a healthcheck and no actual data operations such as retrieving students, grades, or attendance. This is severely incomplete for an Infinite Campus MCP server.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Canvas LMS with automatic OAuth authentication. Enables interaction with courses, assignments, grades, modules, discussions, quizzes, files, calendar, messaging, and more without manual API token management.
    159
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    A local MCP server for reading ParentSquare data (feeds, calendar, messages, directory, groups, and more) using undocumented internal APIs. It enables Claude, Cursor, and other MCP clients to access your ParentSquare account via stdio.
    23
    1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/infinitecampus-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server