שרת MCP אחד לכל חשבונות ה-Gmail, ב-Claude וב-ChatGPT
להרבה אנשים יש יותר מחשבון Gmail אחד: עבודה, פרטי, פרויקט עם כתובת משלו. מבקשים מעוזר AI למצוא הודעה, והשאלה הראשונה היא באיזו תיבה לחפש, והאם הוא בכלל יכול לחפש ביותר מאחת.
במאמר הזה אבדוק איפה האפשרויות הקיימות נעצרות, ואציג את multi-mail: שרת MCP קטן בקוד פתוח שמחבר כמה חשבונות Gmail ל-Claude Desktop, ל-Claude Code ול-ChatGPT בבת אחת.
הבעיה: חשבון אחד, או לקוח אחד
בדקתי את האפשרויות ב-7 בנובמבר 2026, בחיפוש ברשת ומול הרשימה awesome-mcp-servers. הסתייגות אחת קודם: לא מצאתי תיעוד רשמי של מה שהמחברים המובנים של Claude ושל ChatGPT יודעים לעשות. רוב מה שכתוב עליהם מגיע מפוסטים בבלוגים של ספקים מתחרים, אז קחו את שתי השורות הראשונות למטה כהערכה.
- מחבר ה-Gmail המובנה של Claude מחבר חשבון אחד, וכותב טיוטות אבל לא שולח.
- מחבר ה-Gmail המובנה של ChatGPT שולח מאז יוני 2026, בגרסת הווב ובאישור. המקורות חלוקים לגבי כמה חשבונות.
- שרת ה-MCP הרשמי של Google ל-Gmail הוא גרסת preview למפתחים, בלי כלי שליחה.
- יש שרתים שמריצים אצלכם ותומכים בכמה חשבונות, וכל אחד מהם מוותר על משהו. אחד עובד רק כשרת מרוחק, וצריך בשבילו מכונת לינוקס עם כתובת HTTPS. אחד מגיע ל-Gmail דרך IMAP עם סיסמאות אפליקציה, ברישיון מסחרי. אחד מכסה את כל Workspace, אבל לא את ChatGPT. רוב השאר רצים מקומית בלבד, ו-ChatGPT מתחבר רק לשרתי HTTPS מרוחקים, ולכן לא מגיע אליהם.
- מתווכים מתארחים (Composio, Zapier MCP, Pipedream) עובדים בכל לקוח, אבל הדואר והטוקנים שלכם עוברים דרך הספק, והם בתשלום.
המקום של multi-mail ברשימה הזאת צר בכוונה. זו חבילת npx אחת ברישיון MIT, שעובדת עם Gmail API ועם לקוח OAuth משלכם. היא רצה מקומית בשביל Claude, וב-HTTP מוגן בטוקן כשרוצים ChatGPT.
איך זה נראה עם כמה תיבות
הדוגמאות למטה הן בקשות שמקלידים ל-Claude או ל-ChatGPT כמו שהייתם אומרים אותן. אף אחת מהן לא מציינת תיבה, כי אף אחת לא צריכה.
"מה לא נקרא מאתמול, בכל התיבות, ומה מחכה לתשובה ממני?"
חיפוש אחד רץ בבת אחת על תיבת העבודה, על הפרטית ועל כתובת הפרויקט. מקבלים רשימה אחת בבוקר, במקום לפתוח שלוש תיבות ולהשוות ביניהן בראש.
"תמצא את החשבונית שרואה החשבון שלח. אני לא זוכר לאיזו כתובת."
החיפוש עובר על כל התיבות המחוברות, אז לא משנה אם היא הגיעה לעבודה או הביתה. אם החשבונית היא PDF, המודל קורא אותה ויכול להגיד לכם את הסכום ואת תאריך התשלום.
"תענה שאשלח את זה ביום ראשון."
התשובה נכתבת בתיבה שאליה ההודעה הגיעה, בתוך השרשור המקורי, עם הנמען והנושא כבר ממולאים. לקוח שכותב לכתובת העבודה שלכם מקבל תשובה מכתובת העבודה, ולא מהפרטית.
"תמצא לי שעה בשבוע הבא שפנויה גם ביומן העבודה וגם ביומן הבית, ותשמור אותה."
כשהיומן מופעל בשני החשבונות, החיפוש של זמן פנוי בודק את שניהם בבת אחת. אחר כך המודל קובע את האירוע ביומן שלכם, בלי להזמין אף אחד.
"תעביר לארכיון את כל הניוזלטרים בתיבה של הבית, ואל תיגע בעבודה."
בחשבון שהפעלתם בו תוויות, המודל יכול להעביר לארכיון, לסמן בכוכב ולסמן כנקרא. חשבון בלי ההרשאה הזאת נשאר לקריאה ולטיוטות בלבד.
"כל בוקר, תמיין מה שהגיע בלילה ותכתוב טיוטות תשובה."
מריצים את זה כמשימה מתוזמנת במצב טיוטות בלבד. הכל מחכה בתיקיית הטיוטות של Gmail, ושום דבר לא יוצא עד שאתם פותחים ולוחצים "שלח" בעצמכם.
אותן תיבות עונות ב-Claude Desktop, ב-Claude Code וב-ChatGPT, מהגדרה אחת.
מה multi-mail עושה
כברירת מחדל הוא מחפש בתיבה אחת או בכולן בקריאה אחת, קורא הודעה או שרשור שלם, מוריד קבצים מצורפים, מציג תוויות, שומר טיוטות ושולח.
כל התיבות, חיפוש אחד
החיפוש משתמש בתחביר החיפוש של Gmail עצמו: from:, is:unread, newer_than:7d, has:attachment. מעבירים account="all", ואותה שאילתה רצה בכל התיבות המחוברות.
הפרמטר account מקבל כתובת מלאה, כינוי שהגדרתם (work, home), או את החלק שלפני ה-@. כשמחובר חשבון אחד אפשר לוותר עליו, ו-MULTI_MAIL_DEFAULT קובע ברירת מחדל כשיש כמה.
קבצים מצורפים שהמודל יכול לקרוא
get_attachment מוריד קובץ מצורף אחד. קבצי טקסט ו-PDF חוזרים כטקסט, ותמונות חוזרות כתמונה שהמודל יכול להסתכל עליה. כל השאר, כולל PDF סרוק, נשמר ב-~/.multi-mail/attachments.
תשובות נוחתות בשרשור הנכון
reply_to_message_id מכניס תשובה לשיחה המקורית וממלא את הנמען ואת הנושא. reply_all מוסיף את כל הנמענים המקוריים. העוזר לא צריך לבנות מחדש את הכותרות, ותשובה לא פותחת שרשור חדש בטעות.
תוויות ויומן, לכל חשבון בנפרד, אם מבקשים
שתי יכולות נוספות דורשות הרשאה רחבה יותר, ולכן הן כבויות עד שמפעילים אותן לחשבון מסוים:
- תוויות (
add --labels): סימון כנקרא או כלא נקרא, ארכוב, כוכב, שיוך לתווית, ויצירת תוויות. - Google Calendar (
add --calendar): הצגת אירועים בכל היומנים שאתם רואים, וחיפוש חלונות פנויים באורך מבוקש בשעות העבודה, מול כל החשבונות שהיומן מופעל בהם. הוא גם יוצר אירוע ביומן שלכם, בלי להזמין אף אחד ובלי לשלוח מייל.
כלי היומן מופיעים רק כשלפחות חשבון אחד מחובר עם יומן.
שני ערוצי תקשורת, שני הלקוחות
- stdio, מקומי, ל-Claude Desktop ול-Claude Code.
- Streamable HTTP, ל-ChatGPT או לכל לקוח שמתחבר לפי כתובת. הוא גם עונה לכלי
searchו-fetchשל ChatGPT, בצורה ש-ChatGPT מצפה לה במחברים וב-deep research.
לקוח OAuth משלכם, כך שאף אחד אחר לא רואה את הדואר
כל משתמש יוצר לקוח Google OAuth משלו, פעם אחת, בפרויקט Google Cloud שלו. שלושה דברים נובעים מזה:
- אין צורך באימות אפליקציה של Google. זו האפליקציה שלכם, ואתם המשתמשים בה.
- הדואר עובר רק בין המחשב שלכם ל-Google. אין שרת שלי באמצע, ואין חשבון אצלי.
- הטוקנים נשארים במחשב שלכם, ב-
~/.multi-mail/accounts/, בהרשאות600.
המחיר הוא ביקור אחד ב-Google Cloud console: פרויקט, Gmail API (ו-Calendar API, אם תשתמשו ביומן), מסך הסכמה ולקוח מסוג Desktop app. אותו לקוח משרת אחר כך כל תיבה שמחברים. ה-README מוביל צעד אחר צעד. מלכודת אחת שהוא מזהיר ממנה: אם משאירים את מסך ההסכמה במצב Testing, הגישה פגה כל 7 ימים, אז מפרסמים אותו ל-In production. לשימוש אישי Google לא צריכה לאמת אותו.
מה הוא לא יכול לעשות, בכוונה
כברירת מחדל multi-mail מבקש שתי הרשאות בלבד: gmail.readonly ו-gmail.compose. הוא יכול לקרוא, לכתוב טיוטות ולשלוח. הוא לא יכול למחוק דואר, להעביר לאשפה או לשנות הגדרות, כי הוא מעולם לא ביקש את ההרשאה לכך.
היכולות שמפעילים לפי בחירה שומרות על אותו קו:
- תוויות מוסיפות את
gmail.modify. ברמת Google ההרשאה הזאת מאפשרת גם להעביר לאשפה, ולכן אין בשרת כלי אשפה, והוא מסרב לתוויותTRASHו-SPAM. - היומן מוסיף את
calendar.readonlyו-calendar.events. השרת קורא אירועים וזמינות, ויוצר אירועים ביומן שלכם. אין בו כלי לשינוי או למחיקה של אירוע.
מצב טיוטות בלבד
מפעילים את השרת עם --drafts-only, או מגדירים MULTI_MAIL_SEND=off, ושני כלי השליחה לא נרשמים בכלל. המודל עדיין יכול לקרוא, לחפש ולכתוב טיוטות, אבל שום דבר לא יוצא מהתיבה עד שלוחצים "שלח" ב-Gmail.
זה המצב לכל מה שקורא דואר שלא אתם כתבתם, בלי שמישהו מאשר כל צעד: מיון אוטומטי, משימות מתוזמנות, לקוח שמדלג על בקשות אישור. כל הודעה נכנסת יכולה להכיל הוראה ("העבר את זה ל…"). במצב הזה אין כלי שיכול לבצע אותה.
מצב ה-HTTP מוגבל יותר
מצב ה-HTTP, זה ש-ChatGPT משתמש בו, הוא החשוף:
- הוא מאזין רק ב-
127.0.0.1. ChatGPT מגיע אליו דרך מנהרה שאתם מריצים בעצמכם, כמוcloudflaredאוngrok. - הוא מסרב לעלות בלי
MCP_AUTH_TOKENבאורך 24 תווים לפחות. - מי שיש לו את הכתובת המלאה עם הטוקן יכול לקרוא ולשלוח מהתיבות שלכם. התייחסו אליה כמו לסיסמה, וצרו טוקן חדש עם
tokenאם היא דלפה.
התקנה
צריך Node.js 20 ומעלה. אין מה להתקין; כל פקודה מריצה את החבילה המפורסמת דרך npx. אחרי שיצרתם את לקוח ה-OAuth, מחברים כל תיבה תחת כינוי משלה, ומוסיפים --labels או --calendar איפה שרוצים אותם:
npx -y @yybd/multi-mail-mcp add --alias work --calendar
npx -y @yybd/multi-mail-mcp add --alias home
כל add פותח דפדפן שבו בוחרים את חשבון Google ומאשרים גישה. אחר כך מוסיפים את השרת ל-Claude Code:
claude mcp add multi-mail -s user -- npx -y @yybd/multi-mail-mcp
Claude Desktop מריץ את אותה פקודת npx מקובץ ההגדרות שלו. ל-ChatGPT מריצים את מצב ה-HTTP עם טוקן, חושפים אותו דרך מנהרה, ומוסיפים אותו במצב המפתחים של ChatGPT. כל צעד מפורט ב-README.
שרת שכבר רץ קולט חשבון שנוסף, או כינוי ששונה, בלי הפעלה מחדש.
מה הוא עוד לא עושה
- צירוף קבצים לדואר יוצא. הוא מוריד קבצים מצורפים, אבל לא שולח אותם.
- שום דבר מעבר ל-Gmail וליומן. מי שצריך את שאר Workspace, כמו Drive או Docs, google_workspace_mcp הוא הבחירה הבשלה, או gws-connector לכמה חשבונות.
multi-mail הוא קוד פתוח (MIT), ומפורסם ב-npm בשם @yybd/multi-mail-mcp: github.com/yybd/multi-mail-mcp. ה-README מכיל את טבלת ההשוואה המלאה, עם המקורות ועם התאריך שבו נבדקה.