FocusRoom MCP Server
FocusRoom | プロダクティビティエージェント
Python、Streamlit、Groq、SQLite、MCPで構築された個人用プロダクティビティワークスペース。タスク管理、日次計画、永続メモリ、マルチエージェントスーパーバイザー、オプションのメールリマインダーを1つのプロジェクトに統合しています。
機能
Streamlitプロダクティビティダッシュボード
タスクの作成、一覧表示、フィルタリング、完了
タスクの優先度、期限、プロジェクト、ステータス
productivity.dbへの永続的なSQLiteストレージ日次計画とプロダクティビティレポート
メモリの保存と検索
Groqベースのプロダクティビティアシスタント
タスク、メモリ、計画リクエスト用のマルチエージェントスーパーバイザー
HTTPツール用のMCPサーバー(外部からの利用に対応)
オプションの自動メールリマインダー
Related MCP server: Task API MCP
必要条件
Python 3.10以降
AI機能用のGroq APIキー
メールリマインダー用のGmail SMTP認証情報または他のSMTPプロバイダー
セットアップ
1. 仮想環境を作成する
PowerShell:
python -m venv .venv
.\.venv\Scripts\Activate.ps1PowerShellが現在のセッションでスクリプトの実行をブロックする場合:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
.\.venv\Scripts\Activate.ps12. 依存関係をインストールする
python -m pip install -r requirements.txt3. 環境変数を設定する
.env.example を .env にコピーし、値を入力してください:
Copy-Item .env.example .envGroqベースのエージェントに必要:
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_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サーバーをローカル以外のホストにバインドする場合は、MCP_API_KEY を設定してください。リモートリクエストはベアラートークンを使用する必要があります:
Authorization: Bearer <MCP_API_KEY>リマインダーを実行する
リマインダーワーカーは予定されたタスクを確認し、設定されたメール通知を送信します:
python reminder_worker.pyリマインダーのスケジュールはワーカー内で設定され、タスクの期限の24時間前、1時間前、15分前のリマインダーをサポートしています。メールリマインダーには .env 内の有効なSMTP設定が必要です。
テストを実行する
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キーは、サーバーがlocalhost以外に公開される場合に必要です。
ローカルのタスクとメモリの履歴が重要な場合は、
productivity.dbをバックアップしてください。
トラブルシューティング
pytest が認識されない
仮想環境を通じてpytestを実行してください:
.\.venv\Scripts\python -m pytest -qアプリは起動するがアシスタントが利用できない
.env が存在し、有効な GROQ_API_KEY が含まれていることを確認し、Streamlitを再起動してください。
Streamlitが missing ScriptRunContext を報告する
この警告は、python -c でStreamlitモジュールを直接インポートした場合に表示されます。通常の操作では 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