Este proyecto es una aplicación de gestión de listas de tareas (To-Do List) desarrollada como parte de una consigna técnica. Utiliza el Model Context Protocol (MCP) para estructurar la lógica de negocio y la gestión de datos, permitiendo crear, modificar y eliminar listas y tareas. La API REST está implementada con FastAPI y la persistencia de datos se realiza con SQLAlchemy y SQLite. El proyecto está dockerizado para facilitar su despliegue y pruebas.
Como posible seguimiento, el proyecto puede integrarse con un modelo de lenguaje (LLM) y aprovechar las herramientas (tools) del MCP para automatizar tareas, generar respuestas inteligentes o interactuar de forma avanzada con los datos.
- Gestión de listas: Crear, actualizar, eliminar y listar listas de tareas
- Gestión de elementos: Agregar, modificar, completar y eliminar tareas
- Base de datos: SQLite con SQLAlchemy en python
- Dockerizado: Para un despiegue más fácil
docker-compose up --buildEsto hace que el servidor mcp funcione, y que además se cree la db.
#dependencias
pip install -r requirements.txt
#crear la db
cd db
python createdb.py
#ejecutar el servidor mcp
python todo_mcp.pyCuando ya tengas todo funcionando, podes probar los endpoints con fastapi.
#primero entras al contenedor
docker-compose exec todo-mcp bash
#ejecutas main que es donde esta el crud
python main.pyLa API se despliega en: http://localhost:8001
- Fastapi ofrece documentacion interactuva para ahorrarte el uso de otras apps como Postman, en:
http://localhost:8001/docs - algunos de lso endpoints son:
GET /lists/- Ver todas las listasPOST /lists/- Crear nueva listaPUT /lists/{id}- Actualizar listaDELETE /lists/{id}- Eliminar listaGET /lists/{id}/items/- Ver items de una listaPOST /lists/{id}/items/- Crear item en lista
db/todo_mcp.py- todo lo del mcpdb/createdb.py- configuracion para crear db y sqlalchemydb/main.py- crud de la api rest con fastapirequirements.txt- dependenciasDockerfile- dockerdocker-compose.yml- docker
mcp- Model Context Protocolfastapi- apisqlalchemy- ORM de dbuvicorn- Servidor ASGI
