בדיקת מחירי מתחרים של יום שני
Every Monday at 8:00, open each pricing page listed in competitors.md, read the plan names and prices off the page, and write a table of anything that changed since last week to pricing-watch.md.
שרת MCP מאומת: Playwright
התשובה הקצרה
אומת לאחרונה 2026-08-03
שרת ה-MCP של Playwright מאפשר לעוזר AI לנהוג בדפדפן אמיתי: לפתוח עמוד, לקרוא את המבנה שלו, ללחוץ, להקליד, למלא טפסים ולדווח מה מצא. זהו שרת ה-MCP הרשמי של Microsoft מעל ספריית Playwright, הוא רץ על ה-Mac שלכם על גבי stdio, ואינו דורש חשבון, מפתח API או הרשמה כלשהי. לא הסתפקנו במה שכתוב ב-README: הרצנו את השרת, דיברנו איתו בפרוטוקול, ספרנו את כל 24 הכלים שהוא חושף, ביצענו קריאת כלי אמיתית אחת ושמרנו את הפלט הגולמי, כולל השגיאות המדויקות שהוא מחזיר כשמשהו משתבש. הכל נמצא בעמוד הזה. [1][3][6]
אימות
השיטה
הרצנו את השרת עם npx על גבי stdio עם הדגלים --headless ו---isolated, כתבנו לקלט התקני שלו מסגרת initialize גולמית בפרוטוקול JSON-RPC וקראנו את התשובה ישירות מהחיבור, ואז קראנו ל-tools/list והרצנו קריאת כלי אמיתית אחת. השרת הזה לא מדפיס דבר בהפעלה, ולכן מה שמופיע למטה תחת באנר ההפעלה הוא תשובת ה-initialize הגולמית ולא שורת יומן. טבלת הכלים היא לכידת ה-tools/list, מילה במילה.
הודעת הפתיחה של השרת
{"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"Playwright","version":"1.62.0-alpha-1783623505000"}},"jsonrpc":"2.0","id":1}קריאת כלי אמיתית אחת
tools/call browser_navigate {"url": "about:blank"}### Ran Playwright code
```js
await page.goto('about:blank');שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.
כלים
השרת ענה ל-tools/list עם 24 כלים בתאריך 2026-08-03. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.
| כלי | מה הוא עושה |
|---|---|
| browser_navigateurl* | Navigate to a URL |
| browser_navigate_back | Go back to the previous page in the history |
| browser_snapshottargetfilenamedepthboxes | Capture accessibility snapshot of the current page, this is better than screenshot |
| browser_findtextregex | Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of surrounding context (like search snippets), each shown under its path from the root of the tree, which is cheaper than capturing the whole snapshot when you only need to locate an element and its ref. |
| browser_clickelementtarget*doubleClickbuttonmodifiers | Perform click on a web page |
| browser_typeelementtarget*text*submitslowly | Type text into editable element |
| browser_fill_formfields* | Fill multiple form fields |
| browser_select_optionelementtarget*values* | Select an option in a dropdown |
| browser_hoverelementtarget* | Hover over element on page |
| browser_press_keykey* | Press a key on the keyboard |
| browser_dragstartElementstartTarget*endElementendTarget* | Perform drag and drop between two elements |
| browser_dropelementtarget*pathsdata | Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided. |
| browser_file_uploadpaths | Upload one or multiple files |
| browser_handle_dialogaccept*promptText | Handle a dialog |
| browser_wait_fortimetexttextGone | Wait for text to appear or disappear or a specified time to pass |
| browser_take_screenshotelementtargettype*filenamefullPagescale* | Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions. |
| browser_console_messageslevel*allfilename | Returns all console messages |
| browser_network_requestsstatic*filterfilename | Returns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details. |
| browser_network_requestindex*partfilename | Returns full details (headers and body) of a single network request, or a single part if `part` is set. Use the number from browser_network_requests. |
| browser_tabsaction*indexurl | List, create, close, or select a browser tab. |
| browser_resizewidth*height* | Resize the browser window |
| browser_evaluateelementtargetfunction*filename | Evaluate JavaScript expression on page or element |
| browser_run_code_unsafecodefilename | Run a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent. |
| browser_close | Close the page |
פרמטרים המסומנים ב-* הם חובה.
התקנה
העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.
פתחו את הקובץ ~/Library/Application Support/Claude/claude_desktop_config.json (בתוך Claude Desktop: Settings, אחר כך Developer, אחר כך Edit Config) והוסיפו:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@latest",
"--headless",
"--isolated"
]
}
}
}אלה שני הדגלים שאיתם אימתנו. הורידו את --headless וייפתח חלון דפדפן על המסך שאפשר לצפות בו. הורידו את --isolated והדפדפן ישמור פרופיל על הדיסק בין הפעלות, כלומר ההתחברויות לאתרים נשמרות ושני לקוחות לא יכולים לחלוק אותו. סגרו ופתחו מחדש את Claude Desktop אחרי השמירה. [7]
פקודה אחת בטרמינל:
claude mcp add playwright -- npx -y @playwright/mcp@latest --headless --isolated
כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ, וזה מה שמונע משני הדגלים להיקרא כדגלים של פקודת claude עצמה. [8]
הוסיפו ל-~/.cursor/mcp.json עבור כל הפרויקטים, או ל-.cursor/mcp.json בתוך פרויקט אחד:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@latest",
"--headless",
"--isolated"
]
}
}
}Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. אם אתם מריצים את Cursor ולקוח MCP נוסף במקביל, השאירו את --isolated בשניהם, אחרת השני שיעלה ייתקל בשגיאת הפרופיל התפוס שלמטה. [9]
בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. העבירו את הטופס ל-Command (stdio) והזינו:
Name Playwright Command npx Arguments -y @playwright/mcp@latest --headless --isolated
הערך בשדה ה-Arguments מתפצל לפי רווחים, לכן הדביקו את השורה בדיוק כפי שהיא: כל חלק בה הוא מילה אחת בלי רווחים. לחצו קודם על Test Connection: שרת תקין עונה עם מספר הכלים שלו, עשרים וארבעה עבור השרת הזה. [10]
בלי טרמינל
אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם. Routines היא אפליקציית Mac שמריצה שרתי MCP בשבילכם: ממלאים שלושה שדות פעם אחת, והכלים של השרת זמינים ל-AI שלכם בצ׳אט ובשגרות מתוזמנות.
01
הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו.
02
לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server.
03
הטופס נפתח במצב URL (SSE/HTTP). העבירו אותו ל-Command (stdio): השרת הזה הוא פקודה שה-Mac שלכם מריץ, לא כתובת אינטרנט שהוא פונה אליה.
04
Name: Playwright. Command: npx. Arguments: -y @playwright/mcp@latest --headless --isolated. השאירו את Environment Variables ריק, השרת הזה לא צריך משתנים.
05
לחצו Test Connection: Routines מפעילה את השרת בלי לשמור אותו ומדווחת כמה כלים היא מצאה, עשרים וארבעה עבור השרת הזה. אחר כך לחצו Add Server. ההפעלה הראשונה מורידה את החבילה, אז תנו לה רגע.
06
הכלים עובדים בצ׳אט מיד. כדי לתת לשגרה מתוזמנת להשתמש בהם, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.
רעיונות לשגרות
אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.
Every Monday at 8:00, open each pricing page listed in competitors.md, read the plan names and prices off the page, and write a table of anything that changed since last week to pricing-watch.md.
Every weekday at 9:15, open the public status page of each service listed in services.md, note anything that is not fully operational, and save a short summary to status-check.md with the time you checked.
Every Friday at 17:00, open the changelog page of each tool listed in tools-i-use.md, collect the entries dated this week, and write them up as a one-paragraph digest in changelog-digest.md.
פתרון תקלות
שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.
מה רואים
### Error Error: Browser "firefox" is not installed. Run `npx @playwright/mcp install-browser firefox` to install
הפתרון
זה מה שרואה Mac בלי מטמון דפדפנים של Playwright בקריאת הכלי הראשונה: השרת עולה כרגיל ומציג את כל 24 הכלים, ואז נכשל ברגע שהוא צריך דפדפן. גרמנו לזה בכוונה כשביקשנו firefox, שאין לו בנייה על ה-Mac הזה; ההודעה נוקבת בשם הדפדפן החסר בכל מקרה. הריצו את פקודת ההתקנה שהיא מדפיסה ונסו את הקריאה שוב. כשלא מתערבים, השרת משתמש ב-Google Chrome שכבר מותקן בתיקיית Applications, ולכן בריצה שלנו לא היה צריך להוריד דבר.
מה רואים
### Error Error: Access to "file:" protocol is blocked. Attempted URL: "file:///etc/hosts"
הפתרון
עובד כמתוכנן: ניווט ל-file:// חסום, והגישה לקבצים תחומה לשורש סביבת העבודה אלא אם מפעילים את השרת עם --allow-unrestricted-file-access. גרמנו לשגיאה כשביקשנו את /etc/hosts. אם אתם רוצים שה-AI יקרא קבצים מקומיים, השתמשו לשם כך בשרת קבצים, ולא בפתיחת הגדר של דפדפן שמבקר גם באינטרנט הפתוח.
מה רואים
### Error Error: Browser is already in use for /private/tmp/mcp-shared-profile, use --isolated to run multiple instances of the same browser
הפתרון
פרופיל ששמור על הדיסק יכול לשמש דפדפן אחד בלבד בכל רגע, ולכן לקוח ה-MCP השני שעולה מפסיד. שחזרנו את זה כשכיוונו שני לקוחות לאותה תיקיית פרופיל. הוסיפו --isolated לכל לקוח מעבר לראשון, כפי שההודעה אומרת, או תנו לכל אחד --user-data-dir משלו. זו ההפתעה הנפוצה ביותר כש-Cursor, Claude Desktop ו-Routines פתוחים בו זמנית.
מה רואים
### Error Error: Ref e999 not found in the current page snapshot. Try capturing new snapshot.
הפתרון
כל דבר שאפשר ללחוץ עליו מקבל מזהה קצר כמו e12 כשנלכד צילום הנגישות של העמוד, והמזהים האלה מתיישנים ברגע שהעמוד משתנה. השרת אומר לעוזר בדיוק מה לעשות: ללכוד צילום חדש וללחוץ על המזהה החדש. אם זה חוזר באתר מסוים, כנראה שהעמוד נבנה מחדש תוך כדי, אז בקשו מהעוזר להמתין לטקסט שהוא מצפה לו לפני הלחיצה.
הפתרון
הפקודה npx שייכת ל-Node.js, והחבילה הזו דורשת Node 18 ומעלה. אם Node לא מותקן על ה-Mac, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו Node מ-nodejs.org, הפעילו מחדש את לקוח ה-MCP ונסו שוב.
שאלות נפוצות
זהו שרת ה-MCP הרשמי של Microsoft לאוטומציה של דפדפן, בנוי מעל ספריית הבדיקות Playwright. אחרי החיבור, עוזר AI כמו Claude יכול לפתוח עמודי אינטרנט, לקרוא אותם כעץ נגישות מובנה ולא כפיקסלים, ואז ללחוץ, להקליד, למלא טפסים ולדווח בחזרה. הוא רץ כתהליך מקומי על ה-Mac שלכם ומדבר עם אפליקציית ה-AI על גבי stdio. הגרסה שאימתנו, 0.0.78, היתה העדכנית ביותר גם ב-npm וגם ב-GitHub ביום הריצה, והמספר הארוך ברצועת הנתונים למעלה הוא בניית Playwright שהשרת הרץ מדווח על עצמו. [6][3][1][4]
השרת הרץ חושף 24 כלים: תנועה בין עמודים (browser_navigate, browser_navigate_back, browser_tabs), קריאת עמוד (browser_snapshot, browser_find, browser_take_screenshot, browser_console_messages, browser_network_requests, browser_network_request), פעולה עליו (browser_click, browser_type, browser_fill_form, browser_select_option, browser_hover, browser_press_key, browser_drag, browser_drop, browser_file_upload, browser_handle_dialog, browser_wait_for) ושליטה בדפדפן עצמו (browser_resize, browser_evaluate, browser_run_code_unsafe, browser_close). הטבלה למעלה היא פלט ה-tools/list החי, מילה במילה.
לא. אין למה להירשם ואין אישור גישה להדביק. הפקודה npx מורידה את החבילה ממאגר החבילות הציבורי של npm בריצה הראשונה, כך שההפעלה הראשונה צריכה חיבור לאינטרנט; אחריה החבילה שמורה על ה-Mac. הוא גם צריך דפדפן להנהיג, ועל ה-Mac שלנו הוא השתמש ב-Google Chrome שכבר היה מותקן בתיקיית Applications. [1]
כברירת מחדל כן: רשימת הדגלים המתועדת אומרת שהדפדפן רץ עם חלון גלוי אלא אם מעבירים --headless. אנחנו הרצנו ללא חלון, ולכן שום דבר לא הופיע על המסך והלכידה למעלה היא כל מה שהיה לראות. השמיטו את --headless מההגדרות למעלה אם אתם מעדיפים לצפות בעוזר עובד, וזו הדרך המהירה ביותר להבין מה הוא באמת עושה בעמוד. [6]
שני דברים דורשים תשומת לב. כלי אחד, browser_run_code_unsafe, מתאר את עצמו ברשימת הכלים שלו כמריץ JavaScript שרירותי ושקול להרצת קוד מרחוק, אז התייחסו אליו ככלי הטעון. ומעבר לזה, פעילות בדפדפן פרטית בדיוק כמו הפרופיל שמאחוריה: עם --isolated הפרופיל נשמר בזיכרון ונזרק בסוף, ובלעדיו הדפדפן שומר את ההתחברויות שלכם על הדיסק בין הפעלות. גדר אחת כן אימתנו: הוא חוסם ניווט ל-file:// כברירת מחדל, והסירוב שהוא מחזיר מודפס בקטע פתרון התקלות למעלה. [6]
מקורות
כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.
[1]
Latest version 0.0.78, published 2026-07-09; license field Apache-2.0; repository microsoft/playwright-mcp; engines node >=18.
[2]
6,116,075 downloads for the week ending 2026-08-01.
[3]
35,762 stars and a push dated 2026-07-25 at access time, owned by the microsoft organization, per the GitHub API.
[4]
Tag v0.0.78, published 2026-07-09, matching the npm latest tag.
[5]
The full Apache License 2.0 text, 201 lines, with the notice Copyright (c) Microsoft Corporation.
[6]
Standard config is an npx command over stdio; Node.js 18 or newer required; --headless documented as headed by default; persistent profile is the default and only one browser may use it at a time.
[7]
The official Claude Desktop quickstart and the claude_desktop_config.json shape.
[8]
The claude mcp add syntax for local stdio servers, including the double dash before the command.
[9]
[10]
How Routines runs one-click OAuth connectors and any MCP server.
העמוד הזה מתאר את Playwright כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.
מאחורי המדריך הזה
Routines, האפליקציה שמאחורי המדריך הזה, מריצה שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. הפתקים שלכם נשארים קובצי markdown על ה-Mac שלכם, אין חשבון ענן לשלם, והיא עובדת גם בלי אינטרנט. להורדת Routines