About infinitecampus-mcp
infinitecampus-mcp is an MCP server for parents or students accessing their Infinite Campus portal records. It offers tools for academics, attendance, documents, and messages, with linked districts discovered after sign-in.
Key features
- 01List schedules, assignments, and grades
- 02Review attendance and school days
- 03Access documents and messages
- 04Retrieve teachers, assessments, and fees
- 05Discover features and check account status
Use cases
- 01Review a student's grades and assignments
- 02Check attendance events and school schedules
- 03Read portal messages or retrieve documents
MCP support
Exposes 20 tools for Infinite Campus portal data, including academics, attendance, documents, and messaging. It supports environment-variable credentials or a ContextMint Bridge fallback for obtaining session cookies.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y infinitecampus-mcpIC_BASE_URLCampus Parent portal base URL, e.g. https://campus.district.k12.example.usIC_DISTRICTInfinite Campus district app name (appName path segment from the portal URL)IC_USERNAMECampus Parent portal username. Optional: leave unset to use the ContextMint Bridge browser-extension fallback.IC_PASSWORDSecretCampus Parent portal password. Required only when IC_USERNAME is set.IC_NAMEFriendly name for the district (defaults to district appname)IC_DISABLE_FETCHPROXYSet to 1 to skip the ContextMint Bridge browser-extension fallback (missing creds become a hard error — useful in headless CI).IC_SESSION_CACHESet to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.IC_SESSION_FILEAbsolute path for the session cache file. Defaults to $MCP_DATA_DIR/.infinitecampus-mcp/session-<district>.json.IC_DOWNLOAD_DIRAbsolute path of the only directory ic_download_document may write into. Defaults to ~/Downloads.FETCHPROXY_WS_PORTLocalhost concentrator port (default 37149). On one machine every MCP shares the concentrator, so move it for ALL of them or not at all.FETCHPROXY_WS_HOSTBind interface (default 127.0.0.1; a literal IP only, anything else is ignored). Keep on loopback — it exists for ONE topology: a hosted child in its own network namespace.FETCHPROXY_IDENTITY_DIRWhere to store the long-term fetchproxy identity keypair (default ~/.fetchproxy/identity/; an absolute path only, anything else is ignored). Exists for a host that runs a separate child per caller, so they can share one identity.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
20Saved tool list · updated 1w ago
This tool takes no parameters.
Details
From the project READMEinfinitecampus-mcp
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.
Configuration
infinitecampus-mcp tries two auth paths in priority order; whichever succeeds first is used. Existing setups keep working unchanged.
- Env-var credentials (legacy). Set all four:
IC_BASE_URL=https://campus.springfield.k12.example.us IC_DISTRICT=springfield [email protected] IC_PASSWORD=... IC_NAME=Springfield # optional, defaults to IC_DISTRICT - ContextMint Bridge 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 ContextMint Bridge browser extension from its releases page (Chrome: download the chrome zip and load it unpacked viachrome://extensions→ Developer mode → Load unpacked; there is no Chrome Web Store listing yet. Safari is not available yet — it will ship inside the ContextMint app, which has no public download — so use Chrome for now) and sign into your IC portal once. ContextMint Bridge is the fetchproxy browser extension under its new name, from the same maintainer — fetchproxy's own README points to it. Its source is public at nullnet-app/contextmint-bridge: build it yourself, or check a release zip against the.sha256file published beside it (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256). The MCP reads theJSESSIONID(HttpOnly) +XSRF-TOKENcookies 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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.