תדריך בוקר ליום שלפניכם
Every weekday at 7:30, list everything on my calendar for today with times and locations, flag any meeting with no agenda in its description, and save the result as today.md in my Notes folder.
שרת MCP מאומת: Google Calendar
רשימת הכלים למטה היא לכידה חיה מהשרת הרץ; קריאת כלי מאומתת עדיין ממתינה להרשאות.
התשובה הקצרה
אומת לאחרונה 2026-08-03
שרת ה-MCP ליומן Google מאפשר לעוזר AI לקרוא את היומן שלכם, לחפש בו, ליצור ולעדכן אירועים, להשיב להזמנות ולבדוק מתי אתם פנויים. Google לא מפרסמת שרת MCP משלה, ולכן זה שכמעט כל מדריך מתכוון אליו הוא @cocal/google-calendar-mcp, פרויקט קהילתי עצמאי של Nate Spady: רישיון MIT, 8,606 הורדות בשבוע האחרון, 1,164 כוכבים, והגרסה האחרונה שוחררה ב-2026-06-01. הרצנו אותו במקום להאמין ל-README שלו. הוא עלה, דיבר בפרוטוקול וספר את כל 13 הכלים שהוא חושף, וכל שם, תיאור ופרמטר למטה הם הלכידה הזו מילה במילה. הוא נעצר בדיוק במקום שבו נעצרו אישורי הגישה, בקריאה הראשונה שהייתה צריכה להגיע ל-Google, והשגיאה הזו מודפסת כאן גם היא. אזהרה אחת לפני שתחפשו: הפרויקט הגדול יותר google_workspace_mcp מדורג מעליו בכוכבים ב-GitHub והוא דבר אחר לגמרי, חבילת Python לשנים עשר שירותים שבה היומן הוא משטח אחד מיני רבים. [1][2][3][7]
אימות
השיטה
הרצנו את השרת עם npx על גבי stdio, השלמנו את לחיצת היד של MCP וקראנו ל-tools/list. טבלת הכלים למטה היא התשובה הזו, מילה במילה, וגרסת הפרוטוקול למעלה נקראה ישירות מתשובת ה-initialize הגולמית. בלי קובץ אישורי גישה התהליך יוצא עוד לפני שהוא מדבר MCP בכלל, ולכן כיוונו את GOOGLE_OAUTH_CREDENTIALS לקובץ gcp-oauth.keys.json מזויף בעליל במקום ללקוח Google Cloud אמיתי: מספיק כדי להעלות את השרת ולספור מה שהוא מציע, לא מספיק כדי להגיע ל-Google. קריאת הכלי האחת שביצענו חזרה עם שגיאת האסימונים של השרת עצמו, המודפסת למטה. קריאה מאומתת עדיין ממתינה לאישורי גישה.
הודעת הפתיחה של השרת
No token file found at: /tmp/mcp-verify-home/.config/google-calendar-mcp/tokens.json ⚠️ No authenticated accounts found. Use the 'manage-accounts' tool with action 'add' to authenticate a Google account, or run: npx @cocal/google-calendar-mcp auth
קריאת כלי אמיתית אחת
tools/call list-calendars {}MCP error -32600: Authentication tokens are no longer valid. Please restart the server to re-authenticate.
שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.
כלים
השרת ענה ל-tools/list עם 13 כלים בתאריך 2026-08-03. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.
| כלי | מה הוא עושה |
|---|---|
| list-calendarsaccount | List all available calendars |
| list-eventsaccountcalendarId*timeMintimeMaxtimeZonefieldsprivateExtendedPropertysharedExtendedProperty | List events from one or more calendars. Supports both calendar IDs and calendar names. |
| search-eventsaccountcalendarId*query*timeMin*timeMax*timeZonefieldsprivateExtendedPropertysharedExtendedProperty | Search for events in a calendar by text query. |
| get-eventaccountcalendarId*eventId*fields | Get details of a specific event by ID. |
| list-colorsaccount | List available color IDs and their meanings for calendar events |
| create-eventaccountcalendarId*eventIdsummary*descriptionstart*end*timeZonelocationattendeescolorIdremindersrecurrencetransparencyvisibilityguestsCanInviteOthersguestsCanModifyguestsCanSeeOtherGuestsanyoneCanAddSelfsendUpdatesconferenceDataextendedPropertiesattachmentssourcecalendarsToCheckduplicateSimilarityThresholdallowDuplicateseventTypefocusTimePropertiesoutOfOfficePropertiesworkingLocationProperties | Create a new calendar event. |
| create-eventsaccountcalendarIdtimeZonesendUpdatesevents* | Create multiple calendar events in bulk. Accepts shared defaults (account, calendarId, timeZone) that apply to all events, with per-event overrides. Skips conflict and duplicate detection for speed. |
| update-eventaccountcalendarId*eventId*summarydescriptionstartendtimeZonelocationattendeescolorIdremindersrecurrencesendUpdatesmodificationScopeoriginalStartTimefutureStartDatecheckConflictscalendarsToCheckconferenceDatatransparencyvisibilityguestsCanInviteOthersguestsCanModifyguestsCanSeeOtherGuestsanyoneCanAddSelfextendedPropertiesattachments | Update an existing calendar event with recurring event modification scope support. |
| delete-eventaccountcalendarId*eventId*sendUpdates | Delete a calendar event. |
| get-freebusyaccountcalendars*timeMin*timeMax*timeZonegroupExpansionMaxcalendarExpansionMax | Query free/busy information for calendars. Note: Time range is limited to a maximum of 3 months between timeMin and timeMax. |
| get-current-timeaccounttimeZone | Get the current date and time. Call this FIRST before creating, updating, or searching for events to ensure you have accurate date context for scheduling. |
| respond-to-eventcalendarId*eventId*accountresponse*commentmodificationScopeoriginalStartTimesendUpdates | Respond to a calendar event invitation with Accept, Decline, Maybe (Tentative), or No Response. |
| manage-accountsaction*account_id | Manage Google account authentication. Actions: 'list' (show accounts), 'add' (authenticate new account), 'remove' (remove account). |
פרמטרים המסומנים ב-* הם חובה.
התקנה
העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.
פתחו את הקובץ ~/Library/Application Support/Claude/claude_desktop_config.json (בתוך Claude Desktop: Settings, אחר כך Developer, אחר כך Edit Config) והוסיפו:
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": [
"-y",
"@cocal/google-calendar-mcp"
],
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "/Users/yourname/Documents/gcp-oauth.keys.json"
}
}
}
}הערך GOOGLE_OAUTH_CREDENTIALS הוא הנתיב המלא לקובץ לקוח ה-OAuth שאתם מורידים מ-Google Cloud Console, וזה השדה האחד שחייבים לדייק בו: השרת יוצא בהפעלה אם הקובץ הזה לא נמצא. שמרו את הקובץ במקום שלא יזוז, ואז סגרו ופתחו מחדש את Claude Desktop. [9][4][5]
פקודה אחת בטרמינל:
claude mcp add --env GOOGLE_OAUTH_CREDENTIALS=/Users/yourname/Documents/gcp-oauth.keys.json --transport stdio google-calendar -- npx -y @cocal/google-calendar-mcp
כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ. השתמשו בנתיב מלא לקובץ אישורי הגישה, לא בנתיב שמתחיל בטילדה. הדגל --transport יושב בין זוג ה---env לבין שם השרת בכוונה: התיעוד מזהיר ששם שמופיע מיד אחרי --env נקרא כזוג KEY=value נוסף ונדחה. [10]
הוסיפו ל-~/.cursor/mcp.json עבור כל הפרויקטים, או ל-.cursor/mcp.json בתוך פרויקט אחד:
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": [
"-y",
"@cocal/google-calendar-mcp"
],
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "/Users/yourname/Documents/gcp-oauth.keys.json"
}
}
}
}Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. בלוק ה-env מחזיק נתיב, לא סוד, אבל הקובץ שהוא מצביע אליו הוא לקוח ה-OAuth שלכם: שמרו על שניהם מחוץ לכל מאגר קוד שאתם דוחפים. [11]
בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. העבירו את הטופס ל-Command (stdio) והזינו:
Name Google Calendar Command npx Arguments -y @cocal/google-calendar-mcp Environment Variables GOOGLE_OAUTH_CREDENTIALS /Users/yourname/Documents/gcp-oauth.keys.json
הערך בשדה ה-Arguments מתפצל לפי רווחים, לכן השאירו אותו בדיוק על שלוש המילים האלה. הנתיב לקובץ לקוח ה-OAuth נכנס ל-Environment Variables, אף פעם לא ל-Arguments, והוא חייב להיות נתיב מלא שמתחיל ב-/Users. לחצו קודם על Test Connection: שרת תקין עונה עם מספר הכלים שלו, שלושה עשר עבור השרת הזה. [12][5]
בלי טרמינל
אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם. Routines היא אפליקציית Mac שמריצה שרתי MCP בשבילכם: ממלאים כמה שדות פעם אחת, והכלים של השרת זמינים ל-AI שלכם בצ׳אט ובשגרות מתוזמנות. כדאי לדעת לפני שמתחילים: ל-Routines יש גם מחבר Google Calendar בלחיצה אחת שלא דורש שום דבר מכל זה, ולכן המדריך הזה מיועד למי שרוצה דווקא את השרת הזה, על שלושה עשר הכלים שלו, ולא גישה ליומן באופן כללי. החלק המסובך בשני המקרים הוא הצד של Google, וזו עקיפה של עשר דקות באתר של Google עצמה.
01
הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו.
02
היכנסו ל-console.cloud.google.com, צרו פרויקט או בחרו אחד קיים, והפעילו עבורו את Google Calendar API. אחר כך פתחו את OAuth consent screen, בחרו External, והוסיפו את כתובת ה-Google שלכם תחת Test users, אחרת ההתחברות תידחה בהמשך. לבסוף פתחו את Credentials, לחצו על Create Credentials, בחרו OAuth client ID ובחרו בסוג Desktop app.
03
Google מציעה את הלקוח החדש כהורדת קובץ JSON. שנו את שמו ל-gcp-oauth.keys.json ושמרו אותו במקום שלא יזוז, למשל בתיקיית Documents. הקובץ הזה מזהה את האפליקציה הקטנה שלכם מול Google; הוא לא היומן שלכם ולא סיסמה, אבל התייחסו אליו כאל קובץ פרטי בכל זאת.
04
לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server. העבירו את הטופס ל-Command (stdio): השרת הזה הוא פקודה, לא כתובת אינטרנט. Name: Google Calendar. Command: npx. Arguments: -y @cocal/google-calendar-mcp, בדיוק שלוש המילים האלה.
05
ב-Environment Variables הוסיפו את GOOGLE_OAUTH_CREDENTIALS עם הנתיב המלא של הקובץ ששמרתם, למשל /Users/yourname/Documents/gcp-oauth.keys.json. לחצו Test Connection: Routines מפעילה את השרת בלי לשמור אותו ומדווחת כמה כלים היא מצאה, שלושה עשר עבור השרת הזה. אחר כך לחצו Add Server.
06
השרת עולה בלי חיבור ל-Google ואומר זאת בעצמו. בצ׳אט, בקשו מהעוזר להשתמש בכלי manage-accounts עם הפעולה add. הוא פותח דף התחברות של Google בדפדפן, אתם מאשרים את הרשאות היומן, והאסימון שנוצר נשמר על ה-Mac שלכם. אחרי זה הכלים עובדים בצ׳אט מיד. כדי לתת לשגרה מתוזמנת להשתמש בהם, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.
רעיונות לשגרות
אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.
Every weekday at 7:30, list everything on my calendar for today with times and locations, flag any meeting with no agenda in its description, and save the result as today.md in my Notes folder.
Every Sunday at 18:00, look at the coming seven days on my calendar, tell me which days are back to back with no gap longer than 30 minutes, list the meetings I have not accepted yet, and write it all to week-ahead.md.
Every Monday at 8:00, check my free time for the next five working days between 9:00 and 17:00, find the three longest uninterrupted blocks, and create a two-hour Deep work event in the best one.
פתרון תקלות
שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.
מה רואים
Failed to start server: Error loading OAuth keys: OAuth credentials not found. Please provide credentials using one of these methods: 1. Environment variable: Set GOOGLE_OAUTH_CREDENTIALS to the path of your credentials file: export GOOGLE_OAUTH_CREDENTIALS="/path/to/gcp-oauth.keys.json" 2. Default file path: Place your gcp-oauth.keys.json file in the package root directory. Token storage: - Tokens are saved to: /tmp/mcp-verify-home/.config/google-calendar-mcp/tokens.json - To use a custom token location, set GOOGLE_CALENDAR_MCP_TOKEN_PATH environment variable To get OAuth credentials: 1. Go to the Google Cloud Console (https://console.cloud.google.com/) 2. Create or select a project 3. Enable the Google Calendar API 4. Create OAuth 2.0 credentials 5. Download the credentials file as gcp-oauth.keys.json Original error: ENOENT: no such file or directory, open '/tmp/mcp-verify-home/Documents/gcp-oauth.keys.json'
הפתרון
קובץ אישורי הגישה הוא הדבר הראשון שהשרת טוען, עוד לפני שהוא מוכן לדבר MCP בכלל, ולכן נתיב חסר או שגוי הורג אותו בהפעלה והלקוח שלכם פשוט מדווח שהשרת נכשל. גרמנו לזה פעמיים בכוונה, פעם אחת עם המשתנה לא מוגדר ופעם אחת עם הצבעה לקובץ שלא היה שם; השורה האחרונה בהודעה מציינת בדיוק את הנתיב שנוסה. הגדירו את GOOGLE_OAUTH_CREDENTIALS לנתיב המלא של הקובץ שהורדתם, בלי טילדה ובלי מרכאות סביבו ב-Routines, והפעילו שוב.
מה רואים
MCP error -32600: Authentication tokens are no longer valid. Please restart the server to re-authenticate.
הפתרון
זה מה שהריצה שלנו עצמה הפיקה, כי העלינו את השרת עם קובץ אישורי גישה מזויף בכוונה: הוא יכול לתאר את הכלים שלו בלי Google, אבל הקריאה האמיתית הראשונה זקוקה לחשבון מחובר. הריצו את הכלי manage-accounts עם הפעולה add, או את פקודת ה-auth שמופיעה בהודעת הפתיחה של השרת עצמו, ואשרו את הרשאות היומן בחלון הדפדפן שנפתח. אם זה עבד ונפסק אחרי שבוע בערך, ראו את השאלות הנפוצות למטה: מסך הסכמת OAuth שעדיין במצב Testing מפקיע את האסימונים כל שבעה ימים.
מה רואים
MCP error -32602: Input validation error: Invalid arguments for tool list-events: Invalid input at calendarId
הפתרון
השרת מאמת את הארגומנטים מול הסכימה שלו קודם כל, ו-calendarId הוא שדה חובה ברוב כלי האירועים. הפקנו את השגיאה הזו בקריאה ל-list-events בלי שום ארגומנט. בפועל עוזר נתקל בה כשהוא מנחש יומן: אמרו לו לקרוא קודם ל-list-calendars ולהשתמש במזהה מהרשימה הזו, או במילה primary עבור היומן הראשי שלכם.
מה רואים
Error: Invalid tool name(s): not-a-real-tool-name. Available tools: list-calendars, list-events, search-events, get-event, list-colors, create-event, create-events, update-event, delete-event, get-freebusy, get-current-time, respond-to-event, manage-accounts
הפתרון
הדגל האופציונלי --enable-tools מגדיר רשימת כלים מותרים לפי שם, ושם לא מוכר הוא שגיאה קטלנית ולא מתעלמים ממנו. תופעת לוואי מועילה: השגיאה מדפיסה את רשימת השמות המלאה של השרת, וזהו אישור עצמאי שני לשלושה עשר הכלים שבטבלה למעלה. העתיקו את השמות בדיוק, כולל המקפים.
הפתרון
הפקודה npx שייכת ל-Node.js. אם Node לא מותקן על ה-Mac, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו Node מ-nodejs.org, הפעילו מחדש את לקוח ה-MCP ונסו שוב.
שאלות נפוצות
זו תוכנה קטנה שיושבת בין עוזר AI לבין יומן ה-Google שלכם ומדברת ב-Model Context Protocol. אחרי החיבור, עוזר כמו Claude יכול להציג את היומנים שלכם, לקרוא ולחפש אירועים, ליצור ולעדכן אותם, למחוק אותם, להשיב להזמנות ולבדוק מתי אתם פנויים. הוא רץ כתהליך מקומי על ה-Mac שלכם ומדבר עם אפליקציית ה-AI על גבי stdio; אפשר גם לארח את אותה חבילה על גבי HTTP אם אתם מעדיפים אותה על שרת. [4]
Google לא מפרסמת אף אחד, ולכן כל האפשרויות הן פרויקטים קהילתיים. @cocal/google-calendar-mcp, זה שבעמוד הזה, מוביל בפער גדול בין השרתים הייעודיים ליומן: 8,606 הורדות בשבוע האחרון מול 614 לחבילה הייעודית הבאה, ו-1,164 כוכבים. השם שלו גם צפוף, עם חבילת google-calendar-mcp לא ממותגת של מחבר אחר ועוד כמה עותקים ישירים, אז העתיקו את השם המלא עם הקידומת בדיוק. החלופה האמיתית היחידה היא google_workspace_mcp, שמתפרסמת ב-PyPI בשם workspace-mcp: יותר כוכבים, אבל חבילת Python לשנים עשר שירותים שמכסה Gmail, Drive, Docs ועוד, ובה היומן הוא משטח אחד מיני רבים. בחרו בה אם אתם רוצים את כל Google Workspace, ובזה אם אתם רוצים יומן. [2][6][3][7][8]
השרת הרץ חושף 13 כלים: קריאה (list-calendars, list-events, search-events, get-event, list-colors, get-freebusy, get-current-time), כתיבה (create-event, create-events, update-event, delete-event, respond-to-event) ואחד להתחברות (manage-accounts). הטבלה למעלה היא פלט ה-tools/list החי, מילה במילה, והשרת הדפיס את אותם שלושה עשר שמות שוב בשגיאה לא קשורה במהלך הריצה שלנו.
חשבון Google, כן, ועוד שלב הכנה אחד שקל לזלזל בו: אתם יוצרים לקוח OAuth משלכם ב-Google Cloud Console, מורידים אותו כקובץ gcp-oauth.keys.json ומכוונים אליו את השרת. אין מפתח API להדביק ואין על מה לשלם. מלכודת אחת שכדאי לתכנן מראש: כל עוד מסך הסכמת ה-OAuth שלכם במצב Testing, Google מפקיעה את האסימונים שנוצרים כל שבעה ימים, ולכן החיבור מפסיק לעבוד אחרי שבוע בערך עד שתתחברו שוב או תפרסמו את מסך ההסכמה. [5]
זהו פרויקט קהילתי עצמאי, ברישיון MIT ופתוח לקריאה, בלי בעלים תאגידי מאחוריו: כדאי לדעת את זה לפני שהוא מחזיק אסימון ליומן שלכם. השאלה האמיתית היא היקף. חמישה מתוך שלושה עשר הכלים שלו כותבים, ו-delete-event ו-update-event פועלים מיד, כך שהוראה שהובנה לא נכון יכולה להזיז או להסיר פגישה אמיתית. תנו לו יומן ולא את כל החשבון היכן שאפשר, שמרו את קובץ לקוח ה-OAuth לעצמכם, ואם אתם רוצים רק קריאה, הדגל --enable-tools מאפשר להפעיל אותו עם כלי הקריאה בלבד. [3][4]
לא. ב-Routines ממלאים את השדות בהגדרות ולוחצים Test Connection, ומתחברים ל-Google מתוך הודעת צ׳אט ולא מפקודה; המדריך למעלה מראה כל לחיצה. Claude Desktop דורש עריכה חד-פעמית של קובץ JSON קטן. רק Claude Code הוא כלי טרמינל מטבעו. ואם אתם רוצים גישה ליומן ולא דווקא את השרת הזה, ל-Routines יש גם מחבר Google Calendar בלחיצה אחת שמדלג על Google Cloud Console לגמרי. [12][9]
כל לקוח MCP שמסוגל להפעיל שרת stdio מקומי: Claude Desktop, Claude Code, Cursor ו-Routines כולם יכולים, וההגדרה המדויקת לכל אחד נמצאת למעלה. השרת עצמו זהה בכל לקוח; רק המקום שבו מדביקים את ההגדרה משתנה, וכל אחד מהם צריך את אותו נתיב GOOGLE_OAUTH_CREDENTIALS. [9][10][11][12]
מקורות
כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.
[1]
Latest version 2.6.2, published 2026-06-01, MIT, repository nspady/google-calendar-mcp.
[2]
8,606 downloads for the week ending 2026-08-01. The next calendar-specific package, @gongrzhe/server-calendar-autoauth-mcp, had 614.
[3]
1,164 stars, MIT, not archived, last push 2026-06-01, per the GitHub API.
[4]
Install and config for Claude Desktop, the tool table, the environment variables, the optional HTTP transport and the maintainer note.
[5]
OAuth client setup, the gcp-oauth.keys.json shape, token storage paths, and the seven-day token expiry while the consent screen is in Testing mode.
[6]
The crowded namespace: an unscoped google-calendar-mcp by a different author, plus forks under @automate-army, @dongtran and @enterpret.
[7]
2,958 stars, MIT, not archived, last push 2026-08-02. Twelve Google Workspace services and 120 or more tools, in Python.
[8]
Version 1.23.1. The Python and uvx run model, in contrast with npx here.
[9]
The official Claude Desktop quickstart and the config file location.
[10]
The claude mcp add syntax for local stdio servers, the --env flag, and the warning about placing the server name straight after --env.
[11]
The mcp.json shape, including the env block, and the file locations.
[12]
How Routines runs one-click OAuth connectors, Google Calendar among them, and any MCP server.
העמוד הזה מתאר את Google Calendar כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.
מאחורי המדריך הזה
Routines, האפליקציה שמאחורי המדריך הזה, מריצה שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. התדריכים שהיא כותבת נשארים קובצי markdown על ה-Mac שלכם, ואין חשבון ענן לשלם. להורדת Routines