-
-
server.js: the Streamable HTTP mode. It accepts POST requests at /mcp and returns clear errors for wrong paths or methods.
-
CampusPilot MCP connected over Streamable HTTP, MCP spec 2025-11-25. The request to /mcp returns 200 OK.
-
add_assignment saving a Physics assignment (due 2026-10-22, 4h) through the MCP server connected over Streamable HTTP.
-
create_study_plan spreads each assignment's hours over the days before its deadline and warns when time runs short.
-
create_study_plan spreads each assignment's hours over the days before its deadline and warns when time runs short.
-
generate_quiz turns study notes into fill-in-the-blank questions with an answer key (rule-based, not AI).
-
Error handling over Streamable HTTP: an invalid date is rejected with a clear message instead of crashing.
Inspiration
Students juggle several deadlines at once, and most planners only list tasks. They don't tell you whether you have enough time. I wanted a tool that takes your deadlines and returns a realistic day-by-day plan.
What it does
CampusPilot MCP is an MCP (Model Context Protocol) server for the Alexa+ track with four tools:
- add_assignment: saves an assignment or exam with a due date and hours needed
- list_assignments: shows tasks sorted by due date, with days remaining
- create_study_plan: spreads study hours across the days before each deadline, and prints a WARNING if there isn't enough time
- generate_quiz: turns study notes into fill-in-the-blank questions with an answer key (rule-based, not AI)
Bad input is rejected with clear error messages instead of crashing, for example an invalid date such as "tomorrow", zero study hours, or notes that are too short.
The server runs over Streamable HTTP (node server.js --http) at http://127.0.0.1:3000/mcp, and connects with MCP spec 2025-11-25. It also runs over stdio for the MCP Inspector.
How I built it
JavaScript on Node.js with the official MCP SDK (@modelcontextprotocol/sdk) and Zod for input validation. Assignments are saved to a local JSON file so they persist between sessions. I tested every tool with the MCP Inspector.
The study planner fills the days just before each deadline first, respects the daily hour limit, and reports any shortfall.
Challenges
This was my first MCP project. I had to learn how MCP tools are registered, how stdio and Streamable HTTP transports differ, how to fix Windows PowerShell blocking npm scripts, and how to clean a Git repository. I also had to make the planner handle several deadlines competing for the same days.
What I learned
How to build and test an MCP server, validate inputs, handle errors, and publish an open-source project.
What's next
Connecting the server to a voice experience, and using an AI model to write richer quiz questions.
Code
https://github.com/01fe25bec314-coder/campuspilot-mcp (MIT license)
Built With
- context
- git
- http
- inspector
- javascript
- mcp
- model
- node.js
- protocol
- streamable
- zod
Log in or sign up for Devpost to join the conversation.