# mcp_owa_v1.0 MCP server pro OWA (outlook.cloud.microsoft) — drží persistentní Playwright session a umožňuje claude-cowork: - vyhledat email v MongoDB `OperativniEmailyJNJ.messages`, - otevřít ho v OWA UI, - udělat Forward, vepsat úvodní text na začátek těla, - zavřít původní čtecí panel. Odeslání forwardu **dělá uživatel ručně** v okně, které zůstává otevřené. ## Spuštění Profil sdílí s `import_emails_to_mongo_v1.0.py` (`outlook_profile/`). Pokud profil neexistuje, spusť nejdřív `outlook_login_v1.0.py`. Registrace v `.mcp.json` (stdio): ```json "owa": { "command": "U:\\PythonProject\\Janssen\\.venv\\Scripts\\python.exe", "args": ["U:\\PythonProject\\Janssen\\Outlook\\mcp_owa_v1.0.py"] } ``` ## Tools | Tool | Účel | |------|------| | `start_owa` | Spustí Playwright + otevře OWA | | `stop_owa` | Zavře okno | | `status` | Stav session | | `find_emails(query, from_email, folder, since_iso, limit)` | Hledání v MongoDB | | `find_last_email(from_email, folder)` | Nejnovější email | | `open_email_by_subject(subject)` | Otevře v OWA přes search | | `forward_current(body_prefix, subject_prefix)` | Ctrl+Shift+F, předvyplní | | `write_at_top(text)` | Vepíše text na začátek body draftu | | `set_recipients(to, cc)` | Doplní To/Cc | | `close_reading_pane` | Escape (zavře čtecí panel) | | `screenshot(path)` | Diagnostický screenshot | ## Typický flow ``` start_owa find_last_email(from_email="...") → vrátí subject + metadata open_email_by_subject("") → otevře v reading pane forward_current(body_prefix="Posílám dále, prosím o vyjádření.\n") → Ctrl+Shift+F, vepíše úvod set_recipients(to=["adresat@..."]) → vyplní příjemce → uživatel zkontroluje a odešle ručně close_reading_pane (až po odeslání) ``` ## Poznámky / známá omezení - **Forward draft = stejný tab** jako reading pane (inline composer). `close_reading_pane` proto NEZAVŘE draft, ale Escape může composer minimalizovat — preferuj zavírat až po odeslání. - **Podpis** se vkládá automaticky podle nastavení OWA — skript ho nevkládá. - **Subject prefix** — OWA si sám předřadí `FW: `, `subject_prefix` se přidá před to. - **Hledání emailu v UI** je přes search bar (subject substring). Pokud má více výsledků se stejným subjectem, otevře první (nejnovější). - Pokud OWA změní lokalizaci aria-labelů, uprav selektory v `forward_current` / `write_at_top` / `set_recipients`. ## TODO pro další verzi - Otevření přímo z `message_id` (přes search `messageid:`) - Detekce, zda forward composer otevřel popup tab místo inline - `send_forward()` tool s explicitním potvrzením - Volba složky před `open_email_by_subject`