3.7 KiB
3.7 KiB
mcp_vbcz_email_v1.6.md
Verze: 1.6
Datum: 2026-06-09
Soubor: OutlookVBCZ/mcp_vbcz_email_v1.6.py
Popis
MCP server pro schránku vladimir.buzalka@buzalka.cz přes Microsoft Graph API (application permissions, tenant TrialHelp s.r.o., app PythonMailer 4b222bfd-…). Sdílí credentials s Knihovny/EmailMessagingGraph.py.
Tooly
| Tool | Popis |
|---|---|
list_emails |
Seznam posledních emailů (folder, limit, search, from_email, unread_only) |
get_email |
Plné tělo + metadata emailu podle message_id |
list_attachments |
Seznam příloh emailu |
get_attachment |
Stáhne přílohu do downloads/, vrátí cestu |
create_draft_eml |
Vygeneruje .eml draft (X-Unsent) k ruční kontrole a odeslání (+ přílohy, + forward originálu, + odříznutí self-forward obalu) |
create_event |
(v1.6) Vytvoří událost v kalendáři schránky (+ připomínka) |
create_contact |
(v1.6) Založí kontakt ve schránce |
Důležité — kam co jde
- E-maily lékařům / CTA = i nadále
.emldrafty (create_draft_eml), které se odesílají přes JNJ server (vbuzalka@its.jnj.com). NE přes tuto osobní schránku. - Kalendář (připomínky) + kontakty =
create_event/create_contactpíšou přímo do osobní schránky vladimir.buzalka@buzalka.cz (Graph POST).
create_event
create_event(
subject, # název události
start, # ISO bez offsetu, lokální čas: "2026-06-11T09:00:00"
end=None, # ISO; když None, dopočítá z duration_minutes
duration_minutes=30,
body=None, # poznámka (plain text nebo HTML)
location=None, # místo, např. "tel. 0911 926 046"
reminder_minutes_before=0, # připomínka N min předem (0 = v čase začátku)
timezone="Central European Standard Time",
is_all_day=False,
body_is_html=False,
) -> {id, web_link, subject, start, end, reminder_minutes_before}
Vyžaduje Calendars.ReadWrite (application). Připomínka je vždy zapnutá.
create_contact
create_contact(
given_name, surname, # povinné
display_name=None, # def "<given> <surname>"
email=None,
mobile_phone=None,
business_phone=None,
company=None, # firma / pracoviště
job_title=None,
note=None, # personalNotes
) -> {id, display_name, email}
Vyžaduje Contacts.ReadWrite (application).
Graph oprávnění (app PythonMailer) — Granted 2026-06-09
- Mail.ReadWrite (Application)
- Mail.Send (Application)
- Calendars.ReadWrite (Application) ← v1.6
- Contacts.ReadWrite (Application) ← v1.6
- User.Read (Delegated)
Kódování draftů (od v1.3)
- Tělo i plain fallback → base64 (
cte="base64"), zápis přespolicy.SMTP(CRLF) → správná diakritika v Outlooku.
Konfigurace .mcp.json
"vbcz-email": {
"command": "python",
"args": ["U:\\PythonProject\\Janssen\\OutlookVBCZ\\mcp_vbcz_email_v1.6.py"],
"cwd": "U:\\PythonProject\\Janssen\\OutlookVBCZ"
}
Historie verzí
- v1.0 — list_emails, get_email, list_attachments, get_attachment
- v1.1 — + create_draft_eml
- v1.2 — create_draft_eml: +
attachments - v1.3 — oprava kódování: base64 cte + CRLF (policy.SMTP)
- v1.4 — create_draft_eml: +
original_message_id(forward styl) - v1.5 — create_draft_eml: +
strip_self_forward(default True) - v1.6 — +
create_event(kalendář + připomínka), +create_contact; helper_graph_post; přidána oprávnění Calendars.ReadWrite + Contacts.ReadWrite. E-maily lékařům zůstávají jako.emldrafty (JNJ server).