Campus Data MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CAMPUS_DATA_HOME | No | Override the default state directory root. Default root: ~/.local/share/campus-data-mcp. | ~/.local/share/campus-data-mcp |
| CAMPUS_DATA_HEADLESS | No | CAMPUS_DATA_HEADLESS=1 is available for automated testing after access is established; the default visible browser makes human verification possible. | |
| CAMPUS_DATA_EXTRA_HOSTS | No | A required institution SSO or export CDN can be enabled by the local user with comma-separated exact hostnames in CAMPUS_DATA_EXTRA_HOSTS; this widens the trust boundary for both provider sessions. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| campus_openA | Open the local provider browser. Optional URL must belong to that provider. Reuses a dedicated private profile; never opens your everyday browser profile. CSMAR may log in automatically on campus. For CNRDS try campus_school_login. |
| campus_inspectA | Read visible text and controls across provider tabs and frames. Returns current control refs, login/access hints and downloads. Input values, hidden fields, cookies and storage are omitted. Each call expires older refs. Check subscription/sample restrictions on the page before requesting exports. Each frame returns up to 250 controls; control_offset pages through larger sets. |
| campus_school_loginB | Click a unique visible school/institution login button, without credentials. Does not guess a hidden authentication endpoint or force an unavailable login. A missing button outside campus often means the user's IP was not recognized. |
| campus_searchA | Search the currently visible catalogue using its website search box. Auto-detects one search input. If ambiguous, pass input_ref and optionally submit_ref from the same latest inspection. Otherwise submits with Enter. Search results may load asynchronously; inspect again when needed. |
| campus_actA | Operate a current visible control to choose tables, fields, dates and filters. select uses an option value; check uses 'true'/'false'. press allows Enter, Tab, Escape, ArrowDown, ArrowUp or Space. Login/OTP/password fields are manual-only. Prefer campus_export for the final export click and provenance. |
| campus_scrollC | Scroll a visible control into view, including inside an embedded frame. |
| campus_exportA | Click the selected export/download button and retain any browser export locally. query_note must document table, fields, filters, date range and format. No automatic query splitting or limit evasion. wait_seconds is 0–30. For async packaging, inspect the job page or call campus_downloads; don't resubmit. Files get checksums and provenance manifests; their contents are not returned. A received file still needs sample/full, format and coverage validation. |
| campus_downloadsB | List this session's local export receipts; optionally wait 0–30 seconds. Previously saved files/manifests persist on disk when the server restarts. This tool reports browser downloads, not provider-side export job progress. |
| campus_closeA | Close a provider browser after active downloads finish. Keep its profile locally. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct operation (open/close lifecycle, inspect, login, search, act, scroll, export, downloads) and descriptions explicitly delimit boundaries, e.g. 'Prefer campus_export for the final export click'. Minor overlap remains since campus_act can click controls while campus_scroll and campus_export are specialized clicks, but the docs clarify the intended routing.
All tools share a consistent campus_ prefix with snake_case, giving a predictable set. Slight deviation: most are verb-based (open, inspect, search, act, scroll, export, close) but campus_school_login and campus_downloads are compound noun phrases rather than simple verbs.
Nine tools is well-scoped for a browser-automation/data-export server, with each tool earning its place across lifecycle, inspection, interaction, and export concerns. No obvious redundancy in count.
The surface covers the full session lifecycle (open, inspect, interact, export, download receipts, close) with provenance handling. A possible gap is an explicit text-entry tool for arbitrary catalogue fields, though campus_act may cover typing/filters, and login fields are deliberately manual.