תדריך מספרים של יום שני
Every Monday at 8:00, query the database for last week's signups, orders, and cancellations, compare each number to the week before, and write me a short note with the three numbers and whether each went up or down.
שרת MCP מאומת: PostgreSQL
התשובה הקצרה
אומת לאחרונה 2026-08-03
שרת ה-MCP ל-Postgres הוא שרת מסדי הנתונים של פרויקט ה-Model Context Protocol עצמו: הוא מחבר עוזר AI למסד נתונים PostgreSQL ונותן לו בדיוק כלי אחד, שאילתת SQL לקריאה בלבד. הוא גם מוכרז כמיושן. npm מגיש את אותה גרסה מאז דצמבר 2024 ומדפיס אזהרת ׳לא נתמך עוד׳ בהתקנה, והקוד עבר למאגר שהפרויקט העביר לארכיון, ובכל זאת החבילה הורדה בערך 124,000 פעמים בשבוע שעבר. אז הרצנו אותו. כיוונו אותו למסד נתונים זמני שזרענו על ה-Mac הזה, דיברנו איתו בפרוטוקול, קראנו שורות אמיתיות בחזרה, ואז ניסינו לכתוב וראינו אותו מסרב. הפלט הגולמי נמצא בעמוד הזה, כולל כל הודעת שגיאה, ולמטה מצוינת חלופה מתוחזקת אם אתם זקוקים לה. [1][2][3][4]
אימות
השיטה
הרצנו את השרת עם npx על גבי stdio, כשהוא מכוון למסד נתונים זמני של PostgreSQL 16 שזרענו על ה-Mac הזה לצורך הבדיקה, אף פעם לא לנתונים אמיתיים. השלמנו את לחיצת היד של MCP, קראנו ל-tools/list, ואז ביצענו קריאות query אמיתיות: קריאה מוצלחת אחת של שלוש שורות, וסדרה של כשלים מכוונים כדי ללכוד את נוסח השגיאות המדויק שהשרת מחזיר. טבלת הכלים למטה היא הלכידה הזו, מילה במילה. שני פרטים שאיננו מייפים: השרת ענה ללחיצת היד שלנו בגרסת 2025-06-18 עם גרסת הפרוטוקול הישנה יותר 2024-11-05, והוא לא הדפיס דבר משל עצמו ב-stderr, ולכן השורה שלמטה היא npm שמזהיר אותנו שהחבילה מיושנת, מה שהוא עושה בהתקנה הראשונה ולא בריצות מהמטמון.
הודעת הפתיחה של השרת
npm warn deprecated @modelcontextprotocol/server-postgres@0.6.2: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
קריאת כלי אמיתית אחת
tools/call query {"sql": "SELECT book, author, pages FROM reading_log ORDER BY id LIMIT 3"}[
{
"book": "The Mythical Man-Month",
"author": "Frederick Brooks",
"pages": 322
},שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.
כלים
השרת ענה ל-tools/list עם 1 כלים בתאריך 2026-08-03. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.
| כלי | מה הוא עושה |
|---|---|
| querysql | Run a read-only SQL query |
פרמטרים המסומנים ב-* הם חובה.
התקנה
העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.
פתחו את הקובץ ~/Library/Application Support/Claude/claude_desktop_config.json (בתוך Claude Desktop: Settings, אחר כך Developer, אחר כך Edit Config) והוסיפו:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://yourname@localhost:5432/yourdb"
]
}
}
}הארגומנט האחרון הוא מחרוזת החיבור שלכם, והוא הדבר היחיד שצריך לשנות. קראו אותה משמאל לימין: postgresql:// קבוע, yourname הוא המשתמש במסד הנתונים, localhost הוא המחשב שעליו רץ מסד הנתונים, 5432 הוא הפורט שבו PostgreSQL משתמש כברירת מחדל, ו-yourdb הוא שם מסד הנתונים. אם המשתמש שלכם דורש סיסמה, היא באה אחרי השם, בצורה postgresql://yourname:yourpassword@localhost:5432/yourdb. אחר כך סגרו ופתחו מחדש את Claude Desktop. [9]
פקודה אחת בטרמינל:
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres postgresql://yourname@localhost:5432/yourdb
כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ. החליפו את מחרוזת החיבור במשתמש, במארח, בפורט ובשם מסד הנתונים שלכם. שימו לב שהמחרוזת נשמרת בקובץ הגדרות כטקסט גלוי, ולכן אם היא כוללת סיסמה, התייחסו לקובץ הזה כמו לכל קובץ אחר שמחזיק סיסמה. [10]
הוסיפו ל-~/.cursor/mcp.json עבור כל הפרויקטים, או ל-.cursor/mcp.json בתוך פרויקט אחד:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://yourname@localhost:5432/yourdb"
]
}
}
}אותה מחרוזת חיבור כמו למעלה, אותם חמישה חלקים. Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. [11]
בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. העבירו את הטופס ל-Command (stdio) והזינו:
Name PostgreSQL Command npx Arguments -y @modelcontextprotocol/server-postgres postgresql://yourname@localhost:5432/yourdb
הערך בשדה ה-Arguments מתפצל לפי רווחים, ובמחרוזת חיבור רגילה אין רווחים בכלל. אם הסיסמה מכילה רווח או סימן פיסוק, קודדו אותה ב-URL encoding. לחצו על Test Connection: שרת תקין עונה עם מספר הכלים שלו, אחד בשרת הזה. קראו את המדריך שלמטה לפני שאתם סומכים על התוצאה, כי היא מוכיחה פחות ממה שנדמה. [12]
בלי טרמינל
אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם. Routines היא אפליקציית Mac שמריצה שרתי MCP בשבילכם: ממלאים שלושה שדות פעם אחת, והכלי של השרת זמין ל-AI שלכם בצ׳אט ובשגרות מתוזמנות.
01
הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו.
02
לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server.
03
העבירו את הטופס ל-Command (stdio): השרת הזה הוא פקודה שה-Mac שלכם מריץ, לא כתובת אינטרנט שהוא פונה אליה.
04
Name: PostgreSQL. Command: npx. Arguments: -y @modelcontextprotocol/server-postgres, אחריו רווח ומחרוזת החיבור שלכם. למחרוזת יש חמישה חלקים: postgresql://, המשתמש במסד הנתונים, המארח, הפורט ושם מסד הנתונים, למשל postgresql://yourname@localhost:5432/yourdb. אם לא אתם הקמתם את מסד הנתונים, מי שכן הקים יכול לתת לכם את כל החמישה, וכדאי לבקש ממנו באותה הזדמנות משתמש עם הרשאות קריאה בלבד.
05
השאירו את Environment Variables ריק, השרת הזה קורא הכל מהארגומנטים. לחצו Test Connection: Routines מפעילה את השרת ומדווחת כמה כלים היא מצאה, אחד עבור השרת הזה. וכאן החלק שאף אחד לא כותב: השרת לא ניגש למסד הנתונים עד השאילתה האמיתית הראשונה, ולכן מחרוזת חיבור עם שם מסד נתונים שגוי עוברת את הבדיקה הזו בהצלחה. בדיקה שעוברת מוכיחה שהשרת עלה, לא שהוא מצליח להגיע לנתונים שלכם. לחצו Add Server, ואז שאלו אותו משהו בצ׳אט כדי לוודא את החיבור.
06
הכלי עובד בצ׳אט מיד. כדי לתת לשגרה מתוזמנת להשתמש בו, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.
רעיונות לשגרות
אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.
Every Monday at 8:00, query the database for last week's signups, orders, and cancellations, compare each number to the week before, and write me a short note with the three numbers and whether each went up or down.
Every weekday at 7:00, run my usual read-only checks against the database: rows added yesterday, records missing an email address, and the oldest item still unprocessed. Only message me if one of them looks wrong.
On the first of every month at 9:00, pull last month's totals by category from the database and save them as a markdown table in month-end.md, with the previous month in a second column for comparison.
פתרון תקלות
שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.
מה רואים
cannot execute INSERT in a read-only transaction
הפתרון
עובד כמתוכנן, וזו כל מהות השרת הזה. לפני הרצת ה-SQL שלכם הוא פותח טרנזקציה עם BEGIN TRANSACTION READ ONLY ומבטל אותה אחר כך, כך ש-PostgreSQL עצמו מסרב לכל דבר שכותב. ניסינו INSERT וקיבלנו את השורה שלמעלה; UPDATE מחזיר את אותו משפט עם הפועל המוחלף, cannot execute UPDATE in a read-only transaction. אין דגל או ארגומנט שמכבה את זה. אם אתם צריכים עוזר שיכול לכתוב, זה השרת הלא נכון ומתאימה לכם החלופה המתוחזקת המצוינת בשאלות שלמטה.
מה רואים
database "does_not_exist_db" does not exist
הפתרון
זו המלכודת שנתקלנו בה, ולכן כדאי לפרט. השרת לא נוגע במסד הנתונים בהפעלה: הוא עולה, מדווח על הכלי היחיד שלו, ועובר את בדיקת החיבור של הלקוח שלכם גם עם מחרוזת חיבור שמצביעה על מסד נתונים שאינו קיים. הטעות מתגלה רק בשאילתה האמיתית הראשונה, בנוסח שלמעלה. בדקו את שם מסד הנתונים בסוף מחרוזת החיבור, אחר כך את המשתמש, המארח והפורט, וודאו שאותה מחרוזת עובדת עם לקוח PostgreSQL רגיל. תמיד עקבו אחרי בדיקת חיבור מוצלחת בשאלה אמיתית אחת.
מה רואים
relation "books" does not exist
הפתרון
PostgreSQL מודיע לכם שהטבלה אינה גלויה לחיבור הזה. שלוש סיבות נפוצות: השם שונה ממה שאתם זוכרים, הטבלה יושבת בסכימה שאינה בנתיב החיפוש ולכן יש לכתוב אותה כ-schemaname.books, או שהמשתמש במחרוזת החיבור שלכם אינו רואה אותה. בקשו מהעוזר להציג את רשימת הטבלאות שהוא באמת רואה לפני ששואלים אותו על אחת מהן בשמה.
מה רואים
syntax error at end of input
הפתרון
ה-SQL הגיע ל-PostgreSQL חתוך באמצע. גרמנו לזה בכוונה כששלחנו פקודה שנגמרת ב-ORDER בלי המשך. כשהעוזר כותב את ה-SQL בעצמו, זה בדרך כלל אומר שהוא הפיק פקודה קטועה, אז בקשו ממנו להראות לכם את השאילתה שהריץ ונסו שוב. נוסח השגיאה מציין את המקום שבו PostgreSQL נתקע, וזו הדרך המהירה ביותר למצוא את הפער.
מה רואים
Please provide a database URL as a command-line argument
הפתרון
הפעלתם אותו בלי מחרוזת חיבור. בניגוד לחלק משרתי ה-MCP, השרת הזה מדפיס את השורה הזו בלבד ויוצא, כך שהלקוח נשאר לחכות ללחיצת יד שלא תגיע, ובסוף פג לו הזמן במקום להציג לכם הודעה מועילה. הוסיפו את מחרוזת החיבור כארגומנט האחרון, אחרי שם החבילה, והפעילו מחדש את הלקוח.
הפתרון
הפקודה npx שייכת ל-Node.js. אם Node לא מותקן על ה-Mac, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו Node מ-nodejs.org, הפעילו מחדש את לקוח ה-MCP ונסו שוב.
שאלות נפוצות
זהו שרת ה-PostgreSQL של פרויקט ה-Model Context Protocol עצמו. אחרי החיבור, עוזר AI כמו Claude יכול להריץ SQL מול מסד נתונים שתכוונו אותו אליו ולקרוא את התשובות בחזרה, וזה מה שמאפשר לכם לשאול שאלות על הנתונים שלכם בשפה רגילה במקום לכתוב שאילתות. הוא רץ כתהליך מקומי על ה-Mac שלכם ומדבר עם אפליקציית ה-AI על גבי stdio. [4][3]
לא, וכדאי שתדעו את זה לפני ההתקנה. npm מסמן את החבילה כמיושנת עם ההערה ׳Package no longer supported׳, הגרסה החדשה ביותר היא 0.6.2 מדצמבר 2024, והקוד עבר למאגר שהפרויקט העביר לארכיון ותייג כ׳שרתי MCP לדוגמה שאינם מתוחזקים עוד׳. ובכל זאת הוא הורד בערך 124,000 פעמים בשבוע שעבר, והוא רץ אצלנו כשורה ב-2026-08-03. זה המתח שכדאי לומר בקול: בשימוש נרחב, ובבירור לא מתוחזק. הגיל שלו ניכר בפרטים קטנים, למשל בכך שענה ללחיצת היד שלנו בגרסת 2025-06-18 עם גרסת הפרוטוקול הישנה יותר 2024-11-05. עובד היום אינו הבטחה לשנה הבאה, ולכן אם זה נכנס למשהו שאתם תלויים בו, קראו קודם על החלופה שלמטה. [1][2][3]
בדיוק אחד, בשם query, שהשרת מתאר כ-׳Run a read-only SQL query׳. הוא מקבל פרמטר יחיד, sql. פרט אחד שגילינו ישירות מהחיבור ולא ציפינו לו: הסכימה של הכלי מגדירה את הפרמטר הזה אך לעולם אינה מציינת אותו כנדרש, כך שלקוח רשאי לקרוא לכלי בלעדיו, וכשעשינו זאת השרת ענה ׳Client was passed a null or undefined query׳. בפועל העוזר שלכם תמיד שולח SQL, ולכן זו סקרנות ולא בעיה. השרת גם מכריז על resources של MCP, וכך הוא מציע את הסכימה של כל טבלה לעיון; בריצה הזו ספרנו כלים, לא resources. [4]
לא, ובדקנו את הגדר במקום לסמוך עליה. השרת עוטף כל שאילתה ב-BEGIN TRANSACTION READ ONLY ומבטל אותה, כך ש-PostgreSQL עצמו דוחה כתיבות: ניסיונות ה-INSERT וה-UPDATE שלנו נדחו שניהם, עם ההודעות המדויקות המודפסות בקטע פתרון התקלות למעלה. עם זאת, קריאה בלבד אינה שם נרדף לבלתי מזיק. הוא יכול לקרוא כל טבלה שהמשתמש במחרוזת החיבור שלכם רשאי לקרוא ולהעביר את התוכן למודל AI, אז תנו לו משתמש עם גישה למה שאתם באמת רוצים שיראה, ולא יותר. [4]
כן. postgres-mcp מבית CrystalDBA, שמתפרסמת ב-PyPI, נמצאת בגרסה 0.3.0, מגדירה את עצמה ככלי לכוונון וניתוח של PostgreSQL, מפורסמת ברישיון MIT, והמאגר שלה עודכן לאחרונה בינואר 2026 במקום לעבור לארכיון, עם כ-3,100 כוכבים וכ-107,000 הורדות בשבוע האחרון. היא מציעה גישת קריאה וכתיבה שניתנת להגדרה, מה שהשרת הרשמי במכוון אינו מציע. לא הרצנו אותה, ולכן היא לא מקבלת כאן תג אימות: העמוד הזה מאמת את השרת הרשמי בלבד ומדווח רק את מה שהמאגרים אומרים על החלופה. [6][7][8]
לא. ב-Routines ממלאים שלושה שדות בהגדרות ולוחצים Test Connection; המדריך למעלה מראה כל לחיצה, כולל האזהרה החשובה: בדיקת חיבור שעוברת אינה מוכיחה שמחרוזת החיבור שלכם מגיעה למסד הנתונים הנכון. Claude Desktop דורש עריכה חד-פעמית של קובץ JSON קטן. רק Claude Code הוא כלי טרמינל מטבעו. [12][9]
כל לקוח MCP שמסוגל להפעיל שרת stdio מקומי: Claude Desktop, Claude Code, Cursor ו-Routines כולם יכולים, וההגדרה המדויקת לכל אחד נמצאת למעלה. השרת עצמו זהה בכל לקוח; רק המקום שבו מדביקים את ההגדרה משתנה. גם מחרוזת החיבור זהה בכל ארבעתם, מה שמקל לבדוק בלקוח אחד ולהעתיק הלאה. [9][10][11][12]
מקורות
כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.
[1]
Latest version 0.6.2, published 2024-12-04, carrying the deprecation notice "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." License MIT.
[2]
[3]
Archived repository described as "Reference MCP servers that are no longer maintained", last pushed 2025-05-28, per the GitHub API. It holds src/postgres.
[4]
Runs BEGIN TRANSACTION READ ONLY before each query and ROLLBACK after, with no flag to disable it: the only command-line argument it reads is the database URL, and it exits when that is missing. Instantiates StdioServerTransport, and serves each table's schema as an MCP resource.
[5]
MIT, per the GitHub API license endpoint for the repository.
[6]
Version 0.3.0, summary "PostgreSQL Tuning and Analysis Tool".
[7]
[8]
3,146 stars, MIT licensed, not archived, last pushed 2026-01-22, per the GitHub API. Described as providing "configurable read/write access and performance analysis".
[9]
The official Claude Desktop quickstart and the claude_desktop_config.json shape.
[10]
[11]
[12]
How Routines runs one-click OAuth connectors and any MCP server.
העמוד הזה מתאר את PostgreSQL כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.
מאחורי המדריך הזה
Routines, האפליקציה שמאחורי המדריך הזה, מריצה שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. הפתקים שלכם נשארים קובצי markdown על ה-Mac שלכם, אין חשבון ענן לשלם, והיא עובדת גם בלי אינטרנט. להורדת Routines