2.8 KiB
2.8 KiB
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):
"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("<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_paneproto 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_prefixse 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 searchmessageid:) - 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