שרת MCP מאומת: Obsidian

שרת ה-MCP ל-Obsidian, הופעל וכליו נספרו בריצה חיה על Mac אמיתי.

  • הכלים נספרו2026-08-03macOS 26.3.1
  • חבילהmcp-obsidian 0.2.2
  • מדווח על עצמוmcp-obsidian 1.29.0
  • פרוטוקול MCP2025-06-18
  • סביבת ריצהPython 3.11.13 (uvx)

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

התשובה הקצרה

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

שרת ה-MCP ל-Obsidian מחבר עוזר AI לכספת שלכם דרך תוסף הקהילה Local REST API של Obsidian, ולא דרך קריאה ישירה של תיקיית הכספת מהדיסק. זו חבילת Python שמפעילים עם uvx, היא דורשת שהתוסף הזה יהיה מופעל בתוך Obsidian ואת מפתח ה-API שהתוסף מנפיק, והבקשות שהיא שולחת פונות ל-127.0.0.1 על הפורט של התוסף. הרצנו אותה: השרת עלה, לחיצת היד של MCP הושלמה, והוא רשם את כל 12 הכלים, המודפסים למטה מילה במילה. התוסף לא רץ אצלנו, ולכן שתי קריאות הכלים שביצענו חזרו עם שגיאות התחברות אמיתיות ולא עם פתקים כלשהם שלנו, והראשונה מבין השגיאות האלה מודפסת כאן. כל מה שעדיין דורש את המפתח שלכם מסומן ככזה בעמוד הזה. [1][3][6][7]

  • כלים

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

  • אישורי גישה

    נדרש מפתח API של תוסף Obsidian [7]

  • ערוץ תקשורת

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

  • מתחזק

    MarkusPfundstein [1][3]

  • הורדות

    9.7 אלף בשבוע האחרון ב-PyPI [2]

  • רישיון

    MIT [4]

אימות

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

השיטה

הרצנו את השרת עם uvx על גבי stdio, לפי הנתיב המלא ש-which uvx מחזיר, עם מפתח API מדומה ועם ה-SDK של MCP ל-Python מקובע מתחת לגרסה 2. לחיצת היד הושלמה, tools/list החזיר את 12 הכלים המודפסים למטה מילה במילה, ואז ביצענו שתי קריאות כלים אמיתיות. קריאות מאומתות עדיין ממתינות לאישור גישה שאין לנו: מפתח ה-API שמנפיק תוסף הקהילה Local REST API של Obsidian, שגם חייב להיות מותקן ורץ בתוך Obsidian. שתי הקריאות ענו בסירוב התחברות, והראשונה מביניהן היא תוצאת הדוגמה המוצגת כאן, שנלכדה ישירות מהחיבור. שתי הערות על התוצרים למעלה: השרת הזה לא מדפיס באנר משל עצמו, ולכן שתי שורות הבאנר הן יומן הבקשות של ה-SDK שהוא כתב בזמן שענה לנו, והגרסה 1.29.0 שהוא מדווח עליה היא גרסת ה-SDK ולא גרסת החבילה 0.2.2, כי השרת לא מעביר ל-SDK מספר גרסה משל עצמו. שום דבר בעמוד הזה לא טוען שקריאה מאומתת הצליחה.

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

INFO:mcp.server.lowlevel.server:Processing request of type ListToolsRequest
INFO:mcp.server.lowlevel.server:Processing request of type CallToolRequest

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

tools/call obsidian_list_files_in_vault {}
Caught Exception. Error: Request failed: HTTPSConnectionPool(host='127.0.0.1', port=27124): Max retries exceeded with url: /vault/ (Caused by NewConnectionError("HTTPSConnection(host='127.0.0.1', port=27124): Failed to establish a new connection: [Errno 61] Connection refused"))

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

כלים

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

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

כלימה הוא עושה
obsidian_list_files_in_dirdirpath*

Lists all files and directories that exist in a specific Obsidian directory.

obsidian_list_files_in_vault

Lists all files and directories in the root directory of your Obsidian vault.

obsidian_get_file_contentsfilepath*

Return the content of a single file in your vault.

obsidian_simple_searchquery*context_length

Simple search for documents matching a specified text query across all files in the vault. Use this tool when you want to do a simple text search

obsidian_patch_contentfilepath*operation*target_type*target*content*

Insert content into an existing note relative to a heading, block reference, or frontmatter field.

obsidian_append_contentfilepath*content*

Append content to a new or existing file in the vault.

obsidian_delete_filefilepath*confirm*

Delete a file or directory from the vault.

obsidian_complex_searchquery*

Complex search for documents using a JsonLogic query. Supports standard JsonLogic operators plus 'glob' and 'regexp' for pattern matching. Results must be non-falsy. Use this tool when you want to do a complex search, e.g. for all documents with certain tags etc.

obsidian_batch_get_file_contentsfilepaths*

Return the contents of multiple files in your vault, concatenated with headers.

obsidian_get_periodic_noteperiod*

Get current periodic note for the specified period.

obsidian_get_recent_periodic_notesperiod*limitinclude_content

Get most recent periodic notes for the specified period type.

obsidian_get_recent_changeslimitdays

Get recently modified files in the vault.

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

התקנה

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

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

Claude Desktop

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

{
  "mcpServers": {
    "mcp-obsidian": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp<2",
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "your-plugin-api-key",
        "OBSIDIAN_HOST": "127.0.0.1"
      }
    }
  }
}

הדביקו את מפתח ה-API מתוך Obsidian, Settings, Local REST API. אם Claude Desktop לא מוצא את uvx, הריצו פעם אחת which uvx בטרמינל והשתמשו בנתיב המלא כפקודה. אחר כך סגרו ופתחו מחדש את Claude Desktop. [5][7]

Claude Code

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

claude mcp add obsidian -e OBSIDIAN_API_KEY=your-plugin-api-key -e OBSIDIAN_HOST=127.0.0.1 -- uvx --with 'mcp<2' mcp-obsidian

שם השרת בא ראשון, לפני דגלי ה-‎-e: כל ‎-e ממשיך לאסוף ארגומנטים עד הדגל הבא, ולכן שם שנכתב אחריהם נקרא כמשתנה נוסף והפקודה נכשלת. כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ. השאירו את המרכאות סביב mcp<2: בלעדיהן ה-shell קורא את סימן הקטן-מ כהפניית קלט. [11]

Cursor

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

{
  "mcpServers": {
    "mcp-obsidian": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp<2",
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "your-plugin-api-key",
        "OBSIDIAN_HOST": "127.0.0.1"
      }
    }
  }
}

Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. אם הוא לא מוצא את uvx, הריצו פעם אחת which uvx בטרמינל והשתמשו בנתיב המלא כפקודה. [12]

Routines

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

Name                    Obsidian
Command                 uvx
Arguments               --with mcp<2 mcp-obsidian
Environment Variables   OBSIDIAN_API_KEY       your-plugin-api-key

השדה Environment Variables הוא זוג תיבות ולא שורה אחת: OBSIDIAN_API_KEY נכנס לתיבת השם, והמפתח שלכם לתיבת הערך שלצדה. הערך בשדה ה-Arguments מתפצל לפי רווחים, ובאף אחד משלושת הארגומנטים כאן אין רווח. אם Routines לא מוצאת את uvx, הריצו פעם אחת which uvx בטרמינל והדביקו את הנתיב המלא בשדה Command, כי אפליקציה שנפתחת מ-Finder לא יורשת את ה-PATH שהטרמינל שלכם משתמש בו. לחצו קודם על Test Connection: שרת תקין עונה עם מספר הכלים שלו, שנים עשר עבור השרת הזה, עוד לפני ש-Obsidian רצה. [13]

בלי טרמינל

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

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

  1. 01

    התקינו את Routines

    הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו.

  2. 02

    הפעילו את תוסף Obsidian והעתיקו את המפתח שלו

    בתוך Obsidian: Settings, אחר כך Community plugins, אחר כך Browse, והתקינו את Local REST API מאת coddingtonbear. הפעילו אותו, פתחו את Settings, Local REST API והעתיקו את מפתח ה-API שמוצג שם. השאירו את Obsidian פתוחה: השרת מדבר עם התוסף הזה, ולכן Obsidian סגורה פירושה שאין כספת.

  3. 03

    פתחו את הגדרות ה-MCP

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

  4. 04

    בחרו Command (stdio) ומלאו את הטופס

    העבירו את הטופס ל-Command (stdio): השרת הזה הוא פקודה, לא כתובת אינטרנט. Name: Obsidian. Command: uvx. Arguments: ‎--with mcp<2 mcp-obsidian. בשדה Environment Variables הוסיפו את OBSIDIAN_API_KEY עם המפתח שהעתקתם מהתוסף.

  5. 05

    בדקו, ואז הוסיפו

    לחצו Test Connection: Routines מפעילה את השרת ומדווחת כמה כלים היא מצאה, שנים עשר עבור השרת הזה. המספר הזה מוכיח שהשרת רץ; הוא לא מוכיח שהמפתח שלכם נכון, וזה מתברר בשאלה האמיתית הראשונה. אחר כך לחצו Add Server.

  6. 06

    השתמשו בו

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

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

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

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

תקציר כספת של יום שישי

פרומפט

Every Friday at 16:00, list the notes in my Obsidian vault changed in the last seven days, write one line on what each change was about, and append the list to a note called Weekly Digest.md.

רשימת גרירה לבוקר

פרומפט

Every weekday at 8:00, read my Obsidian daily note for yesterday, find anything still unfinished, and append it to today's daily note under a heading called Carried over.

סיכום קריאה חודשי

פרומפט

On the first Monday of each month at 10:00, search my Obsidian vault for notes mentioning books I finished, summarise them in a short paragraph each, and append the summary to Reading Log.md.

פתרון תקלות

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

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

השרת קורס בהפעלה אם משאירים את ה-SDK בלי קיבוע

מה רואים

    @app.list_tools()
     ^^^^^^^^^^^^^^
AttributeError: 'Server' object has no attribute 'list_tools'

הפתרון

זה מה שקורה היום עם uvx mcp-obsidian סתם, וזו הסיבה שכל הגדרה בעמוד הזה נושאת את הקיבוע. החבילה שפורסמה מבקשת mcp בגרסה 1.1.0 ומעלה, וגרסה 2.0.0 של ה-SDK של MCP ל-Python, שיצאה ב-2026-07-28, הסירה את הדקורטור שהשרת הזה משתמש בו. הוספת ‎--with mcp<2 לפני שם החבילה מחזיקה את ה-SDK בגרסה 1.x, ואז השרת עולה ורושם את כל שנים עשר הכלים, וזו הריצה שממנה בנוי העמוד הזה.

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

מה רואים

    raise ValueError(f"OBSIDIAN_API_KEY environment variable required. Working directory: {os.getcwd()}")
ValueError: OBSIDIAN_API_KEY environment variable required. Working directory: /private/tmp

הפתרון

מפתח ה-API נקרא כבר בשלב הייבוא, ולכן בלי מפתח התהליך מת עוד לפני שהספיק לדבר MCP בכלל. הוסיפו את OBSIDIAN_API_KEY לבלוק ה-env בהגדרת הלקוח שלכם, או לשדה Environment Variables ב-Routines, עם המפתח מתוך Obsidian, Settings, Local REST API.

כל כלי עונה עם שגיאת התחברות

מה רואים

Caught Exception. Error: Request failed: HTTPSConnectionPool(host='127.0.0.1', port=27124): Max retries exceeded with url: /vault/ (Caused by NewConnectionError("HTTPSConnection(host='127.0.0.1', port=27124): Failed to establish a new connection: [Errno 61] Connection refused"))

הפתרון

אף אחד לא מאזין על הפורט של התוסף. זו השגיאה שלכדנו, כי תוסף Local REST API לא היה מותקן על מחשב הבדיקה שלנו. בדקו שלושה דברים לפי הסדר: ש-Obsidian פתוחה, שתוסף Local REST API מופעל, ושהפורט בהגדרות שלו זהה לפורט שבהגדרה שלכם, 27124 כברירת מחדל. השרת עצמו תקין: הוא עלה ורשם את כליו עם אותו מפתח מדומה.

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

הפתרון

הפקודה uvx שייכת ל-uv, כלי להרצת חבילות Python. אם uv לא מותקן על ה-Mac, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו את uv מ-docs.astral.sh/uv, ואם הלקוח עדיין לא מוצא אותו, הריצו which uvx והדביקו את הנתיב המלא כפקודה.

שאלות נפוצות

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

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

זו תוכנית Python קטנה שמאפשרת לעוזר AI כמו Claude לקרוא, לחפש, להוסיף ולמחוק פתקים בכספת ה-Obsidian שלכם. היא לא פותחת את תיקיית הכספת בעצמה: היא שולחת בקשות HTTP לתוסף הקהילה Local REST API שרץ בתוך Obsidian, ולכן Obsidian צריכה להיות פתוחה והתוסף מופעל. היא רצה כתהליך מקומי על ה-Mac שלכם ומדברת עם אפליקציית ה-AI על גבי stdio. [5][6][7]

מה בדיוק אימתתם, ומה עדיין דורש את המפתח שלי?

אימתנו שהשרת עולה, משלים את לחיצת היד של MCP וסופר את כליו: הטבלה למעלה היא פלט ה-tools/list החי, מילה במילה. השתמשנו במפתח API מדומה והתוסף לא היה מותקן אצלנו, ולכן שתי קריאות הכלים האמיתיות שביצענו החזירו שגיאת התחברות, והראשונה מביניהן מודפסת למעלה כתוצאת הדוגמה. קריאה וכתיבה של הפתקים האמיתיים שלכם דורשות מפתח תוסף משלכם ו-Obsidian פתוחה, ואנחנו לא טוענים דבר מעבר למה שתיאורי הכלים אומרים.

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

השרת הרץ חושף 12 כלים: עיון (obsidian_list_files_in_vault, obsidian_list_files_in_dir), קריאה (obsidian_get_file_contents, obsidian_batch_get_file_contents), חיפוש (obsidian_simple_search, obsidian_complex_search), כתיבה (obsidian_append_content, obsidian_patch_content, obsidian_delete_file), פתקים מחזוריים (obsidian_get_periodic_note, obsidian_get_recent_periodic_notes) ופעילות אחרונה (obsidian_get_recent_changes). הטבלה למעלה היא הפלט החי, מילה במילה.

האם אני חייב את תוסף Local REST API של Obsidian?

כן, עבור החבילה הזו. זהו תוסף קהילה חינמי מאת coddingtonbear שמתקינים מתוך Obsidian, והוא זה שמנפיק את מפתח ה-API שהשרת צריך. כדאי לדעת לפני שמתקינים עוד משהו: התוסף כולל היום שרת MCP משל עצמו בכתובת https://127.0.0.1:27124/mcp/‎, כך שלקוח שיודע לדבר MCP על גבי HTTP, למשל Claude Code, יכול להתחבר ישירות לתוסף ולוותר על החבילה הזו. [7]

למה ההגדרות מקבעות את ה-SDK של MCP מתחת לגרסה 2?

כי בלי הקיבוע החבילה פשוט לא עולה. הגרסה האחרונה ב-PyPI היא 0.2.2 מ-2025-04-01, והיא מקבלת כל SDK של MCP ל-Python מגרסה 1.1.0 ומעלה. גרסה 2.0.0 של אותו SDK יצאה ב-2026-07-28 והסירה את הדקורטור שהשרת הזה משתמש בו, ולכן uvx mcp-obsidian סתם מת היום עם AttributeError, שלכדנו והדפסנו בקטע פתרון התקלות. הוספת ‎--with mcp<2 מחזיקה את ה-SDK בגרסה 1.x והשרת רץ. [1][8]

יש גרסה שפשוט קוראת את תיקיית הכספת שלי?

יש כמה, והן לא דורשות תוסף ולא מפתח כי הן פותחות את קובצי ה-markdown ישירות: מעבירים להן את נתיב הכספת כארגומנט. אחת מהן היא obsidian-mcp ב-npm, עם כ-3.6 אלף הורדות בשבוע מול כ-9.7 אלף לחבילה הזו, אם כי npm ו-PyPI לא סופרות הורדות באותה שיטה. בנינו את העמוד הזה סביב זו שמבוססת על התוסף כי המספרים האלה מצביעים עליה כעל הנפוצה מבין השתיים, וכי שרת שעובר דרך Obsidian רואה את הכספת החיה, כולל פתקים שפתוחים כרגע בעורך. [9][10][2]

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

כל לקוח MCP שמסוגל להפעיל שרת stdio מקומי: Claude Desktop, Claude Code, Cursor ו-Routines כולם יכולים, וההגדרה המדויקת לכל אחד נמצאת למעלה. השרת עצמו זהה בכל לקוח; רק המקום שבו מדביקים את ההגדרה משתנה, וכל אחד מהם צריך את אותו מפתח API בבלוק המשתנים שלו. [11][12][13]

מקורות

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

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

  1. [1]

    PyPI JSON API: mcp-obsidianנקרא בתאריך 2026-08-03

    Latest version 0.2.2, published 2025-04-01; it requires mcp>=1.1.0 and Python 3.11 or newer.

  2. [2]

    PyPI download stats: mcp-obsidianנקרא בתאריך 2026-08-03

    9,728 downloads in the last week and 36,559 in the last month.

  3. [3]

    GitHub: MarkusPfundstein/mcp-obsidianנקרא בתאריך 2026-08-03

    4,248 stars and a push dated 2026-05-15 at access time, per the GitHub API.

  4. [4]

    mcp-obsidian LICENSE fileנקרא בתאריך 2026-08-03

    MIT License, Copyright (c) 2024 Markus Pfundstein.

  5. [5]

    mcp-obsidian READMEנקרא בתאריך 2026-08-03

    The uvx config shape, the plugin requirement, and the defaults: host 127.0.0.1, port 27124.

  6. [6]

    mcp-obsidian source: server.pyנקרא בתאריך 2026-08-03

    Runs the MCP Server inside stdio_server(): the server speaks stdio.

  7. [7]

    GitHub: coddingtonbear/obsidian-local-rest-apiנקרא בתאריך 2026-08-03

    2,736 stars, MIT, pushed 2026-08-03 at access time. Its README documents the API key location, the 27124 HTTPS port, and the plugin's own MCP endpoint.

  8. [8]

    PyPI JSON API: mcp, the Python SDKנקרא בתאריך 2026-08-03

    Version 2.0.0 published 2026-07-28; 1.29.0, the version our run resolved, was published the same day.

  9. [9]

    npm registry: obsidian-mcpנקרא בתאריך 2026-08-03

    The folder-reading alternative: version 1.0.6, MIT, and 3,555 downloads for the week ending 2026-08-01 per the npm downloads API.

  10. [10]

    GitHub: StevenStavrakis/obsidian-mcpנקרא בתאריך 2026-08-03

    Its README config passes vault paths straight to the command, so it needs no plugin and no key.

  11. [11]

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

    The claude mcp add syntax for local stdio servers, including the -e/--env flag for environment variables.

  12. [12]

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

    The mcp.json shape and file locations.

  13. [13]

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

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

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

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

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