Recall — Memory Agent for Students
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Recall — Memory Agent for Studentsrecall latest observations from biology lab"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🧠 Recall — Memory Agent for Students
Amrita University MCP Hackathon 2026
Track: Education & Research
Team Members: [Insert Names & Roll Numbers]
Deployed URL: [Insert Nitrostack URL]
Demo Video: [Insert Video Link]
Problem & Solution
Recall is an MCP (Model Context Protocol) server that acts as a persistent memory agent for students. It captures narrated observations during labs, lectures, or fieldwork, stores them as structured, searchable memory, and lets the student — or an AI study assistant — recall them later across sessions.
Example: A chemistry student narrates "this is the titration setup for experiment 3, the flask needs to sit for 10 minutes" during a lab. Later, they (or their AI assistant) can recall that observation, get a study summary, or generate a lab report draft — all from the MCP server.
Related MCP server: clova-speech-lecture-mcp
🏗 Architecture
Built with the NitroStack MCP framework using a NestJS-style modular architecture:
recall/
├── src/
│ ├── index.ts # Bootstrap entry point
│ ├── app.module.ts # Root @McpApp module
│ └── modules/
│ ├── storage/
│ │ ├── storage.module.ts # Global storage module
│ │ └── database.service.ts # SQLite wrapper (sql.js)
│ └── recall/
│ ├── recall.module.ts # Feature module
│ ├── recall.tools.ts # 5 MCP tools
│ ├── recall.resources.ts # Session graph resource
│ ├── recall.prompts.ts # 2 prompt templates
│ ├── observation.service.ts # Business logic service
│ └── types.ts # TypeScript interfaces
├── data/ # SQLite DB (auto-created)
├── package.json
├── tsconfig.json
├── .env / .env.example
└── README.md🔌 MCP Primitives
Tools (5)
Tool | Description |
| Store a new observation with label, note, context, and session ID |
| Search observations by keyword, optionally scoped to a session |
| Edit an existing observation's note |
| Soft-delete an observation |
| List all sessions with counts and date ranges |
Resources (1)
URI | Description |
| Read-only structured dump of all observations in a session with inferred relations |
Prompts (2)
Prompt | Description |
| Generates a concise study summary from session observations |
| Turns session observations into a structured lab report skeleton |
🚀 Getting Started
Prerequisites
Node.js ≥ 20.18.1 (use nvm to manage versions)
npm ≥ 9
tsx installed globally:
npm i tsx -g
Install & Run
# 1. Install dependencies
npm install
# 2. Start the dev server
npx @nitrostack/cli devThe server starts in stdio mode, ready for any MCP client (NitroStudio, Claude Desktop, etc.) to connect.
Environment Variables
Copy .env.example to .env and adjust if needed:
DB_PATH=./data/recall.dbThe SQLite database and data/ directory are created automatically on first run.
📋 Example Usage Flow
1. Capture observations during a lab
→ capture_observation({
label: "titration setup",
note: "Flask with 25ml NaOH, add phenolphthalein indicator, 3 drops",
context: "experiment-3",
session_id: "chem-lab-2026-07-18"
})
← { id: "abc-123", timestamp: "2026-07-18T10:30:00Z" }
→ capture_observation({
label: "titration endpoint",
note: "Color changed from pink to colorless at 22.4ml HCl",
context: "experiment-3",
session_id: "chem-lab-2026-07-18"
})
← { id: "def-456", timestamp: "2026-07-18T10:45:00Z" }2. Recall observations later
→ recall({ query: "titration", session_id: "chem-lab-2026-07-18" })
← { count: 2, results: [ ... ] }3. Browse session graph
→ read resource: recall://sessions/chem-lab-2026-07-18/graph
← { observations: [...], relations: [...], metadata: { ... } }4. Generate a study summary
→ use prompt: study_summary({ session_id: "chem-lab-2026-07-18", topic: "titration" })
← [Formatted prompt with observations embedded, asking AI to produce a study summary]5. Draft a lab report
→ use prompt: lab_report_draft({ session_id: "chem-lab-2026-07-18" })
← [Formatted prompt asking AI to produce Objective → Method → Observations → Conclusion]🏆 Hackathon Rubric Alignment
Criterion | How Recall Addresses It |
MCP Primitives | All 3 implemented: Tools (5), Resources (1), Prompts (2) |
Education & Research | Memory agent designed for students in labs, lectures, fieldwork |
Code Quality | TypeScript strict mode, NitroStack decorators, DI, modular architecture |
Architecture | Clean separation: storage → service → tools/resources/prompts |
Runnable Locally |
|
Storage | SQLite via sql.js (WASM-based, auto-schema, swappable) |
🔮 Future Enhancements (if time allows)
Semantic similarity search (embeddings + vector store)
Camera/mic streaming for real-time observation capture
Canvas UI for visual browsing of observation graphs
Notion/Slack/Gmail integrations for exporting summaries
Graph DB backend (Neo4j/SurrealDB) for richer relation queries
📄 License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Voice-led, FSRS-scheduled flashcards from YouTube, PDFs, web, or text. Auto-graded quizzes.
Voice notes that organize themselves. Capture by Siri, AI auto-tags, semantic search retrieves.
Screen recording, meeting notes, and voice dictation - all with AI
Spaced-repetition flashcards your AI writes, quizzes you on by voice, and schedules with FSRS.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables transcription of audio files using Google Gemini AI and creates a searchable knowledge base, allowing users to ask natural language questions about content in meetings, podcasts, lectures, and other audio recordings.-
- FlicenseNot gradedqualityDmaintenanceEnables speech-to-text transcription and summarization of lecture audio using Naver CLOVA APIs. Provides MCP tools for short and long audio processing with summarization.-
- AlicenseNot gradedqualityDmaintenanceTurns any source material into a guided learning experience with learning maps, notes, four-phase study loop, spaced repetition flashcards, and grounded Q\&A.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to capture screen and voice recordings, extract timestamped frames, and receive structured Markdown reports with context for bug fixing and UI feedback.12 npm18MIT