Deadline Tracker MCP Server
Proyecto MCP — Rastreador de plazos / horario de clases
Proyecto final de la asignatura MCP (FIT-HCMUS, profesor Kha Do) — basado en las diapositivas MCP — Plug Your Agent Into Everything.
Estructura
mcp-homework/
├── server/
│ ├── core.js ← logic MCP thật: 3 tools + 1 resource + 1 prompt
│ ├── server.js ← chạy core qua stdio
│ └── http.js ← chạy core qua Streamable HTTP + API key guard + /health
├── agent/
│ ├── host.js ← agent = MCP HOST (load config, merge tools, dispatch, use_skill)
│ └── config.json ← khai báo model + các MCP server cần nối + nơi chứa skills
├── skills/
│ └── deadline-review/SKILL.md ← 1 skill orchestrate tool của server
└── README.mdRelated MCP server: ScienceTokyoLMS-mcp
Tema del servidor: Rastreador de plazos / horario de clases
Herramientas
add_deadline({ title, subject, due })— añade una fecha límitelist_deadlines({ subject?, onlyPending? })— lista, con filtradocomplete_deadline({ id })— marca como completada, devuelveisError: truesi el id es incorrecto
Recurso:
deadline://list— la lista completa, solo lecturaPrompt:
plan_my_week— pide al modelo que planifique la semana a partir de las fechas límite existentes
Ejecutar cada parte
1. Servidor stdio (pruébalo con Inspector)
npm install
npx @modelcontextprotocol/inspector node server/server.js2. Servidor HTTP (local y luego despliegue público)
MCP_KEY=$(openssl rand -hex 32) node server/http.js
# test:
npx @modelcontextprotocol/inspector # chọn Streamable HTTP, URL http://localhost:3000/mcp,
# header Authorization: Bearer <MCP_KEY>Despliegue (Render/Fly/Railway...): configura la variable de entorno MCP_KEY, expone el puerto PORT, /health se usa para la verificación de estado de la plataforma.
3. Host del agente (usa ambos servidores + la skill)
cd agent && npm install
# cần Ollama chạy sẵn model qwen3.5:4b (hoặc đổi model/baseURL trong config.json)
node host.js "deadline tuần này của tôi thế nào?"host.js hará: conectar el servidor stdio + el servidor HTTP → fusionar la lista de herramientas → construir el índice de skills desde skills/ → ejecutar el bucle think/decide/act/observe, llamar automáticamente a use_skill cuando la pregunta coincida con la descripción de la skill y, después, llamar a la herramienta MCP correspondiente.
Pruebas ya realizadas
Prueba de humo del servidor stdio: llamé a las 3 herramientas, leí el recurso, obtuve el prompt, comprobé
isErroral completar un id inexistente — todo como se esperaba.Servidor HTTP: petición sin clave → 401; con clave correcta → handshake
initializecorrecto;/healthdevuelveok.
Pendiente antes de entregar
Desplegar la versión HTTP en una plataforma pública (Render/Fly/Railway/Cloudflare Workers…), configurar
MCP_KEY, anotar la URL + clave para quien evalúaInstalar Ollama + descargar
qwen3.5:4b, ejecutaragent/host.jscon un modelo real (la prueba anterior solo verificó la capa MCP, no llamó al LLM)Grabar un video de demostración corto (ver la sección "Entrega" más abajo)
This server cannot be deployed
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
An MCP server for deep research or task groups
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA task manager MCP server that demonstrates all three MCP primitives (tools, resources, prompts). Enables users to manage tasks, read task summaries and details, and run structured planning/review prompts through natural language.-
- FlicenseAqualityDmaintenanceMCP server for Science Tokyo LMS, enabling course material download, assignment deadline checks, and more via tools like list_courses and get_upcoming_deadlines.71-
- FlicenseCqualityDmaintenanceA simple MCP server demonstrating resources, tools, and prompts using a local task list. It enables reading, creating, and analyzing tasks through MCP.1-
- FlicenseNot gradedqualityDmaintenanceA personal MCP server for managing a folder of markdown notes. It provides tools to search and list notes, resources to access individual notes, and a prompt for weekly summaries.-