Inspiration
As a student, it is difficult to keep track of assignments and their deadlines. The user wanted to develop a simple utility that would allow students to stay organized and plan their time.
Therefore, the idea of developing a student planning assistant came to mind. CampusPilot is a student dashboard planner with a Model Context Protocol (MCP) integrated into it. The tools expose the functions that make managing tasks and schedule easier.
Overview
The features available in the CampusPilot application include a dashboard where students can track and plan their academic activities and a self-hosted MCP server. The tools provided by the server through the Streamable HTTP are as follows:
list_tasks – provides a list of tasks
sync_tasks – synchronize tasks using the tool
set_task_status – changes the status of the task
plan_schedule – helps plan personal schedule based on deadlines, priorities, and task type
reset_demo_tasks – deletes demo tasks
The project’s purpose is to expose the functions and tools available in the developed application through the Model Context Protocol.
Implementation
The application was implemented using a dashboard and the Nodejs server with Streamable HTTP. The tools described above were created using the functions provided by the MCP SDK.
The tests were developed to check if the provided tools could be used in the application – in particular, tests 1-8 were performed. Additionally, the functioning of the application was tested on the local machine. The tests included loading the list of tasks, planning a schedule, changing the status of a task, and confirming that the server responded correctly.
Difficulties
While implementing the project, there were some difficulties. Firstly, it was necessary to ensure that the tools provided by the server can be used in the application. Therefore, the application’s web server needed to be correctly configured to allow the MCP tools to function.
Secondly, while implementing the tests, it was challenging to create tests that would check the functionality of the application beyond simply loading the dashboard. Therefore, additional tests were developed to check that the methods provided by the server actually perform the required actions.
Finally, the project finalization stage required documentation preparation, code repository, and recording of the video presenting the application. The process of preparing the application to be open-sourced taught me a lesson about the importance of project documentation, code comments, and project description.
Conclusion
The application provides a simple but functional dashboard for students to manage their tasks and plan their schedules. The project allowed me to explore and learn Node js, MCP, and Streamable HTTP. Additionally, I have learned the importance of documentation and testing when developing applications. The tools provided by the server allowed me to understand how the functions can be exposed in the new MCP-enabled application.
In the future, I would like to add more tools and functions to the dashboard and, in particular, make the schedule more individual for each user. It would be interesting to see how different tools and functions can be integrated into the CampusPilot project. Moreover, the idea of developing a student planning assistant that uses MCP and works with other AI clients in the future is attractive.
Log in or sign up for Devpost to join the conversation.