FocusRoom MCP Server
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.dbPlanes 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: Task API MCP
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.ps1Si PowerShell bloquea la ejecución de scripts en la sesión actual:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
.\.venv\Scripts\Activate.ps12. Instalar dependencias
python -m pip install -r requirements.txt3. Configurar variables de entorno
Copia .env.example a .env y completa los valores:
Copy-Item .env.example .envRequerido para el agente basado en Groq:
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=openai/gpt-oss-120bConfiguración opcional de MCP:
MCP_HOST=127.0.0.1
MCP_PORT=8000
MCP_API_KEY=local_or_remote_api_keyPara 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=587No subas .env ni credenciales de API. Están excluidos por .gitignore.
Ejecutar la aplicación Streamlit
streamlit run streamlit_app.pyLa 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_serverPor defecto, se ejecuta en http://127.0.0.1:8000/mcp.
El servidor expone herramientas para:
productivity_assistantcreate_tasklist_tasksupdate_taskcomplete_taskdelete_tasksave_memorysearch_memorydaily_planproductivity_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.pyEl 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 -qPara ejecutar un archivo de prueba específico:
.\.venv\Scripts\python -m pytest -q test_multi_agent.pyPara comprobar la sintaxis de Python sin iniciar la aplicación:
.\.venv\Scripts\python -m compileall streamlit_app.py orchestratorEstructura 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 testsNotas sobre datos y seguridad
Las tareas y memorias se almacenan localmente en SQLite.
.envcontiene 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.dbsi 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 -qLa 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.
This server cannot be deployed
Maintenance
Related MCP Connectors
ADHD-friendly tasks, notes & projects for LucidNest - 18 tools, scoped tokens, Streamable HTTP.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
ADHD system of record for agents: tasks, goals, loops, calendar, focus stats.
Related MCP Servers
- AlicenseBqualityBmaintenanceExposes the Deferno task-manager backend to AI agents, enabling them to read, create, update, and manage tasks, habits, chores, events, and daily plans.81MIT
- AlicenseBqualityDmaintenanceEnables AI clients to create and manage tasks via a local REST API by converting natural language into HTTP requests through the Model Context Protocol.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables authenticated MCP clients to manage projects, tasks, habits, and daily capacity through tool calls.1 npmISC

Nexxupp MCP Serverofficial
AlicenseBqualityCmaintenanceEnables AI agents to store and search private memory, explore and edit workspace stations, databases, tasks, and charts, and schedule calendar events through natural language. Supports local stdio and hosted HTTP modes with per-user OAuth scoping of tools.22MIT