שרת MCP מאומת: Notion

שרת ה-MCP של Notion, רשימת הכלים שלו נלכדה חיה על Mac אמיתי.

  • הכלים נספרו2026-08-03macOS 14.4.1
  • חבילה@notionhq/notion-mcp-server 2.5.1
  • מדווח על עצמוNotion API 1.0.0
  • פרוטוקול MCP2025-06-18
  • סביבת ריצהv25.8.1

רשימת הכלים למטה היא לכידה חיה מהשרת הרץ; קריאת כלי מאומתת עדיין ממתינה להרשאות.

התשובה הקצרה

אומת לאחרונה 2026-08-03

שרת ה-MCP של Notion הוא הגשר הרשמי של Notion בין עוזר AI לבין סביבת העבודה שלכם: חיפוש, קריאת עמודים כ-Markdown, עריכה, שאילתות על מסדי נתונים והשארת תגובות, הכל דרך ה-API של Notion. הוא רץ על ה-Mac שלכם על גבי stdio ודורש אישור גישה אחד, סוד של אינטגרציה פנימית שאתם יוצרים בעצמכם. הרצנו אותו ושמרנו את הפלט הגולמי. החלק המעניין הוא מה שקרה בלי טוקן: השרת עלה, דיבר בפרוטוקול ומנה את כל 24 הכלים עוד לפני שביקש אישור גישה כלשהו. רק הקריאה האמיתית הראשונה חזרה עם שגיאת 401 של Notion, והתשובה הזו מודפסת בהמשך. ל-Notion יש גם גרסה מתארחת בכתובת mcp.notion.com שמשתמשת ב-OAuth במקום בטוקן מודבק, והיא זו שמומלצת כיום; שתי ההגדרות נמצאות בעמוד הזה. [1][3][5][6]

  • כלים

    24, נספרו בריצה חיה

  • אישורי גישה

    סוד אינטגרציה של Notion [5]

  • ערוץ תקשורת

    stdio, רץ על ה-Mac שלכם [5]

  • מתחזק

    Notion Labs (makenotion)‎ [1][3]

  • הורדות

    209 אלף בשבוע האחרון [2]

  • רישיון

    MIT [4]

אימות

איך שרת ה-MCP הזה אומת.

השיטה

הרצנו את השרת עם npx על גבי stdio בלי שום משתני סביבה: בלי NOTION_TOKEN ובלי OPENAPI_MCP_HEADERS. הוא עלה בכל זאת, השלים את לחיצת היד של MCP וענה ל-tools/list עם 24 כלים. טבלת הכלים למטה היא הלכידה הזו, מילה במילה. אחר כך הרצנו קריאה אחת שאינה משנה דבר, API-post-search, והשרת העביר אותה ל-Notion והחזיר את התשובה האמיתית: שגיאת 401 שאומרת שטוקן ה-API אינו תקף, והיא מודפסת למטה בדיוק כפי שחזרה. קריאת כלי שמגיעה בפועל לסביבת עבודה עדיין ממתינה לאישור גישה, ולכן העמוד הזה נושא את תג הספירה ולא את תג האימות המלא. השרת אינו מדפיס דבר ל-stderr בעליה, ולכן הבאנר למטה הוא תגובת ה-initialize הגולמית שהוא כתב על החיבור.

הודעת הפתיחה של השרת

{"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"Notion API","version":"1.0.0"}},"jsonrpc":"2.0","id":1}

קריאת כלי אמיתית אחת

tools/call API-post-search {"query": "Getting started", "page_size": 1}
{"status":401,"object":"error","code":"unauthorized","message":"API token is invalid.","request_id":"ede4937b-fa79-4222-8515-b404299d6f82"}

שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.

כלים

הכלים, כפי שנספרו מהשרת הרץ.

השרת ענה ל-tools/list עם 24 כלים בתאריך 2026-08-03. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.

כלימה הוא עושה
API-get-useruser_id*

Notion | Retrieve a user Error Responses: 400: 400

API-get-usersstart_cursorpage_size

Notion | List all users Error Responses: 400: 400

API-get-self

Notion | Retrieve your token's bot user Error Responses: 400: Bad request

API-post-searchquerysortfilterstart_cursorpage_size

Notion | Search by title Error Responses: 400: Bad request

API-get-block-childrenblock_id*start_cursorpage_size

Notion | Retrieve block children Error Responses: 400: Bad request

API-patch-block-childrenblock_id*children*after

Notion | Append block children Error Responses: 400: Bad request

API-retrieve-a-blockblock_id*

Notion | Retrieve a block Error Responses: 400: Bad request

API-update-a-blockblock_id*typearchived

Notion | Update a block Error Responses: 400: Bad request

API-delete-a-blockblock_id*

Notion | Delete a block Error Responses: 400: Bad request

API-retrieve-a-pagepage_id*filter_properties

Notion | Retrieve a page Error Responses: 400: Bad request

API-patch-pagepage_id*propertiesin_trasharchivediconcover

Notion | Update page properties Error Responses: 400: Bad request

API-post-pageparent*properties*childreniconcover

Notion | Create a page Error Responses: 400: Bad request

API-retrieve-a-page-propertypage_id*property_id*page_sizestart_cursor

Notion | Retrieve a page property item Error Responses: 400: Bad request

API-retrieve-a-commentblock_id*start_cursorpage_size

Notion | Retrieve comments Error Responses: 400: Bad request

API-create-a-commentparent*rich_text*

Notion | Create comment Error Responses: 400: Bad request

API-query-data-sourcedata_source_id*filter_propertiesfiltersortsstart_cursorpage_sizearchivedin_trash

Notion | Query a data source Error Responses: 400: Bad request

API-retrieve-a-data-sourcedata_source_id*

Notion | Retrieve a data source Error Responses: 400: Bad request

API-update-a-data-sourcedata_source_id*titledescriptionproperties

Notion | Update a data source Error Responses: 400: Bad request

API-create-a-data-sourceparent*properties*title

Notion | Create a data source Error Responses: 400: Bad request

API-list-data-source-templatesdata_source_id*start_cursorpage_size

Notion | List templates in a data source Error Responses: 400: Bad request

API-retrieve-a-databasedatabase_id*

Notion | Retrieve a database Error Responses: 400: Bad request

API-move-pagepage_id*parent*

Notion | Move a page Error Responses: 400: Bad request

API-retrieve-page-markdownpage_id*include_transcript

Notion | Retrieve a page as Markdown Error Responses: 400: Bad request 403: The integration lacks the read/update content capability required for this page. 404: Page not found or not shared with the integration. 429: Rate limited.

API-update-page-markdownpage_id*type*replace_contentupdate_contentinsert_contentreplace_content_range

Notion | Update a page's content as Markdown Error Responses: 400: Bad request 403: The integration lacks the read/update content capability required for this page. 404: Page not found or not shared with the integration. 409: Conflict (e.g. row limit exceeded). 429: Rate limited.

פרמטרים המסומנים ב-* הם חובה.

התקנה

הגדרות שעובדות, אחת לכל אפליקציה.

העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.

Claude Desktop

פתחו את הקובץ ‎~/Library/Application Support/Claude/claude_desktop_config.json (בתוך Claude Desktop: Settings, אחר כך Developer, אחר כך Edit Config) והוסיפו:

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": [
        "-y",
        "@notionhq/notion-mcp-server"
      ],
      "env": {
        "NOTION_TOKEN": "ntn_your_integration_secret"
      }
    }
  }
}

החליפו את מציין המקום בסוד של האינטגרציה שלכם, ואז סגרו ופתחו מחדש את Claude Desktop. אם אתם מעדיפים לא להדביק טוקן, את השרת המתארח של Notion מוסיפים תחת Settings, אחר כך Connectors, עם הכתובת https://mcp.notion.com/mcp והתחברות OAuth. [7][5][6]

Claude Code

פקודה אחת בטרמינל:

claude mcp add --env NOTION_TOKEN=ntn_your_integration_secret --transport stdio notion -- npx -y @notionhq/notion-mcp-server

כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ. עבור השרת המתארח, Notion מתעדת את הפקודה claude mcp add ‎--transport http notion https://mcp.notion.com/mcp, ואחריה מריצים את ‎/mcp כדי להשלים את התחברות ה-OAuth. [8][6]

Cursor

הוסיפו ל-‎~/.cursor/mcp.json עבור כל הפרויקטים, או ל-‎.cursor/mcp.json בתוך פרויקט אחד:

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": [
        "-y",
        "@notionhq/notion-mcp-server"
      ],
      "env": {
        "NOTION_TOKEN": "ntn_your_integration_secret"
      }
    }
  }
}

Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. השרת המתארח משתמש באותו קובץ עם שורת url אחת, ‎{"url": "https://mcp.notion.com/mcp"}, ומחבר אתכם ב-OAuth בשימוש הראשון. [9][6]

Routines

בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. העבירו את הטופס ל-Command (stdio) והזינו:

Name                   Notion
Command                npx
Arguments              -y @notionhq/notion-mcp-server
Environment Variables  NOTION_TOKEN = ntn_your_integration_secret

הערך בשדה ה-Arguments מתפצל לפי רווחים, לכן השאירו אותו בדיוק כפי שמופיע. הכניסו את הסוד ל-Environment Variables, לא ל-Arguments. לחצו קודם על Test Connection: שרת תקין עונה עם מספר הכלים שלו, עשרים וארבעה עבור השרת הזה. [10]

בלי טרמינל

איך מגדירים את שרת ה-MCP‏ Notion בלי טרמינל.

אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם. Routines היא אפליקציית Mac שמריצה שרתי MCP בשבילכם: ממלאים ארבעה שדות פעם אחת, והכלים של השרת זמינים ל-AI שלכם בצ׳אט ובשגרות מתוזמנות. ההכנה היחידה מתבצעת בתוך Notion, והיא לוקחת בערך שתי דקות.

  1. 01

    צרו את האינטגרציה ב-Notion

    היכנסו ל-notion.so/profile/integrations וצרו אינטגרציה פנימית חדשה. העתיקו את הסוד שהיא מציגה: הוא מתחיל ב-ntn_‎. בלשונית Configuration אפשר לסמן רק Read content, וכך תקבלו טוקן שיכול להסתכל אך לעולם לא לכתוב.

  2. 02

    שתפו את העמודים שתרצו שיראה

    אינטגרציה מתחילה בלי גישה לשום דבר. בהגדרות האינטגרציה פתחו את הלשונית Access ובחרו את העמודים ומסדי הנתונים שמותר לה להשתמש בהם. כל מה שלא תשתפו נשאר בלתי נראה לשרת.

  3. 03

    התקינו את Routines ופתחו את הגדרות ה-MCP

    הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו. לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server.

  4. 04

    בחרו Command (stdio)‎

    הטופס נפתח במצב URL (SSE/HTTP)‎. העבירו אותו ל-Command (stdio): השרת הזה הוא פקודה, לא כתובת אינטרנט. Name: Notion. Command: npx. Arguments: ‎-y @notionhq/notion-mcp-server, בלי שום דבר אחריו.

  5. 05

    הדביקו את הסוד כמשתנה סביבה

    בשדה Environment Variables הוסיפו רשומה אחת, NOTION_TOKEN, והערך שלה הוא הסוד שמתחיל ב-ntn_‎. אל תכניסו אותו ל-Arguments: השדה הזה מתפצל לפי רווחים ואינו המקום לאישור גישה.

  6. 06

    בדקו, הוסיפו, ואז השתמשו

    לחצו Test Connection: Routines מפעילה את השרת ומדווחת כמה כלים היא מצאה, עשרים וארבעה עבור השרת הזה. אחר כך לחצו Add Server. הכלים עובדים בצ׳אט מיד. כדי לתת לשגרה מתוזמנת להשתמש בהם, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.

רעיונות לשגרות

שגרות ששווה לתזמן.

אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.

תדריך סטנדאפ ליום שני

פרומפט

Every Monday at 8:30, search my Notion workspace for pages updated in the last seven days, group them by project, and write me a short standup brief with one line per project and anything that looks blocked.

סריקת עמודים תקועים

פרומפט

Every first day of the month at 9:00, query my Notion project database for pages with a status of In progress that have not been edited in 30 days, and list them with their owner and last edited date so I can chase or close them.

תייקן לסיכומי פגישות

פרומפט

Every weekday at 19:00, read today's meeting notes from my Notion Meetings database, pull out every decision and action item, and append them as a dated section to my Notion page called Running Log.

פתרון תקלות

השגיאות שנתקלנו בהן, ומה פתר אותן.

שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.

רשימת הכלים נראית תקינה אבל כל קריאה חוזרת עם unauthorized

מה רואים

{"status":401,"object":"error","code":"unauthorized","message":"API token is invalid.","request_id":"ede4937b-fa79-4222-8515-b404299d6f82"}

הפתרון

זו התשובה המדויקת שלכדנו בלי טוקן מוגדר. השרת אינו בודק את אישור הגישה שלכם בעליה: הוא עולה, מונה את כל 24 הכלים, ונכשל רק כשקריאת כלי מגיעה ל-Notion. לכן בדיקת חיבור ירוקה אינה מוכיחה דבר לגבי הטוקן. הגדירו את NOTION_TOKEN לסוד אמיתי של אינטגרציה פנימית (הוא מתחיל ב-ntn_‎) והפעילו מחדש את הלקוח. אם הטוקן אמיתי והשגיאה נמשכת, הוא בוטל או שהעתקתם את מזהה האינטגרציה במקום את הסוד.

השתמשתם ב-OPENAPI_MCP_HEADERS והשרת התעלם ממנו

מה רואים

Failed to parse OPENAPI_MCP_HEADERS environment variable: SyntaxError: Expected property name or '}' in JSON at position 1 (line 1 column 2)

הפתרון

גרמנו לשגיאה הזו בכוונה עם מחרוזת כותרות שאינה JSON תקין. המשתנה חייב להכיל אובייקט JSON שלם שבו כל מפתח וכל ערך עטופים במרכאות כפולות, ובתוך קובץ הגדרות JSON כל אחת מהמרכאות האלה צריכה בריחה נוספת. השרת מדפיס את השורה הזו ל-stderr, וממשיך בלי שום אישור גישה, ולכן הדבר הבא שתראו הוא שגיאת ה-401 שלמעלה. השתמשו ב-NOTION_TOKEN אלא אם אתם צריכים במפורש לקבע כותרת Notion-Version. מה שמופיע למעלה הוא השורה הראשונה של אותו stderr; שורות מחסנית הקריאות שמודפסות מתחתיה אינן מוצגות כאן כי הן נושאות נתיבים מקומיים מה-Mac שלנו.

השרת המתארח בכתובת mcp.notion.com דוחה אתכם

מה רואים

{"error":"invalid_token","error_description":"Missing or invalid access token"}

הפתרון

זהו גוף התשובה שקיבלנו מ-https://mcp.notion.com/mcp כשפנינו אליו בלי להתחבר, לצד כותרת WWW-Authenticate שמכריזה על Bearer realm="OAuth". השרת המתארח אינו מקבל סוד ntn_ מודבק: הוא מצפה להתחברות OAuth שהלקוח שלכם משלים בדפדפן. ב-Claude Code זו הפקודה ‎/mcp; ב-Cursor וב-Claude Desktop זה קורה בפעם הראשונה שמשתמשים בכלי של Notion. אם הלקוח שלכם אינו יודע OAuth, השתמשו בהתקנה המקומית עם npx שבעמוד הזה.

לקוח ה-MCP לא מצליח להפעיל את השרת בכלל

הפתרון

הפקודה npx שייכת ל-Node.js. אם Node לא מותקן על ה-Mac, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו Node מ-nodejs.org, הפעילו מחדש את לקוח ה-MCP ונסו שוב.

שאלות נפוצות

שאלות שאנשים שואלים.

מה זה שרת ה-MCP של Notion?

זהו שרת ה-Model Context Protocol הרשמי של Notion, שמתפרסם בשם ‎@notionhq/notion-mcp-server. אחרי החיבור, עוזר AI כמו Claude יכול לחפש בסביבת העבודה שלכם, לקרוא ולערוך עמודים, להריץ שאילתות על מסדי נתונים, להזיז עמודים ולהשאיר תגובות, דרך אותו API ציבורי שאפליקציית Notion משתמשת בו. הוא רץ כתהליך מקומי על ה-Mac שלכם ומדבר עם אפליקציית ה-AI על גבי stdio. [1][5]

אילו כלים כלולים בשרת ה-MCP של Notion?

השרת הרץ ענה ל-tools/list עם 24 כלים: חיפוש (API-post-search), עמודים (API-retrieve-a-page, API-post-page, API-patch-page, API-move-page, API-retrieve-a-page-property), תוכן עמוד כ-Markdown (API-retrieve-page-markdown, API-update-page-markdown), בלוקים (API-get-block-children, API-patch-block-children, API-retrieve-a-block, API-update-a-block, API-delete-a-block), מקורות נתונים ומסדי נתונים (API-query-data-source, API-retrieve-a-data-source, API-update-a-data-source, API-create-a-data-source, API-list-data-source-templates, API-retrieve-a-database), תגובות (API-retrieve-a-comment, API-create-a-comment) ומשתמשים (API-get-user, API-get-users, API-get-self)‎. הטבלה למעלה היא התשובה הזו, מילה במילה.

למה ה-README מציין 22 כלים ואתם ספרתם 24?

כי המספר ב-README ישן יותר מהחבילה. הנתון 22 שייך להערות של גרסה 2.0.0; הגרסה שהרצנו, 2.5.1, כוללת גם את API-retrieve-page-markdown ואת API-update-page-markdown, שני הכלים שקוראים וכותבים עמוד כ-Markdown במקום כ-JSON של בלוקים. README הוא הצהרה, תשובת tools/list היא עובדה, ו-24 זה מה שהשרת הרץ אמר. [5][1]

להשתמש בשרת הזה או בשרת המתארח של Notion?

Notion ממליצה כיום על המתארח. התיעוד שלה מתאר את Notion MCP בכתובת https://mcp.notion.com/mcp כשרת שמתוחזק באופן פעיל, מאומת ב-OAuth ובלי טוקן להדביק, ומתאר את החבילה בקוד פתוח ככזו שאינה מתוחזקת עוד באופן פעיל. החבילה המקומית עדיין מתאימה יותר כשאתם רוצים אישור גישה בשליטתכם, אינטגרציה לקריאה בלבד, או שרת שרץ מהמחשב שלכם, ולכן שתי ההגדרות נמצאות בעמוד הזה. [6][5]

הוא דורש מפתח API או חשבון?

כן. אתם יוצרים אינטגרציה פנימית ב-notion.so/profile/integrations ומעתיקים את הסוד שלה, מחרוזת שמתחילה ב-ntn_‎, אל תוך NOTION_TOKEN. גם האינטגרציה עצמה מתחילה בלי גישה לשום דבר: אתם בוחרים אילו עמודים ומסדי נתונים מותר לה לגעת בהם בלשונית Access, כך שהטווח שלה הוא בדיוק מה שהענקתם ולא יותר. [5]

אפשר לתת לו גישת קריאה בלבד לסביבת העבודה?

כן, וזו ההגדרה ששווה להכיר. בלשונית Configuration של האינטגרציה אפשר להעניק רק Read content, וכך נוצר טוקן שאינו יכול לכתוב. רשימת הכלים עדיין תציג את כלי הכתיבה, כי הרשימה קבועה בשרת, אבל Notion תסרב לכתיבה בצד שלה. שלבו את זה עם שיתוף של העמודים שהמשימה באמת צריכה. [5]

אילו אפליקציות יכולות להשתמש בשרת ה-MCP של Notion?

כל לקוח MCP שמסוגל להפעיל שרת stdio מקומי: Claude Desktop, Claude Code, Cursor ו-Routines כולם יכולים, וההגדרה המדויקת לכל אחד נמצאת למעלה. השרת עצמו זהה בכל לקוח; רק המקום שבו מדביקים את ההגדרה משתנה. לקוחות שיודעים להשלים התחברות OAuth יכולים להשתמש בשרת המתארח במקום. [7][8][9][10]

מקורות

כל טענה חיצונית, עם קבלה.

כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.

  1. [1]

    npm registry: @notionhq/notion-mcp-serverנקרא בתאריך 2026-08-03

    Latest version 2.5.1, published 2026-07-25; described as the official MCP server for the Notion API; every publishing maintainer is a Notion address.

  2. [2]

    npm downloads API: last weekנקרא בתאריך 2026-08-03

    209,337 downloads for the week ending 2026-08-01.

  3. [3]

    GitHub: makenotion/notion-mcp-serverנקרא בתאריך 2026-08-03

    4,566 stars and a push dated 2026-07-25 at access time, per the GitHub API; owned by the makenotion organisation.

  4. [4]

    makenotion/notion-mcp-server LICENSE fileנקרא בתאריך 2026-08-03

    We read the file: it is the MIT License text, copyright 2025 Notion Labs, Inc.

  5. [5]

    Notion MCP Server READMEנקרא בתאריך 2026-08-03

    The NOTION_TOKEN and OPENAPI_MCP_HEADERS contract, stdio as the default transport, the integration and Access tab steps, and the 22-tool figure from the 2.0.0 notes.

  6. [6]

    Notion developers: Connecting to Notion MCPנקרא בתאריך 2026-08-03

    The hosted server at https://mcp.notion.com/mcp, its OAuth flow, per-client config, and the note that the open-source server is no longer actively maintained.

  7. [7]

    modelcontextprotocol.io: Connect to local MCP serversנקרא בתאריך 2026-08-03

    The claude_desktop_config.json location and shape for a local stdio server.

  8. [8]

    Claude Code docs: MCPנקרא בתאריך 2026-08-03

    The claude mcp add syntax for stdio servers with --env, and for remote servers with --transport http.

  9. [9]

    Cursor docs: Model Context Protocolנקרא בתאריך 2026-08-03

    The mcp.json shape and file locations.

  10. [10]

    Routines: Connectorsנקרא בתאריך 2026-08-03

    How Routines runs one-click OAuth connectors and any MCP server.

העמוד הזה מתאר את Notion כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.

מאחורי המדריך הזה

Routines, האפליקציה שמאחורי המדריך הזה, מריצה שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. כל מה שהיא כותבת עבורכם נשאר כקובצי markdown על ה-Mac שלכם, ואין חשבון ענן לשלם. להורדת Routines