Skip to main content
Glama

FocusRoom | Productivity Agent

Un espacio de trabajo de productividad personal construido con Python, Streamlit, Groq, SQLite y MCP. Combina gestión de tareas, planificación diaria, memorias persistentes, un supervisor multiagente y recordatorios por correo opcionales en un solo proyecto.

Características

  • Panel de productividad con Streamlit

  • Crear, listar, filtrar y completar tareas

  • Prioridades de tareas, fechas de vencimiento, proyectos y estados

  • Almacenamiento persistente en SQLite en productivity.db

  • Planes diarios e informes de productividad

  • Guardar y buscar memorias personales

  • Asistente de productividad impulsado por Groq

  • Supervisor multiagente para solicitudes de tareas, memoria y planificación

  • Servidor MCP con herramientas HTTP para clientes externos

  • Recordatorios automáticos por correo opcionales

Related MCP server: autoMate

Requisitos

  • Python 3.10 o superior

  • Una clave de API de Groq para las funciones de IA

  • Credenciales SMTP de Gmail u otro proveedor SMTP para los recordatorios por correo

Configuración

1. Crear un entorno virtual

PowerShell:

python -m venv .venv
.\.venv\Scripts\Activate.ps1

Si PowerShell bloquea la ejecución de scripts en la sesión actual:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
.\.venv\Scripts\Activate.ps1

2. Instalar dependencias

python -m pip install -r requirements.txt

3. Configurar variables de entorno

Copia .env.example a .env y completa los valores:

Copy-Item .env.example .env

Requerido para el agente basado en Groq:

GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=openai/gpt-oss-120b

Configuración opcional de MCP:

MCP_HOST=127.0.0.1
MCP_PORT=8000
MCP_API_KEY=local_or_remote_api_key

Para recordatorios por correo:

EMAIL_SENDER=your_email@gmail.com
EMAIL_RECIPIENT=recipient@example.com
EMAIL_PASSWORD=your_smtp_or_app_password
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587

No subas .env ni credenciales de API. Están excluidos por .gitignore.

Ejecutar la aplicación Streamlit

streamlit run streamlit_app.py

La aplicación ofrece estas secciones:

  • Resumen - métricas de tareas, trabajo activo, instantánea diaria y progreso de finalización

  • Tareas - crear y filtrar tareas, y marcarlas como completadas

  • Plan - ver el plan diario actual y el informe de productividad

  • Memoria - guardar y buscar contexto persistente

  • Asistente - enviar solicitudes en lenguaje natural al supervisor de productividad

Ejecutar el servidor MCP

Inicia el servidor MCP HTTP Streamable con:

python -m orchestrator.mcp_server

Por defecto, se ejecuta en http://127.0.0.1:8000/mcp.

El servidor expone herramientas para:

  • productivity_assistant

  • create_task

  • list_tasks

  • update_task

  • complete_task

  • delete_task

  • save_memory

  • search_memory

  • daily_plan

  • productivity_report

Al vincular el servidor MCP a un host no local, establece MCP_API_KEY. Las solicitudes remotas deben usar un token de portador:

Authorization: Bearer <MCP_API_KEY>

Ejecutar recordatorios

El trabajador de recordatorios revisa las tareas próximas y envía las notificaciones por correo configuradas:

python reminder_worker.py

El horario de recordatorios se configura en el trabajador y admite recordatorios a 24 horas, 1 hora y 15 minutos antes del vencimiento de una tarea. Los recordatorios por correo requieren ajustes SMTP válidos en .env.

Ejecutar pruebas

Usa el entorno virtual del proyecto para que pytest esté disponible:

.\.venv\Scripts\python -m pytest -q

Para ejecutar un archivo de prueba específico:

.\.venv\Scripts\python -m pytest -q test_multi_agent.py

Para comprobar la sintaxis de Python sin iniciar la aplicación:

.\.venv\Scripts\python -m compileall streamlit_app.py orchestrator

Estructura del proyecto

Productivity_Agent/
|-- streamlit_app.py              # Streamlit user interface
|-- requirements.txt              # Python dependencies
|-- .env.example                  # Environment variable template
|-- productivity.db               # Local SQLite database, generated locally
|-- reminder_service.py           # Reminder service implementation
|-- reminder_worker.py            # Continuous reminder worker
|-- orchestrator/
|   |-- agent.py                  # Core task, memory, plan, and report logic
|   |-- database.py               # SQLite persistence layer
|   |-- orchestrator.py           # Multi-agent supervisor
|   |-- mcp_server.py             # MCP HTTP server and tools
|   |-- memory_agent.py           # Memory agent adapter
|   |-- planning_agent.py         # Planning agent adapter
|   |-- task_agent.py             # Task agent adapter
|-- test_*.py                     # Project tests

Notas sobre datos y seguridad

  • Las tareas y memorias se almacenan localmente en SQLite.

  • .env contiene secretos y debe permanecer privado.

  • Para Gmail, usa una contraseña de aplicación cuando sea necesario en lugar de la contraseña principal de tu cuenta.

  • La clave de API de MCP es necesaria cuando el servidor se expone más allá de localhost.

  • Haz una copia de seguridad de productivity.db si el historial local de tareas y memorias es importante.

Solución de problemas

pytest no se reconoce

Ejecuta pytest a través del entorno virtual:

.\.venv\Scripts\python -m pytest -q

La aplicación se inicia pero el asistente no está disponible

Comprueba que .env existe y contiene una GROQ_API_KEY válida, y luego reinicia Streamlit.

Streamlit informa de missing ScriptRunContext

Esta advertencia aparece al importar un módulo de Streamlit directamente con python -c. Inicia la aplicación con streamlit run streamlit_app.py para un funcionamiento normal.

La compilación funciona pero las pruebas fallan durante la recopilación

Un error de recopilación significa que pytest no pudo terminar de importar las pruebas. Lee la primera excepción notificada y corrige esa dependencia o discrepancia de constructor antes de evaluar las pruebas restantes.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI clients to manage todo tasks through Tools for adding, listing, completing, and searching, alongside Prompts for daily reviews and task breakdowns. Exposes task lists and statistics as Resources with local JSON file persistence.
  • A
    license
    Not graded
    quality
    D
    maintenance
    A personal AI assistant server that provides MCP tools for notes, files, reminders, memory, shell, browser, and 30+ SaaS integrations, enabling AI clients to access and manage your data across sessions.
    3,945
    MIT

View all related MCP servers

Related MCP Connectors

  • Manage projects, tasks, time tracking, and team collaboration through natural language.

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RevHeadGuy/FocusRoom'

If you have feedback or need assistance with the MCP directory API, please join our Discord server