FocusRoom MCP Server
FocusRoom | Агент продуктивности
Личное рабочее пространство для продуктивности на базе Python, Streamlit, Groq, SQLite и MCP. В одном проекте объединены управление задачами, ежедневное планирование, постоянная память, мультиагентный супервизор и опциональные email-напоминания.
Возможности
Дашборд продуктивности на Streamlit
Создание, просмотр, фильтрация и завершение задач
Приоритеты задач, сроки выполнения, проекты и статусы
Постоянное хранилище SQLite в
productivity.dbЕжедневные планы и отчёты о продуктивности
Сохранение и поиск личных заметок
Ассистент продуктивности на базе Groq
Мультиагентный супервизор для запросов по задачам, памяти и планированию
MCP-сервер с HTTP-инструментами для внешних клиентов
Опциональные автоматические email-напоминания
Related MCP server: Task API MCP
Требования
Python 3.10 или новее
Groq API-ключ для функций на базе ИИ
SMTP-учётка данных Gmail или другого SMTP-провайдера для email-напоминаний
Настройка
1. Создание виртуального окружения
PowerShell:
python -m venv .venv
.\.venv\Scripts\Activate.ps1Если PowerShell блокирует выполнение скриптов для текущего сеанса:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
.\.venv\Scripts\Activate.ps12. Установка зависимостей
python -m pip install -r requirements.txt3. Настройка переменных окружения
Скопируйте .env.example в .env и заполните нужные значения:
Copy-Item .env.example .envТребуется для агента на базе Groq:
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=openai/gpt-oss-120bНеобязательная конфигурация MCP:
MCP_HOST=127.0.0.1
MCP_PORT=8000
MCP_API_KEY=local_or_remote_api_keyДля email-напоминаний:
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Не добавляйте .env и учётные данные API в коммиты. Файл .gitignore исключает их.
Запуск приложения Streamlit
streamlit run streamlit_app.pyВ приложении есть такие разделы:
Обзор — метрики задач, активная работа, ежедневный снимок состояния и прогресс выполнения
Задачи — создание и фильтрация задач, а также отметка выполненных
План — текущий дневной план и отчёт о продуктивности
Память — сохранение и поиск долгосрочного контекста
Ассистент — естественно-языковые запросы к супервизору продуктивности
Запуск MCP-сервера
Запустите Streamable HTTP MCP-сервер:
python -m orchestrator.mcp_serverПо умолчанию он работает на http://127.0.0.1:8000/mcp.
Сервер предоставляет инструменты:
productivity_assistantcreate_tasklist_tasksupdate_taskcomplete_taskdelete_tasksave_memorysearch_memorydaily_planproductivity_report
Если сервер привязан к нелокальному хосту, задайте MCP_API_KEY. Удалённые запросы должны использовать bearer-токен:
Authorization: Bearer <MCP_API_KEY>Запуск напоминаний
Фоновая служба напоминаний проверяет предстоящие задачи и отправляет настроенные email-уведомления:
python reminder_worker.pyРасписание настраивается в службе и поддерживает напоминания за 24 часа, за 1 час и за 15 минут до срока задачи. Для email-напоминаний нужны корректные SMTP-настройки в .env.
Запуск тестов
Используйте виртуальное окружение проекта, чтобы был доступен pytest:
.\.venv\Scripts\python -m pytest -qЗапуск конкретного тестового файла:
.\.venv\Scripts\python -m pytest -q test_multi_agent.pyПроверка синтаксиса Python без запуска приложения:
.\.venv\Scripts\python -m compileall streamlit_app.py orchestratorСтруктура проекта
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Данные и безопасность
Задачи и записи памяти хранятся локально в SQLite.
.envсодержит секреты и должен оставаться приватным.Для Gmail используйте пароль приложения там, где это требуется, а не основной пароль аккаунта.
MCP_API_KEYобязателен, когда сервер доступен за пределами localhost.Делайте резервную копию
productivity.db, если локальная история задач и памяти важна.
Устранение неполадок
pytest не распознаётся
Запустите pytest через виртуальное окружение:
.\.venv\Scripts\python -m pytest -qПриложение запускается, но ассистент недоступен
Проверьте, что .env существует и содержит действующий GROQ_API_KEY, затем перезапустите Streamlit.
Streamlit сообщает missing ScriptRunContext
Это предупреждение появляется при прямом импорте модуля Streamlit через python -c. Для нормальной работы запускайте приложение командой streamlit run streamlit_app.py.
Компиляция проходит, но тесты падают при сборе
Ошибка сбора означает, что pytest не смог завершить импорт тестов. Посмотрите первое указанное исключение и исправьте несоответствие в зависимостях или конструкторах, прежде чем оценивать остальные тесты.
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 task management with persistent SQLite storage, along with tools, resources, subscriptions, prompts, and completions over stdio or Streamable HTTP with per-user authentication.1 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables an agent to read a simulated calendar, task board, team chat and client inbox, build and replan a workday, track a promise ledger, draft messages that await user approval, and persist memory across sessions. Exposes the same tools over Streamable HTTP to any MCP client.MIT