MCP server wrapper for the NSU Transcript Audit System. Exposes graduation eligibility audit tools for AI assistants to run audits on behalf of students and faculty, with support for local transcripts and Google Drive integration.
NSU Audit MCP has 16 tools with complete descriptions and clear naming conventions. Most tools follow verb_noun patterns (nsu_oauth_start, discover_choices, run_audit). Input schemas are present for all tools with proper type definitions. However, parameter descriptions lack depth, many are single-line and do not explain constraints, valid ranges, or error recovery paths. Output schemas are not documented in the visible code. Error handling guidance is minimal. The server handles sensitive OAuth flows but does not expose secrets as parameters (good). Tool composition is reasonable but some tools combine multiple concerns (e.g., gdrive_download_and_audit does download + audit in one call, violating single-responsibility). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite clear risk levels being declared in the metadata.
Discover what interactive decisions are needed for a transcript audit. Returns a list of choices (yes/no waivers and course selections) that must be answered before running the full audit.
Begin Google Drive authorization flow. Returns an auth_url that the user must open in their browser to grant access to their Google Drive files.
Confirm that Google Drive authorization is complete and the token has been stored.
Discover interactive choices needed for a transcript stored in Google Drive. Similar to discover_choices but for Drive files.
Download a transcript from Google Drive and run the full audit with resolved answers.
List transcript files from the user's Google Drive. Returns a list of files that can be audited.
Tool gdrive_download_and_audit violates single-responsibility principle by combining download + audit in one call. Should split into separate tools for composability.
Parameter descriptions lack constraint documentation. E.g., 'program' accepts 'CSE' or 'MIC' but description does not state this as an enum. LLMs may hallucinate invalid values.
Output schemas are not documented in visible code. LLMs cannot plan downstream tool calls or extract required fields without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Retrieve details of a past audit run by its UUID.
Begin Gmail authorization flow for sending audit reports via email. Returns an auth_url that the user must open in their browser.
Confirm that Gmail authorization is complete and the token has been stored.
List all past audit runs for the authenticated user.
List all graduation requirements for a program (CSE or MIC). No login required.
Look up a course in the NSU catalog by code. Returns course details if found.
Complete the OAuth 2.0 device authorization flow. After the user approves access in their browser, call this tool to exchange the device grant for an API session token.
Begin Google OAuth 2.0 Device Authorization for the NSU Audit API. This is a standard OAuth 2.0 device flow (RFC 8628) — no passwords are handled by this tool. It asks Google's authorization server for a ``user_code`` and ``verification_url`` that the student opens in their own browser to grant read-only access to their NSU audit data.
Run the full graduation eligibility audit with resolved user answers. Uploads transcript and answers to the backend and returns the audit result.
Send an audit report via email after an audit run is complete.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels declared in metadata. Agents cannot distinguish safe reads from destructive writes.
Error handling guidance is minimal. No recovery hints or actionable error messages visible in tool descriptions. Agents will not know what to do on failure.