Skip to main content
Glama
cwon-z

icampus-mcp

by cwon-z

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ICAMPUS_MCP_TOKENSNoBearer token(s) used to authenticate requests to the MCP HTTP server. Required for HTTP mode unless using Cloudflare Access.
ICAMPUS_MCP_API_URLNoBase URL of the icampus REST API server (e.g., http://<server>:9013). Used for stdio mode.
ICAMPUS_MCP_API_TOKENNoAPI token used to authenticate with the icampus REST API. Used for stdio mode.
ICAMPUS_MCP_ACCESS_AUDNoCloudflare Access application AUD tag(s), comma-separated. Required for Cloudflare Access authentication.
ICAMPUS_MCP_ACCESS_TEAMNoCloudflare Access team name, e.g., myteam.cloudflareaccess.com. Required if using Cloudflare Access authentication.
ICAMPUS_MCP_ACCESS_EMAILSNoComma-separated list of emails allowed to access the MCP server via Cloudflare Access.
ICAMPUS_MCP_ALLOWED_HOSTSNoPublic hostname(s) allowed to reach the MCP server, must include the public hostname used with Cloudflare Access.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
sync_statusA

When the data was last refreshed (per dataset), whether the last runs worked, and any login problem. Call this first if answers look stale or empty.

list_coursesA

This term's courses: id, code (e.g. CSE1001), name, instructors and the current grade if visible.

list_tasksA

Things to do across courses, soonest first: the iCampus remaining list merged with Canvas assignment/quiz submission status and lecture completion. Items with no due date come last.

Args:
    course: course ID, code (CSE1001) or part of the name. Omit for all courses.
    kind: only this kind of item.
    due_within_days: items due in the next N days (items without a due date are always included).
    past_days: also include items whose due date passed in the last N days (overdue/late window).
    include_done: also include submitted/completed items.
    limit: maximum items returned; `total` shows how many matched when truncated.
list_announcementsA

Recent course announcements (title, date, author, read state, a short preview), newest first. Use read_announcement with an id for the full text.

read_announcementA

Full text of one announcement (by the numeric id from list_announcements).

list_lecturesA

Lecture videos/materials with completion and attendance as iCampus shows them, soonest deadline first. By default: items already open, not completed, whose deadline (incl. late period) has not passed.

Args:
    course: course ID, code or part of the name.
    week: week number (1 = 1주차).
    kind: e.g. video or material.
    incomplete_only: only items reported as not completed (unknown completion is left out).
    include_upcoming: also items that have not opened yet.
    include_overdue: also items whose deadline has passed (missed, possibly still viewable).
    include_attendance: add each course's official per-lesson attendance summary.
    limit: maximum items returned.
get_gradesB

Course totals and per-assignment scores as Canvas shows them to you (hidden grades stay hidden).

refreshA

Ask the collector to sync from iCampus now. Returns immediately; a sync takes about a minute. Limited to once every few minutes. Check sync_status afterwards.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation4/5

Most tools clearly target distinct resources: announcements, courses, tasks, lectures, grades, and sync status. The only mild overlap is list_tasks including lecture completion while list_lectures also reports completion, but their primary purposes are still distinguishable. refresh and sync_status are complementary rather than competing.

Naming Consistency3/5

The dominant list_* prefix creates a mostly readable pattern, and read_announcement and get_grades fit loosely within it. However, refresh and sync_status break the verb_noun style, and pluralization is inconsistent with list_announcements vs. read_announcement. The naming is understandable but not fully predictable.

Tool Count5/5

Eight tools is well within the ideal range for a campus portal integration. Each tool covers a distinct area—announcements, courses, tasks, lectures, grades, and sync—without redundancy or bloat.

Completeness4/5

The read-only scope is well covered: announcements have list/detail, the major coursework views have dedicated list endpoints, grades are exposed, and sync status is handled. Minor gaps exist such as no per-course detail or task/lecture detail endpoints, but common workflows around due work, lectures, and grades are fully supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues