שרת MCP מאומת: Vercel

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

  • הכלים נספרו2026-08-03macOS 26.3.1
  • חבילה@mistertk/vercel-mcp 0.1.1
  • מדווח על עצמוvercel-mcp 1.0.0
  • פרוטוקול MCP2025-06-18
  • סביבת ריצהNode v24.18.0

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

התשובה הקצרה

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

שרת ה-MCP של Vercel מאפשר לעוזר AI לקרוא ולשנות את הפריסות, הפרויקטים, הדומיינים, משתני הסביבה והגדרות הצוות שלכם מתוך חלון צ׳אט או מתוך שגרה מתוזמנת. קיימים שניים כאלה, והם לא אותו מוצר: Vercel מארחת שרת משלה בכתובת mcp.vercel.com, שהלקוח שלכם מגיע אליו ברשת אחרי הזדהות OAuth ושפתוח רק ללקוחות ש-Vercel בדקה ואישרה, ובנפרד קיימות חבילות קהילתיות שרצות על ה-Mac שלכם מול Vercel Access Token אישי. העמוד הזה עוסק בחבילה הקהילתית, כי היא זו שלקוח מבוסס טופס יכול להפעיל בלי הזדהות בדפדפן. הרצנו אותה, דיברנו איתה בפרוטוקול וספרנו את כל 131 הכלים שהיא חושפת, והטבלה למטה היא הלכידה הזו. מה שלא יכולנו לעשות הוא להשלים קריאה מאומתת: לשם כך נדרש Access Token לחשבון Vercel אמיתי, שאין לנו, ולכן העמוד מראה את הכלים ואת השגיאות המדויקות שמתקבלות בלעדיו, ועוצר שם. [1][4][3]

  • כלים

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

  • אישורי גישה

    נדרש Vercel Access Token [6]

  • ערוץ תקשורת

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

  • מתחזק

    MisterTK, פרויקט קהילתי [1][3]

  • הורדות

    874 בשבוע האחרון [2]

  • רישיון

    MIT [1]

אימות

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

השיטה

הרצנו את השרת עם npx על גבי stdio עם Access Token מדומה, השלמנו את לחיצת היד של MCP וקראנו ל-tools/list: 131 הכלים שלמטה הם התשובה הזו, מילה במילה. אחר כך ביצענו שלוש קריאות כלי אמיתיות. שתיים מהן הגיעו אל Vercel וחזרו עם 403 Not authorized, והשלישית נדחתה על ידי בדיקת הארגומנטים של השרת עצמו עוד לפני שיצאה מה-Mac. קריאות מאומתות כאן ממתינות ל-Vercel Access Token, שאין לנו, ולכן שום משפט בעמוד הזה לא טוען שקריאה ל-Vercel הצליחה. בנוסף שלחנו בקשת initialize ללא אימות לנקודת הקצה המתארחת של Vercel עצמה בכתובת mcp.vercel.com, והיא ענתה 401; התשובה מודפסת בקטע פתרון התקלות.

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

{"result":{"protocolVersion":"2025-06-18","capabilities":{"resources":{"listChanged":true},"prompts":{"listChanged":true},"tools":{"listChanged":true}},"serverInfo":{"name":"vercel-mcp","version":"1.0.0"}},"jsonrpc":"2.0","id":1}

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

tools/call getAuthUser {}
Error getting auth user: API error occurred: Status 403 Content-Type "application/json; charset=utf-8". Body: {"error":{"code":"forbidden","message":"Not authorized","invalidToken":true}}

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

כלים

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

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

כלימה הוא עושה
getDeploymentEventsdeploymentId*directionfollowlimitnamesinceuntilstatusCodedelimiterbuildsteamIdslug

Gets deployment events by deployment ID and build ID

getDeploymentdeploymentId*withGitRepoInfoteamIdslug

Gets a deployment by ID or URL

cancelDeploymentdeploymentId*teamIdslug

Cancels a deployment

listDeploymentFilesdeploymentId*teamIdslug

Lists deployment files

getDeploymentFileContentsdeploymentId*fileId*teamIdslug

Gets deployment file contents

getDeploymentsappfromlimitprojectIdtargettouserssinceuntilstateteamIdslug

Lists deployments

deleteDeploymentdeploymentId*urlteamIdslug

Deletes a deployment

listDnsRecordsdomain*limitsinceuntilteamIdslug

Lists DNS records for a domain

createDnsRecorddomain*name*type*value*ttlcommentmxPrioritysrvPrioritysrvWeightsrvPorthttpsTargethttpsPriorityteamIdslug

Creates a DNS record for a domain

updateDnsRecorddomain*recordId*nametypevaluettlcommentmxPrioritysrvPrioritysrvWeightsrvPorthttpsTargethttpsPriorityteamIdslug

Updates a DNS record

deleteDnsRecorddomain*recordId*teamIdslug

Deletes a DNS record

getDomaindomain*teamIdslug

Gets information about a domain

getDomainConfigdomain*teamIdslug

Gets domain configuration

listDomainslimitsinceuntilteamIdslug

Lists all domains

listProjectsexcludeReposfromgitForkProtectionlimitreporepoIdrepoUrlsearchsinceteamIdslug

Lists all projects

updateProjectprojectId*autoExposeSystemEnvsbuildCommandcommandForIgnoringBuildStepdevCommanddirectoryListingenableAffectedProjectsDeploymentsframeworkgitCommentsgitLFSinstallCommandnamenodeVersionoutputDirectorypublicSourcerootDirectoryserverlessFunctionRegionskewProtectionMaxAgeteamIdslug

Updates a project

listProjectDomainsprojectId*directiongitBranchlimitnameorderproductionredirectredirectssincetargetuntilverifiedteamIdslug

Lists domains for a project

getProjectDomainprojectId*domain*teamIdslug

Gets a project domain

addProjectDomainprojectId*name*gitBranchredirectredirectStatusCodeteamIdslug

Adds a domain to a project

updateProjectDomainprojectId*domain*gitBranchredirectredirectStatusCodeteamIdslug

Updates a project domain

removeProjectDomainprojectId*domain*teamIdslug

Removes a domain from a project

verifyProjectDomainprojectId*domain*teamIdslug

Verifies a project domain

listEnvVarsprojectId*decryptgitBranchlimitsincesourcetargetteamIdslug

Lists environment variables for a project

getEnvVarprojectId*envId*decryptteamIdslug

Gets an environment variable

createEnvVarprojectId*key*value*type*target*gitBranchcommentcustomEnvironmentIdsteamIdslug

Creates an environment variable

editEnvVarprojectId*envId*keyvaluetypetargetgitBranchcommentcustomEnvironmentIdsteamIdslug

Edits an environment variable

removeEnvVarprojectId*envId*teamIdslug

Removes an environment variable

readAccessGroupidOrName*teamIdslug

Read an access group

listAccessGroupsprojectIdmemberIdsearchmembersLimitprojectsLimitlimitnextteamIdslug

List access groups

createAccessGroupname*projectsmembersToAddteamIdslug

Create an access group

getEdgeConfigsteamIdslug

Get all Edge Configs

createEdgeConfigname*itemsteamIdslug

Create an Edge Config

getEdgeConfigedgeConfigId*teamIdslug

Get an Edge Config

updateEdgeConfigedgeConfigId*items*teamIdslug

Update an Edge Config

getCertByIdid*teamIdslug

Get cert by id

removeCertid*teamIdslug

Remove cert

issueCertcns*teamIdslug

Issue a new cert

uploadCertca*cert*key*skipValidationteamIdslug

Upload a cert

getTeamteamId*

Get a team

getTeamslimitsinceuntil

List all teams

createWebhookurl*events*projectIdsteamIdslug

Create a webhook

getWebhooksprojectIdteamIdslug

Get a list of webhooks

deleteWebhookid*teamIdslug

Delete a webhook

createLogDrainname*type*url*deliveryFormatenvironmentsheadersprojectIdssourcessecretsamplingRateteamIdslug

Creates a new Integration Log Drain

getAuthUser

Get the authenticated user

listAuthTokensteamIdslug

List auth tokens

createAuthTokenname*expiresAtteamIdslug

Create an auth token

createCheckdeploymentId*name*pathblockingdetailsUrlexternalIdrerequestableteamIdslug

Creates a new check

getAllChecksdeploymentId*limitnextteamIdslug

Retrieve a list of all checks

getCheckdeploymentId*checkId*teamIdslug

Get a single check

updateCheckdeploymentId*checkId*status*conclusionnamedetailsUrloutputteamIdslug

Update a check

rerequestCheckdeploymentId*checkId*teamIdslug

Rerequest a check

updateAccessGroupidOrName*nameprojectsmembersToAddmembersToRemoveteamIdslug

Update an access group

deleteAccessGroupidOrName*teamIdslug

Delete an access group

listAccessGroupMembersidOrName*limitnextteamIdslug

List members of an access group

listAccessGroupProjectsidOrName*limitnextteamIdslug

List projects in an access group

createAccessGroupProjectidOrName*projectId*role*teamIdslug

Add a project to an access group

readAccessGroupProjectidOrName*projectId*teamIdslug

Get project details in an access group

updateAccessGroupProjectidOrName*projectId*role*teamIdslug

Update a project's role in an access group

deleteAccessGroupProjectidOrName*projectId*teamIdslug

Remove a project from an access group

deleteEdgeConfigedgeConfigId*teamIdslug

Delete an Edge Config

getEdgeConfigItemsedgeConfigId*teamIdslug

Get all items in an Edge Config

getEdgeConfigItemedgeConfigId*itemKey*teamIdslug

Get a specific item from an Edge Config

getEdgeConfigSchemaedgeConfigId*teamIdslug

Get the schema for an Edge Config

patchEdgeConfigSchemaedgeConfigId*schemateamIdslug

Update the schema for an Edge Config

deleteEdgeConfigSchemaedgeConfigId*teamIdslug

Delete the schema for an Edge Config

getEdgeConfigTokensedgeConfigId*teamIdslug

Get all tokens for an Edge Config

deleteEdgeConfigTokensedgeConfigId*tokens*teamIdslug

Delete tokens for an Edge Config

getEdgeConfigTokenedgeConfigId*token*teamIdslug

Get a specific token for an Edge Config

createEdgeConfigTokenedgeConfigId*label*teamIdslug

Create a token for an Edge Config

getTeamMembersteamId*limitsinceuntilsearchrole

List team members

inviteUserToTeamteamId*email*role*projects

Invite a user to a team

requestAccessToTeamteamId*joinedFrom

Request access to a team

getTeamAccessRequestteamId*userId*

Get team access request status

joinTeamteamId*inviteCode*

Join a team

updateTeamMemberteamId*uid*roleprojects

Update a team member

removeTeamMemberteamId*uid*

Remove a team member

patchTeamteamId*avatardescriptionnameslug

Update team information

createTeamslug*

Create a new team

deleteTeamteamId*

Delete a team

deleteTeamInviteCodeteamId*inviteId*

Delete team invite code

getWebhookid*teamIdslug

Get a webhook

deleteIntegrationLogDrainid*teamIdslug

Delete an integration log drain

deleteConfigurableLogDrainid*teamIdslug

Delete a configurable log drain

getIntegrationLogDrainsintegrationId*teamIdslug

Get integration log drains

listUserEventslimitsinceuntiltypesuserIdwithPayloadteamIdslug

List user events

requestDeletereasons*

Request user account deletion

getAuthTokentokenId*teamIdslug

Get auth token metadata

deleteAuthTokentokenId*teamIdslug

Delete an auth token

listAliasesdomainfromlimitprojectIdsinceuntilrollbackDeploymentIdteamIdslug

List aliases

getAliasidOrAlias*fromprojectIdsinceuntilteamIdslug

Get an alias

deleteAliasaliasId*teamIdslug

Delete an alias

listDeploymentAliasesdeploymentId*teamIdslug

List deployment aliases

assignAliasdeploymentId*alias*redirectteamIdslug

Assign an alias to a deployment

recordArtifactEventsevents*xArtifactClientCixArtifactClientInteractiveteamIdslug

Record artifacts cache usage events

getArtifactStatusteamIdslug

Get status of Remote Caching

getProjectMembersidOrName*limitsinceuntilsearchteamIdslug

List project members

addProjectMemberidOrName*uidemailusernamerole*teamIdslug

Add a new member to a project

removeProjectMemberidOrName*uid*teamIdslug

Remove a member from a project

uploadArtifacthash*data*contentLength*xArtifactDurationxArtifactClientCixArtifactClientInteractivexArtifactTagteamIdslug

Upload a cache artifact

downloadArtifacthash*teamIdslug

Download a cache artifact

artifactExistshash*teamIdslug

Check if an artifact exists

artifactQueryhashes*teamIdslug

Query artifact status

createCustomEnvironmentprojectId*body*teamIdslug

Create a custom environment

getCustomEnvironmentsprojectId*teamIdslug

Get custom environments for a project

getCustomEnvironmentprojectId*envId*teamIdslug

Get a specific custom environment

updateCustomEnvironmentprojectId*envId*body*teamIdslug

Update a custom environment

deleteCustomEnvironmentprojectId*envId*teamIdslug

Delete a custom environment

getConfigurationsteamIdslugview

Get integration configurations

getConfigurationconfigId*teamIdslug

Get a specific integration configuration

deleteConfigurationconfigId*teamIdslug

Delete an integration configuration

gitNamespaceshostteamIdslug

Get available Git namespaces

searchReponamespaceId*hostqueryteamIdslug

Search Git repositories

getAccountInfointegrationId*

Get marketplace account information

getMemberintegrationId*memberId*

Get marketplace member information

createEventintegrationId*body*

Create a marketplace event

submitBillingDataintegrationId*body*

Submit billing data

submitInvoiceintegrationId*body*

Submit an invoice

getInvoiceintegrationConfigurationId*invoiceId*

Get an invoice

updateInvoiceintegrationId*invoiceId*body*

Update an invoice

updateResourceSecretsintegrationId*productIdOrSlug*resourceId*body*

Update resource secrets

updateResourceSecretsByIdintegrationId*body*

Update resource secrets by ID

exchangeSsoTokenintegrationId*body*

Exchange SSO token

updateAttackChallengeModeprojectId*body*teamIdslug

Update attack challenge mode

putFirewallConfigprojectId*body*teamIdslug

Create or replace firewall configuration

updateFirewallConfigprojectId*body*teamIdslug

Update firewall configuration

getFirewallConfigprojectId*teamIdslug

Get firewall configuration

getActiveAttackStatusprojectId*teamIdslug

Get active attack status

getBypassIpprojectId*teamIdslug

Get bypassed IPs for a project

addBypassIpprojectId*body*teamIdslug

Add bypass IP to project

removeBypassIpprojectId*ip*teamIdslug

Remove bypass IP from project

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

התקנה

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

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

Claude Desktop

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

{
  "mcpServers": {
    "vercel": {
      "command": "npx",
      "args": [
        "-y",
        "@mistertk/vercel-mcp"
      ],
      "env": {
        "VERCEL_API_KEY": "your_vercel_access_token"
      }
    }
  }
}

הדביקו את ה-token שלכם במקום הערך לדוגמה, ואז סגרו ופתחו מחדש את Claude Desktop. Claude Desktop יכולה גם להגיע לשרת המתארח של Vercel עצמה, דרך Settings, אחר כך Connectors, אחר כך Add custom connector, ש-Vercel מתעדת כיכולת של מסלולים בתשלום; המסלול הזה לא דורש JSON ולא token, אבל כן דורש הזדהות OAuth. [8][4]

Claude Code

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

claude mcp add vercel -e VERCEL_API_KEY=your_vercel_access_token -- npx -y @mistertk/vercel-mcp

הדגל ‎-e מגדיר את משתנה הסביבה, וכל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ. ה-token נשמר בהיסטוריית הפקודות שלכם, אז הדביקו אותו בטרמינל חדש אם זה משנה לכם. Vercel מתעדת מסלול שני ללקוח הזה, claude mcp add --transport http vercel https://mcp.vercel.com, שמכוון לשרת של Vercel עצמה ומבקש אישור בדפדפן כשמקלידים ‎/mcp. [9][4]

Cursor

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

{
  "mcpServers": {
    "vercel": {
      "command": "npx",
      "args": [
        "-y",
        "@mistertk/vercel-mcp"
      ],
      "env": {
        "VERCEL_API_KEY": "your_vercel_access_token"
      }
    }
  }
}

Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. קובץ ‎.cursor/mcp.json ברמת הפרויקט שווה לשמור ב-git רק אחרי שהוצאתם ממנו את ה-token. Vercel מפרסמת גם קטע הגדרה ל-Cursor עבור השרת המתארח שלה, שהוא אותו קובץ עם שורת url אחת במקום ה-command וה-env. [10][4]

Routines

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

Name        Vercel
Command     npx
Arguments   -y @mistertk/vercel-mcp

Environment Variables
VERCEL_API_KEY=your_vercel_access_token

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

בלי טרמינל

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

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

  1. 01

    התקינו את Routines

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

  2. 02

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

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

  3. 03

    בחרו Command (stdio)‎

    העבירו את הטופס ל-Command (stdio): השרת הזה הוא פקודה שרצה על ה-Mac שלכם, לא כתובת אינטרנט. השרת המתארח של Vercel בכתובת mcp.vercel.com אכן כן כתובת אינטרנט, אבל הגישה אליו דורשת הזדהות OAuth שהטופס הזה לא מריץ, ולכן החבילה שלמטה היא המסלול שעובד כאן.

  4. 04

    הפיקו Vercel Access Token

    בלוח הבקרה של Vercel פתחו את עמוד Account Tokens בכתובת vercel.com/account/tokens וצרו שם token. Vercel תוחמת token לחשבון המשתמש שלכם ואופציונלית גם לפרויקט יחיד, אז בחרו את ההיקף הצר ביותר שמכסה את מה שתרצו שהעוזר יראה. הערך הגלוי מוצג פעם אחת בלבד, אז העתיקו אותו לפני שתסגרו את העמוד.

  5. 05

    מלאו את הטופס, ואז בדקו

    Name: Vercel. Command: npx. Arguments: ‎-y @mistertk/vercel-mcp. בשדה Environment Variables הוסיפו שורה אחת, VERCEL_API_KEY=your_token. לחצו Test Connection: Routines מפעילה את השרת ומדווחת כמה כלים היא מצאה, מאה שלושים ואחד עבור השרת הזה. אחר כך לחצו Add Server.

  6. 06

    השתמשו בו

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

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

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

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

סיכום פריסות ליום שני

פרומפט

Every Monday at 9:00, list my Vercel deployments from the last seven days, group them by project, call out any that ended in an error state, and save the summary as vercel-week.md in my Documents folder.

בדיקת דומיינים ותעודות

פרומפט

On the first of every month at 8:00, list the domains on my Vercel account with their configuration status, flag any that are not verified or are close to expiring, and write the list to vercel-domains.md so I can act on it.

סקירת משתני סביבה

פרומפט

Every Friday at 17:00, list the environment variables on my production Vercel project, note which ones changed this week and who changed them, and write a short report to env-review.md. Never print the values themselves.

פתרון תקלות

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

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

השרת יוצא ברגע שהוא עולה

מה רואים

Configuration error: Missing Vercel API key. Set VERCEL_API_KEY environment variable or pass VERCEL_API_KEY=<key> as argument

Usage:
  Environment variable: export VERCEL_API_KEY=<YOUR_API_KEY>
  Command line: node script.js VERCEL_API_KEY=<YOUR_API_KEY>

Optional environment variables:
  VERCEL_REQUEST_TIMEOUT - Request timeout in ms (default: 30000)
  VERCEL_MAX_RETRIES - Maximum retry attempts (default: 3)
  VERCEL_DEBUG - Enable debug logging (default: false)
  VERCEL_RATE_LIMIT_PER_MINUTE - API calls per minute (default: 60)
  VERCEL_RATE_LIMIT_BURST - Burst limit (default: 10)

הפתרון

שום token לא הגיע לתהליך, ולכן הוא הדפיס את זה ויצא עוד לפני שלחיצת היד של MCP התחילה. שחזרנו את זה כשהפעלנו את החבילה בלי המשתנה. אין כאן מצב חלקי: בלי token אין גם tools/list, ולכן הלקוח מציג חיבור מת ולא חיבור ריק. בלקוח מבוסס טופס, בדקו שהערך נכנס לשדה Environment Variables ולא ל-Arguments. המשתנים האופציונליים שמופיעים באותה הודעה אמיתיים ושימושיים: VERCEL_DEBUG=true היא הדרך המהירה ביותר לראות מה השרת באמת שולח.

הוא דוחה token שנראה תקין

מה רואים

Configuration error: Invalid Vercel API key format

הפתרון

החבילה בודקת את מבנה ה-token על ה-Mac שלכם עוד לפני שהיא פונה ל-Vercel, ומסרבת לכל ערך קצר מדי או כזה שמכיל תווים מעבר לאותיות, ספרות, קו תחתון ומקף. גרמנו לזה בכוונה עם ערך בן ארבעה תווים. זו כשלון מהיר שקורה בלי רשת, ולכן קל להבחין בינו לבין ה-403 שמופיע בהמשך הרשימה: זה קורה בהפעלה, וה-403 קורה בקריאת כלי. רווח מיותר או מרכאות שהועתקו יחד עם ה-token הם הסיבה הרגילה.

כל קריאת כלי חוזרת עם Not authorized

מה רואים

Error getting auth user: API error occurred: Status 403 Content-Type "application/json; charset=utf-8". Body: {"error":{"code":"forbidden","message":"Not authorized","invalidToken":true}}

הפתרון

השרת רץ והכלים נמצאים שם; Vercel היא זו שמסרבת ל-token. זו התשובה שקיבלנו לאורך כל הריצה שלנו, כי ה-token שלנו היה מדומה ולא אמיתי, ובגלל זה העמוד הזה מסומן ככזה שכליו נספרו ולא כמאומת במלואו. אותה הודעה מכסה גם token שבוטל, token שפג, ו-token שתחום לחשבון או לפרויקט אחר מזה שעליו שאלתם. צרו token חדש בעמוד Account Tokens בלוח הבקרה של Vercel והפעילו מחדש את השרת.

קריאה נכשלת לפני שהיא מגיעה ל-Vercel

מה רואים

MCP error -32602: Input validation error: Invalid arguments for tool getDeployment: Required at deploymentId

הפתרון

זו לא תקלה של Vercel: השרת בדק את הארגומנטים וגילה שחסר אחד מהם. קיבלנו את זה כשקראנו ל-getDeployment בלי ארגומנטים בכלל. רוב הכלים כאן מקבלים לפחות מזהה אחד, ורבים מקבלים גם teamId אופציונלי, שנדרש כשהמשאב שייך לצוות ולא לחשבון האישי שלכם. בקשו מהעוזר להריץ קודם כלי רשימה, למשל getDeployments או listProjects, ולקחת את המזהה מהתוצאה הזו.

נקודת הקצה המתארחת של Vercel עונה 401

מה רואים

HTTP/2 401
www-authenticate: Bearer error="invalid_token", error_description="No authorization provided", resource_metadata="https://mcp.vercel.com/.well-known/oauth-protected-resource"
{"error":"invalid_token","error_description":"No authorization provided"}

הפתרון

צפוי, וכדאי לדעת את זה לפני שמבזבזים על זה ערב שלם. השרת המתארח של Vercel בכתובת mcp.vercel.com הוא מוצר אחר מהחבילה המקומית שבעמוד הזה, והוא לא מקבל דבר בלי פרטי גישה. שלחנו בקשת initialize בלי כותרת Authorization כלל וקיבלנו את זה בחזרה, יחד עם הפניה למטא-נתוני ה-OAuth שהוא מפרסם. הגעה לשרת ההוא מחייבת הזדהות OAuth שלקוח ה-MCP שלכם משלים בשבילכם בדפדפן, ו-Vercel מתירה זאת רק ללקוחות שהיא בדקה ואישרה.

npx מתחיל ואז מודיע שהפקודה לא נמצאה

מה רואים

sh: vercel-mcp: command not found

הפתרון

התקנתם חבילה אחרת. כמה חבילות npm נושאות שמות של Vercel MCP והן לא בנות החלפה: נתקלנו בשורה הזו בדיוק כשהרצנו npx -y vercel-mcp-server, שהארכיון המפורסם שלה לא מכיל את הקובץ שהמניפסט שלה עצמה מפנה אליו, ולכן npx מוריד אותה, לא מוצא מה להריץ ומעביר את הכשלון ל-shell. החבילה שאומתה בעמוד הזה היא זו עם ה-scope, ‎@mistertk/vercel-mcp. העתיקו את השם כולל הקידומת ‎@mistertk/‎.

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

הפתרון

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

שאלות נפוצות

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

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

כך עוזר AI קורא ומשנה דברים בחשבון Vercel: פריסות, פרויקטים, דומיינים, רשומות DNS, משתני סביבה, חברי צוות ועוד. שני דברים שונים נושאים את השם הזה. Vercel מפעילה שרת רשמי מתארח בכתובת mcp.vercel.com, שאליו מגיעים ברשת אחרי הזדהות OAuth והוא פתוח רק ללקוחות ש-Vercel בדקה ואישרה. בנפרד, חבילות קהילתיות עוטפות את אותו Vercel REST API כתהליך מקומי על ה-Mac שלכם, עם Access Token אישי. העמוד הזה אימת אחת מהחבילות הקהילתיות, כי זה הסוג שלקוח מבוסס טופס יכול להפעיל בכוחות עצמו. [4][1]

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

החבילה שבעמוד הזה חושפת 131 כלים, והטבלה למעלה היא פלט ה-tools/list החי, מילה במילה. הם מכסים פריסות (getDeployments, getDeployment, cancelDeployment, deleteDeployment, getDeploymentEvents), פרויקטים ומשתני סביבה (listProjects, updateProject, listEnvVars, createEnvVar, removeEnvVar), דומיינים ו-DNS ‏(listDomains, getDomainConfig, listDnsRecords, createDnsRecord), צוותים וחברים (getTeams, getTeamMembers, inviteUserToTeam), Edge Config, תעודות, webhooks, log drains, בדיקות בנייה, aliases והגדרות חומת אש. השרת המתארח של Vercel עצמה מפרסם סט אחר וקטן בהרבה, 32 כלים נכון לבדיקה שלנו, שמכוון לחיפוש בתיעוד, ללוגים של פריסות ול-Web Analytics. [5]

האם באמת השלמתם קריאה מאומתת מול Vercel?

לא, ואנחנו לא מתכוונים לרמוז אחרת. הפעלנו את השרת, השלמנו את לחיצת היד וקיבלנו בחזרה את רשימת הכלים המלאה, וזו המשמעות של התג בעמוד הזה שאומר שהכלים נספרו. כל קריאת כלי שביצענו אחר כך החזירה שגיאה אמיתית, שמודפסת למעלה: 403 Not authorized מ-Vercel עבור השתיים שהגיעו לרשת, ושגיאת אימות ארגומנטים עבור זו שלא. השלמת קריאה אמיתית דורשת Vercel Access Token לחשבון אמיתי, שאין לנו. כל השאר בעמוד הזה הוא קבלה מהריצה ההיא.

איזה אישור גישה הוא דורש, ומאיפה משיגים אותו?

Vercel Access Token אחד, שמועבר כמשתנה הסביבה VERCEL_API_KEY. יוצרים אותו בעמוד Account Tokens בלוח הבקרה של Vercel, בכתובת vercel.com/account/tokens. Vercel תוחמת token לחשבון המשתמש שלכם ואופציונלית גם לפרויקט יחיד, אז תנו לו את ההיקף הצר ביותר שמכסה את העבודה, והתייחסו אליו כמו לסיסמה: הערך הגלוי מוצג פעם אחת, וכל מי שמחזיק בו יכול לפעול בשמכם. כדאי לדעת לפני שקובעים את ההיקף: 131 הכלים שלמעלה אינם לקריאה בלבד, וכוללים את deleteDeployment, removeEnvVar, deleteDnsRecord ו-deleteTeam. השרת קורא גם כמה משתנים אופציונליים עבור פסקי זמן, ניסיונות חוזרים והגבלת קצב, שהודעת ההפעלה שלו עצמו מפרטת. [6]

צריך טרמינל כדי להגדיר אותו?

לא. ב-Routines ממלאים שלושה שדות ועוד משתנה סביבה אחד בהגדרות ולוחצים Test Connection; המדריך למעלה מראה כל לחיצה. Claude Desktop דורשת עריכה חד-פעמית של קובץ JSON קטן, או הוספת custom connector דרך ההגדרות שלה. רק Claude Code הוא כלי טרמינל מטבעו. [11][8]

למה npm מציג גרסה 0.1.1 אבל השרת מדווח 1.0.0?

שני המספרים אמיתיים ולכדנו את שניהם. מאגר npm מפרסם את החבילה הזו כ-0.1.1, וזו הגרסה ש-npx פתר והריץ. על גבי MCP, השרת הרץ מציג את עצמו כ-vercel-mcp בגרסה 1.0.0, מספר שכתוב בתוך הקוד שלו ומעולם לא עודכן כדי להתאים לגרסת הפרסום. אותו קוד, שני מספרים. כדאי לדעת איזה מהם לצטט כשמדווחים על תקלה: זה של npm. [1]

האם ‎@vercel/mcp-adapter הוא אותו דבר?

לא, וזה הבלבול הקל ביותר כאן כי זו החבילה שפורסמה על ידי Vercel עם הכי הרבה הורדות בפער גדול. ‎@vercel/mcp-adapter היא ספרייה לבניית שרת MCP משלכם בתוך אפליקציית Next.js או דומה ולפריסתו ב-Vercel. היא אינה שרת שאפשר לכוון אליו את Claude או את Cursor. אם אתם רוצים שהעוזר שלכם ידבר עם חשבון ה-Vercel הקיים שלכם, אתם צריכים או את נקודת הקצה המתארחת בכתובת mcp.vercel.com או חבילה קהילתית כמו זו שבעמוד הזה. שימו לב גם שמאגר הקוד שמאחורי החבילה הזו כבר לא נפתח ב-GitHub, ולכן הארכיון המפורסם ב-npm הוא הדבר היחיד שנותר לבדוק לפני התקנה. [7][3]

מקורות

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

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

  1. [1]

    npm registry: @mistertk/vercel-mcpנקרא בתאריך 2026-08-03

    Latest version 0.1.1, published 2025-06-27, MIT, bin vercel-mcp. This is the version npx resolved for our run.

  2. [2]

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

    874 downloads for the week ending 2026-08-01.

  3. [3]

    GitHub API: MisterTK/vercel-api-mcpנקרא בתאריך 2026-08-03

    The repository named in the package manifest returns 404 Not Found, so the source tree cannot be read on GitHub; only the published npm archive can be inspected.

  4. [4]

    Vercel docs: Use Vercel's MCP serverנקרא בתאריך 2026-08-03

    The hosted endpoint mcp.vercel.com, its OAuth and Streamable HTTP model, the reviewed-client list, and the per-client setup snippets. Page dated 2026-06-26.

  5. [5]

    Vercel docs: Vercel MCP tools referenceנקרא בתאריך 2026-08-03

    32 documented tools on the hosted server, including a purchase group that charges a real payment method.

  6. [6]

    Vercel docs: vercel tokensנקרא בתאריך 2026-08-03

    Access tokens authenticate REST API requests, are scoped to your user account and optionally one project, and their plaintext value is shown only once.

  7. [7]

    npm registry: @vercel/mcp-adapterנקרא בתאריך 2026-08-03

    Version 0.3.2, described as an adapter for Next.js and other frameworks: a library for building a server, not a server to connect to.

  8. [8]

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

    The Claude Desktop config file location and the mcpServers shape.

  9. [9]

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

    The claude mcp add syntax, including -e for environment variables.

  10. [10]

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

    The mcp.json shape and file locations.

  11. [11]

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

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

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

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

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