MCP serverשרת MCP
Give your agent a key that reaches one project and stops at a spend limit you set in EUR. Then one command connects it. The limits live on the server, so a prompt cannot talk its way past them.
תנו לסוכן מפתח שמגיע לפרויקט אחד ונעצר בתקרת הוצאה שאתם קובעים ביורו. אחר כך פקודה אחת מחברת אותו. המגבלות יושבות בשרת, כך שאי אפשר לעקוף אותן דרך פרומפט.
1. Make a key for the agent1. יוצרים מפתח לסוכן
Keys are made by a person, signed in to the panel. An agent cannot make one, whatever scopes it holds. Open API keys and fill in:
מפתחות נוצרים על ידי אדם שמחובר לפאנל. סוכן לא יכול ליצור מפתח, לא משנה אילו הרשאות יש לו. פותחים את מפתחות API וממלאים:
ProjectThe one project this agent works on. Every other project answers 404 to it.הפרויקט היחיד שהסוכן עובד עליו. כל פרויקט אחר מחזיר לו 404.Scopesread and deploy are enough to ship and debug. Add env:write only if the agent should set variables.read ו-deploy מספיקים כדי לפרוס ולדבג. מוסיפים env:write רק אם הסוכן צריך להגדיר משתנים.Spend limitEUR per billing period. When the key reaches it, new deploys are refused with spend_limit_reached. What is already running keeps running.ביורו לכל תקופת חיוב. כשהמפתח מגיע לתקרה, פריסות חדשות נדחות עם spend_limit_reached. מה שכבר רץ ממשיך לרוץ.The key is shown once. The panel shows it already inside the command for step 2, so you can copy it straight into your terminal without pasting it anywhere else.
המפתח מוצג פעם אחת בלבד. הפאנל מציג אותו כבר בתוך הפקודה של שלב 2, כך שאפשר להעתיק אותה ישר לטרמינל בלי להדביק את המפתח בשום מקום אחר.
2. Connect your agent2. מחברים את הסוכן
Claude CodeClaude Code
claude mcp add shipyard \ -e SHIPYARD_API_KEY=sy_live_xxxxxxxxxxxxxxxxxxxx \ -- npx -y @shipyard/mcp
Start Claude Code in your repository and ask it to deploy. It calls whoami, then project_link once to bind the directory, then deploy.
מפעילים את Claude Code בתיקיית המאגר ומבקשים לפרוס. הוא קורא ל-whoami, אחר כך פעם אחת ל-project_link כדי לקשר את התיקייה, ואז ל-deploy.
CursorCursor
Add the server to .cursor/mcp.json in the repository, or to ~/.cursor/mcp.json for every project. Keep the file out of git: it holds the key.
מוסיפים את השרת ל-.cursor/mcp.json במאגר, או ל-~/.cursor/mcp.json לכל הפרויקטים. אל תכניסו את הקובץ ל-git: המפתח נמצא בו.
{
"mcpServers": {
"shipyard": {
"command": "npx",
"args": ["-y", "@shipyard/mcp"],
"env": { "SHIPYARD_API_KEY": "sy_live_xxxxxxxxxxxxxxxxxxxx" }
}
}
}Any other MCP clientכל לקוח MCP אחר
- stdio (the default): run
npx -y @shipyard/mcpwithSHIPYARD_API_KEYin its environment. Node 20 or later.stdio (ברירת המחדל): מריציםnpx -y @shipyard/mcpעםSHIPYARD_API_KEYבסביבה. נדרש Node 20 ומעלה. - Streamable HTTP: add
--http. It listens on127.0.0.1only, portSHIPYARD_MCP_PORT(default 8787). It does no authentication of its own, so it never binds to a routable address.Streamable HTTP: מוסיפים--http. השרת מאזין רק על127.0.0.1, בפורטSHIPYARD_MCP_PORT(ברירת מחדל 8787). אין לו אימות משלו, ולכן הוא לעולם לא נקשר לכתובת נגישה מהרשת. SHIPYARD_API_URLis optional and only matters if you run your own control plane.SHIPYARD_API_URLהוא אופציונלי ורלוונטי רק אם אתם מריצים control plane משלכם.
3. Check what the agent can reach3. בודקים לאן הסוכן מגיע
Ask the agent to run whoami. A bound key answers with its organisation, its scopes and its one project. If you see more than you meant to give, revoke the key in the panel and make a narrower one.
בקשו מהסוכן להריץ whoami. מפתח קשור עונה עם הארגון, ההרשאות והפרויקט היחיד שלו. אם אתם רואים יותר ממה שהתכוונתם לתת, בטלו את המפתח בפאנל וצרו מפתח מצומצם יותר.
The toolsהכלים
whoamiThe organisation, the scopes and the bound project.הארגון, ההרשאות והפרויקט שהמפתח קשור אליו.projects_listProjects the key can see. For a bound key, one.הפרויקטים שהמפתח רואה. למפתח קשור, אחד.project_linkBind the current directory to a project.קישור התיקייה הנוכחית לפרויקט.deployBuild and release. Production needs confirm: true.בנייה ושחרור. בייצור נדרש confirm: true.deployment_statusWhere a deploy got to, including the scan verdict.לאן הפריסה הגיעה, כולל תוצאת הסריקה.get_logsLog lines, bounded. Pass the next_since it returns to get only what came after.שורות לוג, תחומות. העבירו את next_since שהוחזר כדי לקבל רק את מה שבא אחריו.rollbackGo back to an earlier release. Needs confirm: true.חזרה לגרסה קודמת. נדרש confirm: true.versionsBuilt versions you can promote or roll back to.גרסאות בנויות שאפשר לקדם או לחזור אליהן.promoteMove a built version to another environment. Production needs confirm: true.העברת גרסה בנויה לסביבה אחרת. בייצור נדרש confirm: true.env_listVariable names, values masked.שמות משתנים, עם ערכים מוסתרים.env_setSet a variable. Anything credential-shaped needs confirm: true.הגדרת משתנה. כל דבר שנראה כמו סוד דורש confirm: true.security_report_getThe scan report for a deployment.דוח הסריקה של פריסה.domains_listCustom domains on the project and whether they are verified.הדומיינים של הפרויקט והאם הם אומתו.create_projectA new project in TLV or AMS, linked here. Needs an org-wide key.פרויקט חדש ב-TLV או ב-AMS, מקושר לתיקייה. נדרש מפתח ברמת הארגון.get_metricsRequests, 5xx rate, p95, CPU and memory per environment, plus recent events.בקשות, שיעור 5xx, p95, מעבד וזיכרון לכל סביבה, ואירועים אחרונים.get_usageWhat the organisation spent this period in EUR, and the month projection.כמה הארגון הוציא בתקופה הנוכחית ב-EUR, והתחזית לחודש.Where a bound key stopsאיפה מפתח קשור נעצר
404 not_foundAnother project. It looks the same as a project that does not exist, on purpose.פרויקט אחר. זה נראה בדיוק כמו פרויקט שלא קיים, בכוונה.403 key_project_boundAn organisation-wide route, such as usage. The error carries next, the route the key may use instead.נתיב ברמת הארגון, כמו צריכה. השגיאה כוללת next, הנתיב שהמפתח כן יכול להשתמש בו.403 session_requiredMinting keys or deleting the organisation. Only a signed-in person can.יצירת מפתחות או מחיקת הארגון. רק אדם מחובר יכול.spend_limit_reachedThe key used its limit for this period. A person raises the limit in the panel, or waits for the next period.המפתח ניצל את התקרה שלו לתקופה הזו. אדם מעלה את התקרה בפאנל, או מחכים לתקופה הבאה.Every code, with what to do about it, is in /llms-full.txt. Point your agent at it; it is written for agents to read.
כל הקודים, עם מה לעשות בכל אחד, נמצאים ב-/llms-full.txt. הפנו אליו את הסוכן; הוא כתוב כדי שסוכנים יקראו אותו.
A deploy or promote to production, any rollback, and any env_set that looks like a credential are refused until the call carries confirm: true. The server tells the agent to ask you before it sets it. A stray instruction in a README cannot ship to production on its own.
פריסה או קידום לייצור, כל rollback, וכל env_set שנראה כמו סוד נדחים עד שהקריאה כוללת confirm: true. השרת אומר לסוכן לשאול אתכם לפני שהוא מוסיף את זה. הוראה תועה בקובץ README לא יכולה להעלות לייצור לבד.
One key per agentמפתח אחד לכל סוכן
- 1Each agent, CI job and person gets its own key. Keys are never shared.לכל סוכן, משימת CI ואדם יש מפתח משלו. לא משתפים מפתחות.
- 2Revoke a key in the panel and it stops working within 10 seconds.מבטלים מפתח בפאנל והוא מפסיק לעבוד תוך 10 שניות.