ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Outlook Mac MCP

โดย valter-araujoรุ่น 0.9.0i★ –i–
ชื่อใน registryio.github.valter-araujo/outlook-mac-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

MCP server for Outlook personal accounts (Hotmail/Outlook.com) via Microsoft Graph API

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: –
  • ช่องทาง (transport):
  • หมวด: แชตและอีเมล

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ผู้ทำยังไม่ได้ใส่วิธีติดตั้งใน registry ให้ดู README ของผู้ทำด้านล่าง

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub valter-araujo ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด แชตและอีเมลi

  • ดาวมากกว่า 0% ของอีก 1898 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 33% ของอีก 1898 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1898 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Outlook Mac MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.9.0) เข้า registry 2 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Vexa, emailmd, MCP WhatsApp Cloud

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Vexa

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

โดย Vexa-aiใช้กันมาก★ 2.9Kอัปเดต 2 เดือนที่ผ่านมา

รันบนคลาวด์✓ vexa.ai

emailmd

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

โดย anypostใช้กันมาก↓ 5.3K/สัปดาห์★ 1.4Kอัปเดต 34 วันที่ผ่านมา

บนเครื่องหรือคลาวด์✓ emailmd.dev

MCP WhatsApp Cloud

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

โดย codesparเริ่มต้น↓ 63/สัปดาห์★ 277อัปเดต 5 เดือนที่ผ่านมา

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

outlook-mac-mcp

MCP server for Microsoft Outlook, built for personal Microsoft accounts (Hotmail, Outlook.com, Live) that run on the consumer infrastructure rather than Exchange Online — and are therefore not supported by the official "Claude for Outlook" add-in nor by the Microsoft 365 connector.

Backend: Microsoft Graph API with delegated, user-consented, least-privilege scopes. Python, transport stdio, no telemetry.

Why not AppleScript

Community MCP servers for Outlook on Mac drive the app through AppleScript. That path only works with Legacy Outlook. In August 2026 Microsoft cancelled the planned AppleScript support in New Outlook, and the transition to New Outlook ends in October 2026. This project deliberately does not depend on it.

The reference environment for this project runs New Outlook (the "Legacy Outlook" toggle is present in the Outlook menu), where AppleScript automation is unavailable. This was the deciding factor.

Technical requirements

Runtime
ComponentRequirementNotes
macOS13 Ventura or laterKeychain used for token storage
Python3.12+Managed with uv; dependencies pinned in uv.lock
MCP clientAny stdio client (Claude Desktop, Claude Code)Tested against Claude Desktop
NetworkHTTPS to login.microsoftonline.com and graph.microsoft.com onlyNo other outbound calls
Microsoft account and app registration
ItemRequirement
Account typePersonal Microsoft account (Hotmail / Outlook.com / Live) or work/school
App registrationOne-time registration in Microsoft Entra ID (free; a personal account needs its own tenant, created via the Azure Portal)
Supported account types"Accounts in any organizational directory and personal Microsoft accounts"
AuthenticationDevice-code flow (MSAL, public client, no client secret)
Authorityhttps://login.microsoftonline.com/consumers
Scopes requested by defaultMail.Read, Calendars.Read, Contacts.Read, offline_access, User.Read
Scope added by OUTLOOK_MCP_ENABLE_CALENDAR_WRITE=trueCalendars.ReadWrite (see Optional: calendar write)
Admin consentNot required — every scope above is user-consentable

offline_access, openid and profile are reserved scopes: MSAL appends them to every request on its own and raises if they are passed explicitly. They are consented at the registration but never appear in the list the code asks for — that consent is what yields the refresh token behind the Keychain cache.

The app registration may list broader permissions than the server requests. The token only ever carries the scopes the running configuration asks for: the write scope is requested only behind a config flag that is off by default, and turning it on triggers a new sign-in and consent prompt.

Not required
  • Microsoft Outlook desktop app (the server talks to Graph, not to the app)
  • Exchange Online / Microsoft 365 business tenant
  • Accessibility or Automation permissions on macOS
  • Node.js, Bun, or any non-Python runtime

Validated environments

Ordered chronologically by validation date (oldest first).

VersionOSPythonMCP clientAccount typeOutlook app installedStatus
0.1.0macOS 27.0 (Golden Gate), Apple M53.14.7Claude DesktopPersonal (@hotmail.com)Outlook for Mac 16.112.4 (26090911), New Outlook, M365 Subscription — not used by the servervalidated 2026-09-14
0.2.0 (calendar write on)macOS 27.0 (Golden Gate), Apple M53.14.7Claude DesktopPersonal (@hotmail.com)as abovevalidated 2026-09-15
0.9.0 (through delete_event)macOS 27.0 (Golden Gate), Apple M53.14.7Claude DesktopPersonal (@hotmail.com)as abovevalidated 2026-09-17

A row moves to validated only after the tools it names return correct results on that environment, against a real mailbox. Contributions of new rows are welcome — please include exact versions.

Validated tools

Sorted alphabetically by tool name. One shipped tool is not in this table yet — it has unit and respx coverage but no live validation against a real mailbox:

  • search_contacts — no contact exists in the test mailbox to search for yet.
ToolValidatedWhat was checked
count_emails2026-09-15A received-time range covering one month returned an exact count.
create_event2026-09-15, 2026-09-16, 2026-09-17Created a timed event and an all-day event; Graph accepted the all-day payload with the resolved zone's name, and both came back readable. A body from the preview was written to the created event correctly. An event with no body at all also succeeded, confirming the fix for Graph defaulting an unsent body to HTML.
delete_event2026-09-17Deleted the event previewed under preview_event_deletion's token; confirmed removed from the calendar directly in Outlook.
get_email2026-09-14Text body returned with the Prefer header honoured; the malformed id nope came back as ErrorInvalidIdMalformed and was mapped to InvalidRequestError.
list_emails2026-09-15sort=oldest, limit=1 returned the folder's earliest email with an exact total; an exact-sender filter with sort=newest returned exactly one match, and Graph accepted the sender filter combined with $orderby without an InefficientFilter error.
list_folders2026-09-17Discovered 100+ custom folders correctly, including several levels of nesting, each with accurate per-folder unread/total counts. Confirmed the documented limitation live: a Microsoft-managed folder with no well-known flag (Deleted Items) appeared in custom as expected, alongside genuine user-created folders.
list_largest_emails2026-09-16Returned ranked results with real sizes from the extended property, skipped near zero.
list_todays_events2026-09-15Returned zero events, exact, on a free day.
list_unread_emails2026-09-14Reads a Hotmail inbox through Graph.
list_upcoming_events2026-09-15Returned the matching events, earliest first; confirmed both an all-day event and a timed event mapped correctly in the resolved time zone.
preview_event2026-09-15, 2026-09-16Summary and token for a timed and an all-day event; a body well under the truncation threshold showed in full, verbatim, in the preview.
preview_event_deletion2026-09-17Showed the complete event (every field, unabbreviated) with the irreversibility warning before any deletion happened.
preview_event_update2026-09-17A time change (10:00–10:30 -> 11:00–11:30) produced a diff summary showing only the changed field, old value -> new value.
search_emails2026-09-14, 2026-09-15, 2026-09-17A term matching several emails returned an exact total; scope=subject and scope=sender each returned a narrower, still-exact subset; a term trying to break out of the phrase returned empty with no 400. Passing next_page_token back as page_token returned a genuinely different second page (a different date window, no items repeated from the first), with total/total_is_exact still accurate on that page.
top_senders2026-09-15A full inbox scan hit the configured ceiling with coverage_is_complete=false; the client reported the partial coverage explicitly, as the description asks.
update_event2026-09-17Applied the previewed time change (10:00–10:30 -> 11:00–11:30) exactly; the updated event reflected only that change.

Every tool below has been validated against a real mailbox on the environment above; search_contacts has unit and respx coverage but no live validation yet (see above). Search quoting is additionally covered by a live positive-control check, see Integration tests.

Scope

  • v1 (read-only): unread emails, emails by folder (well-known or custom, by full path), search by term, read one email by id (body included), list folders, today's / upcoming events, contact search.
  • v2: create and update calendar events — behind a config flag, off by default; delete calendar events — behind a second flag, off by default even when the first one is on; mark as read — not yet built.
  • v3: send email — behind a config flag, off by default, with explicit per-call confirmation.

Tools

Read tools are always registered. The four tools marked v2, flagged register only when OUTLOOK_MCP_ENABLE_CALENDAR_WRITE=true (see Optional: calendar write). preview_event_deletion and delete_event, marked v2, flagged + calendar delete, additionally need OUTLOOK_MCP_ENABLE_CALENDAR_DELETE=true (see Optional: calendar delete). Sorted alphabetically by tool name.

ToolWhat it does
count_emailsCount emails matching the same filters as list_emails, exactly, without listing them.
create_event (v2, flagged)Create the event previewed under a token from preview_event.
delete_event (v2, flagged + calendar delete)Delete the event previewed under a token from preview_event_deletion. Irreversible.
get_emailFetch one email by id, body included.
list_emailsList emails in a folder with any combination of filters (read state, sender, date range, attachments), sorted newest or oldest, with an exact total.
list_foldersList the mailbox's well-known folders with their unread and total item counts, plus every user-created folder found by walking the mailbox tree, each identified by its full path.
list_largest_emailsList a folder's largest emails by byte size, largest first, scanning up to 10,000 matching emails per call; emails with no determinable size are counted separately in skipped.
list_todays_eventsList today's calendar events, earliest first.
list_unread_emailsList unread emails in a folder, newest first.
list_upcoming_eventsList calendar events from now through 1–30 days ahead.
preview_event (v2, flagged)Validate a new event and return a token and a summary, without creating it.
preview_event_deletion (v2, flagged + calendar delete)Fetch an existing event and return a token and a summary showing every field, unabbreviated, without deleting anything.
preview_event_update (v2, flagged)Fetch an existing event, validate the requested changes, and return a token and a diff summary (old value -> new value, changed fields only), without applying anything.
search_contactsSearch contacts by a display-name prefix or an exact email address.
search_emailsSearch a folder for a term, ranked by relevance, not by date.
top_sendersRank a folder's senders by how many emails each sent, scanning up to 10,000 matching emails per call.
update_event (v2, flagged)Apply the change previewed under a token from preview_event_update. Only the fields actually passed to the preview are changed.
Custom folders

A custom folder is any folder the user created in Outlook — not one of the five well-known folders (inbox, archive, junk email, sent items, drafts). search_emails, list_emails, count_emails, top_senders, list_largest_emails and list_unread_emails all accept one of the following as their folder argument:

  1. A well-known folder by name, matched case-insensitively — folder="inbox", folder="INBOX" and folder="Archive" all resolve the same way.
  2. `all` — every well-known folder, merged. Custom folders are never included, however many exist: folder="all".
  3. A custom folder by its full path, exactly as list_folders reports it under custom (folder names repeat across a mailbox; the full path is what disambiguates them): `fo

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx