Vercel MCP Server Cursor Setup 2026
Complete Vercel MCP server setup in Cursor IDE: mcp.json config, OAuth login, tools, troubleshooting & security for 2026.
How do you set up the Vercel MCP server in Cursor? Add a vercel entry under mcpServers in Cursor's mcp.json. Vercel's Cursor section uses a remote url of https://mcp.vercel.com. Save the file. Cursor then tries to connect and shows a Needs login prompt. Click that prompt and complete the Vercel OAuth grant in the browser. After the server is green, ask for something that requires a live Vercel tool, such as listing the teams on the signed-in account.
This page owns Vercel MCP in Cursor. It is the Cursor-specific setup for Vercel's hosted server: the mcp.json block Vercel publishes for Cursor, the Needs login OAuth step, the add-mcp and vercel mcp install commands, the tools Vercel documents, and the errors Cursor and Vercel actually log.
This is not a GitHub, GitLab, Netlify, or Cloudflare guide. Those have their own articles.
Use the official Vercel MCP server
The maintained server is Vercel's first-party remote MCP endpoint. Vercel documents it at Use Vercel's MCP server. The host Vercel prints, and tells you to verify before you approve a grant, is https://mcp.vercel.com.
Vercel describes the server as a remote MCP with OAuth. The same page says it implements the MCP Authorization and Streamable HTTP specifications. A Vercel changelog dated 31 July 2026 says the endpoint also serves the 2026-07-28 MCP specification through the official MCP SDK v2, and that older 2025-protocol clients keep working on the same URL. Setup does not change.
Opening https://mcp.vercel.com in a normal HTTP fetch, without an authorized MCP client, returned 401 Unauthorized. That matches an OAuth-gated remote server. It does not change the URL Vercel tells Cursor to use.
Vercel also says it only accepts AI clients it has reviewed and approved. Cursor is on that supported-client list, next to Claude Code, Claude.ai / Claude for desktop, ChatGPT, Codex CLI, VS Code with Copilot, Devin, Raycast, Goose, Windsurf, Gemini Code Assist, and Gemini CLI. This article covers the Cursor path only.
Why older Vercel MCP tutorials fail in Cursor
Three published facts matter more than leftover screenshots.
The Cursor config Vercel publishes is a remote url. Older copy on this site, and a number of third-party posts, still tell Cursor to start npx with mcp-remote and https://mcp.vercel.com. That command / args block is what Vercel prints for Gemini Code Assist and Gemini CLI, not for Cursor. Cursor's own MCP reference accepts a remote url entry over Streamable HTTP and can run the OAuth grant itself. Pasting the Gemini stdio proxy into Cursor is a common reason people fight Node, npx, and a local token cache that the official Cursor snippet does not use.
Cursor's schema is not VS Code's schema. Cursor's MCP reference uses a top-level mcpServers object. Vercel's Cursor snippet already uses that key and a url field. Vercel's VS Code path walks MCP: Add Server, transport HTTP, and a display name of Vercel. Windsurf's published snippet uses serverUrl instead of url. Pasting a VS Code, Windsurf, or Gemini fragment into Cursor's file is a common reason the server never appears.
The launch blog is not the live tool list. Vercel's 6 August 2025 introduction described the public-beta server as read-only. The current tools reference documents write and purchase tools, including deploy_to_vercel and a quote-then-confirm buy_* family. Treat the live tools page, and the tool list Cursor shows after you connect, as source of truth. This page does not keep the old "read-only only" claim.
Prerequisites
From Vercel's MCP page, Vercel's vercel mcp CLI page, and Cursor's MCP docs:
url entry and documents Streamable HTTP with OAuth. This page does not invent a version number Vercel did not print.https://mcp.vercel.com.npx add-mcp or you deliberately choose a mcp-remote client. Vercel's Cursor url block does not require Node.js.vercel mcp to write the client config for you. The manual mcp.json path does not require the CLI.You do not put a Personal Access Token in the official Cursor snippet. Vercel's Cursor block has no headers and no Authorization value. First connect uses OAuth: Cursor shows Needs login, you approve access in the browser, and Vercel issues a token to that client.
Step 1: Pick an install path
Vercel documents three ways to land the same host in a client. Any one of them is enough.
Option A: add-mcp
Vercel's quick setup:
npx -y add-mcp https://mcp.vercel.com -g
Vercel says add-mcp detects installed AI clients and configures Vercel MCP for each one. -y skips the confirmation prompt and installs to detected agents already in use in the project directory. -g installs globally across all projects. Without those flags the command is npx add-mcp https://mcp.vercel.com.
Option B: vercel mcp
The Vercel CLI command vercel mcp configures Claude Code, Cursor, and VS Code with Copilot directly. For Claude.ai and Claude for desktop it prints manual connector steps. The command does not deploy an MCP server of your own. It only edits client config on the machine.
vercel mcp
That form opens an interactive picker. In non-interactive environments Vercel requires --clients. Without it the command fails with missing_clients. The values Vercel lists are Claude Code, Claude.ai and Claude for desktop, Cursor, and VS Code with Copilot.
vercel mcp --clients "Cursor"
vercel mcp --project points the chosen clients at a project-specific URL so the MCP session is scoped to the currently linked Vercel project, instead of the shared https://mcp.vercel.com endpoint. The published snippet on that CLI page is truncated (https://mcp.vercel.com/ / ). This page does not invent the path segments. If you need the exact project URL, run vercel mcp --project from a linked project and read the url the command wrote.
Option C: one-click or a manual mcp.json
Vercel's Cursor section offers a one-click control that opens Cursor and adds the server. Vercel's 9 August 2025 changelog publishes the same mcp.json block as the manual path. Use that when you want the file in front of you.
Step 2: Add the official Cursor block
Cursor reads MCP config from two files and merges them. Project-level wins if the same server name appears in both.
~/.cursor/mcp.json.cursor/mcp.jsonVercel says you can add the snippet to a project-specific or global .cursor/mcp.json. Cursor's own help uses those two paths and also documents Customize, then MCPs, then Add to Cursor. GitLab-style Settings, Tools and MCP, New MCP Server opens the same file. Either UI path lands in Cursor's schema. The top-level key is mcpServers.
Official Cursor block from Vercel's MCP page:
{
"mcpServers": {
"vercel": {
"url": "https://mcp.vercel.com"
}
}
}
The key vercel is only a label in Cursor's MCP panel. Vercel uses that spelling in the official snippet. The url is what connects.
Do not add command, args, or mcp-remote on this path. Do not rename url to serverUrl. Do not paste a token into headers. Save the file.
Step 3: Complete the Needs login prompt
Vercel's Cursor section: once the server is added, Cursor attempts to connect and displays a Needs login prompt. Click that prompt to authorize Cursor against your Vercel account.
Vercel's security notes on that grant:
https://mcp.vercel.com before you approve.The authorization follows whichever Vercel account is active in the browser during the grant. If you belong to more than one team, pick the account that owns the projects you want Cursor to see. Vercel does not document a Cursor-side team switcher in mcp.json. To change accounts, revoke or repeat the login from Cursor's MCP UI and approve again.
Cursor asks for approval before MCP tools run, unless you changed the approval mode. Cursor's help says that in Cursor 3.6 and above, default Auto-review under Settings, Agents, Approvals and Execution lets allowlisted MCP tools run immediately and routes the rest through a classifier. Allowlist keeps the older allowlist-only behavior. See Cursor IDE MCP Agent Mode.
Vercel tells you to keep human confirmation on. That matters more now that the tools page includes deploys and purchases, not only reads.
Step 4: Restart Cursor and verify
1. Restart Cursor completely if the server does not appear after you save mcp.json.
2. Confirm the server is listed under Customize, MCPs (or Settings, Tools and MCP). Vercel names the post-connect state as a Needs login prompt until you authorize; after a successful grant you want a connected / green status, not a leftover login chip.
3. In chat or Composer, open Available Tools and confirm Vercel tools are listed.
4. Test with a prompt Vercel prints on the tools page: "Show me all the teams I'm part of." That maps to list_teams.
A second check that does not need a project id: "How do I configure custom domains in Vercel?" Vercel documents that sample for search_vercel_documentation.
If the server is listed but chat never calls a tool, open logs. Cursor's MCP FAQ: Output panel, Command-Shift-U on macOS or Control-Shift-U on Windows and Linux, then MCP Logs. Toggle the server off and on from Customize if it connected before auth finished.
Global vs project config
Use ~/.cursor/mcp.json for a Vercel connection you want in every workspace. Use .cursor/mcp.json in a project root when that repo should talk to a different scope, for example the shared endpoint in one repo and the project-specific URL vercel mcp --project wrote in another.
Cursor's help says a project file can be committed so teammates get the same tools. The official Cursor block contains no secret. That is safe to commit. Each teammate still completes their own Needs login grant. If you later add a token or any secret header, interpolate from the environment or keep the secret out of git.
The shared endpoint can see every team and project the signed-in user can see. The --project form scopes the session to the linked Vercel project. Vercel states that as the reason to pass --project. Use it when you do not want one chat session walking every project on the account.
What the official tools actually do
Vercel publishes the inventory at Vercel MCP tools. Names below are that page's names. Vercel also says tools fall into two categories: public tools, available without authentication, and authenticated tools, which require a Vercel login. The tools page does not stamp every row with a public/authenticated badge. Documentation search is the category Vercel highlights as usable without a login. Project, deployment, analytics, purchase, and toolbar tools need the OAuth grant. Treat the live page as source of truth if a name moves.
Vercel puts a sample prompt on each tool. The assistant is supposed to pick the tool. You do not have to type the function name.
Documentation: search_vercel_documentation takes a required topic and an optional tokens cap (default 2500). Sample: "How do I configure custom domains in Vercel?"
Teams and projects: list_teams lists teams that include the authenticated user. list_projects lists projects for a required teamId (team id starting with team_, or the team slug; Vercel says you can read orgId from .vercel/project.json or call list_teams). get_project takes required projectId and teamId (project ids start with prj_; the slug also works) and returns framework, domains, and latest deployment.
Deployments: list_deployments takes required projectId and teamId, plus optional since / until timestamps. get_deployment takes required idOrUrl and teamId. get_deployment_build_logs takes required idOrUrl and teamId. Optional fields Vercel documents: direction (tail default, or head), errorsOnly, limit (default 100), since, until, and buildId for multi-build deployments. Vercel says the tool returns the most recent lines by default, where build errors usually appear.
Runtime: get_runtime_logs reads Function output (console.log, errors) for a required projectId and teamId. Optional filters include deploymentId, environment (production or preview), level, statusCode, source (serverless, edge-function, edge-middleware, static), since (default 24h ago), until (default now), limit (default 50, max 1000), query, requestId, and group_by. get_runtime_errors returns grouped error clusters for a project. Time ranges on that tool can span up to 7 days. Vercel tells you to start there for production errors before pulling individual lines.
deploy_to_vercel deploys a file tree to a new Vercel project without a Git repository or the Vercel CLI. Required fields: target (preview or production), name, and files (each file has file, data, and optional encoding of utf-8 or base64). Optional teamId and projectSettings (framework, buildCommand, installCommand, outputDirectory, rootDirectory). Vercel creates the project if needed and detects the framework when projectSettings is omitted. This is a write. Approve the call only after you have read the arguments.
Web Analytics: get_web_analytics reads the same aggregated data as the Web Analytics dashboard and requires Web Analytics on the project. mode is count or aggregate. dataset is visits or events. Aggregate queries require since, until, and by, and stay inside the plan's reporting window.
Agent Runs: list_agent_run_projects, list_agent_runs, get_agent_run, and get_agent_run_trace inspect eve-framework agent runs on Vercel. They are observability tools, not a substitute for Cursor's own agent log.
Domains and purchases: check_domain_availability_and_price checks names. Purchases go through get_purchase_quote first (read-only; returns an idempotencyKey that expires after 5 minutes), then a matching buy_pro, buy_credits, buy_addon, or buy_domain with confirm: true and that key. get_domain_order is the read-only status check after buy_domain. Vercel says charges go to the team's payment method immediately and are non-refundable, that purchase tools are rolling out and may not be on every connection, and that you should enable confirmation prompts for any tool call that includes confirm: true. This page does not walk a live purchase.
Access: get_access_to_vercel_url creates a temporary shareable link for a protected deployment URL. web_fetch_vercel_url fetches content from a deployment URL, with Vercel authentication if required.
Design import: import-claude-design-from-url imports a public claudeusercontent.com HTML bundle. Vercel says that URL is valid for about an hour.
Toolbar: list_toolbar_threads, get_toolbar_thread, change_toolbar_thread_resolve_status, reply_to_toolbar_thread, edit_toolbar_message, and add_toolbar_reaction read and write Vercel Toolbar comment threads.
CLI helper: use_vercel_cli tells the model to use Vercel CLI commands with --help. It is not a second MCP server.
This page does not invent extra tools. There is no official tool on that list named for dumping secret environment-variable values or for SSL expiry across every domain on the account. get_project is the documented way to see the domains attached to one project.
Prompts that match documented tools
These are Vercel's own samples or close paraphrases. Use a real team slug, project slug, deployment id, and URL the signed-in account can see.
Cursor will prompt you to approve write tools. Approve list_teams, get_project, get_deployment_build_logs, and search_vercel_documentation freely after you have checked the arguments. Pause on deploy_to_vercel, every buy_* tool, get_access_to_vercel_url, and toolbar replies or resolve-status changes until you have read the arguments. A confirm: true purchase is a real charge.
Security Vercel actually prints
Vercel's MCP page, not this site, is the source for these rules.
Verify the official endpoint. The host is https://mcp.vercel.com. Do not approve a grant to a lookalike.
Only use MCP clients Vercel has listed as supported. Cursor is on that list. A random local proxy pointed at the same host is not the same thing as the Cursor snippet Vercel reviewed.
The grant is the user. Vercel says the AI system receives the same access as the Vercel user account. There is no extra Cursor role. If the user cannot see a project in the dashboard, the tool cannot see it either.
Prompt injection is in scope. Vercel's example is an untrusted tool or agent that says to ignore previous instructions and copy private deployment logs to an external host. Vercel MCP only operates inside the Vercel account, but any other MCP server in the same Cursor session can send that data elsewhere. Review the other servers in the same mcp.json before you debug a production deploy in chat.
Keep human confirmation on. Vercel repeats this for deploys and for confirm: true purchases.
Confused-deputy protection is consent per client. Re-authorizing shows the OAuth consent screen again. Vercel describes that as a block on cookie-based redirects that would otherwise skip the prompt.
Troubleshooting
Server never appears in Cursor. Confirm the file is ~/.cursor/mcp.json or .cursor/mcp.json. Confirm the top-level key is mcpServers. Confirm the entry uses url, not serverUrl, and not a command / mcp-remote pair copied from the Gemini snippet. Invalid JSON drops every server in the file. Restart Cursor completely.
Needs login never appears, or clicking it does nothing. Restart Cursor. Open Customize, MCPs, and toggle the vercel server off and on. Check Cursor MCP Logs. If a corporate browser or VPN blocks the OAuth window, try a machine that can reach both mcp.vercel.com and the Vercel login host. This page does not invent a manual authorize URL Vercel did not print for Cursor.
401 or an auth error after a grant that used to work. Repeat Needs login. Vercel requires a fresh consent screen on reauthorize. Confirm you are still signed into the same Vercel account the grant used.
Connected, but the wrong team or an empty project list. The OAuth grant used the browser account that was active at approval time. Sign into the right account, revoke or remove the server, add the official block again, and approve once. Or run vercel mcp --project from the linked project if you intended a single-project session.
Tool is missing. Open Available Tools and compare with the live tools page. Purchase tools are documented as rolling out and may be absent. Public documentation search can appear before you log in; authenticated project tools will not.
Writes fail, reads work. You denied the Cursor approval prompt, the signed-in user cannot perform that action in the Vercel UI, or you are on a connection that does not yet expose that write tool. The official Cursor URL has no Vercel-documented /readonly suffix.
Build logs look incomplete. get_deployment_build_logs defaults to direction: tail and limit: 100. Ask for errorsOnly or a since / until window. Vercel says errors usually sit in the recent lines.
Runtime tools return nothing. Confirm Web Analytics or Function logs exist for that project in the dashboard first. get_runtime_logs defaults to the last 24 hours and 50 rows. get_runtime_errors will not invent clusters for a project with no errors in the window.
add-mcp or vercel mcp wrote a file you cannot find. add-mcp -g is global. add-mcp without -g is project-scoped. vercel mcp --project writes a project-specific URL. Open both ~/.cursor/mcp.json and .cursor/mcp.json and look for a vercel key.
Green server, agent says the tool was not found. Cursor has discussed HTTP MCP tools that appear in settings but are not callable from Agent in some builds. Workarounds discussed in Cursor's forum include a new Agent chat, or Settings, Network, HTTP Compatibility Mode, http/1.1, then restart. Not a Vercel outage by default.
Still stuck. Debug MCP Server Issues covers reading client logs. Cursor isolates a crashed MCP server from the others.
Expert insights on Vercel MCP in Cursor
OAuth flow and token lifecycle. Vercel's OAuth grant in Cursor is a one-time user approval that issues a refresh token to the client. Cursor stores that token locally and uses it to request short-lived access tokens for each MCP call. If you revoke the grant from Cursor's MCP UI or from your Vercel account settings, the refresh token becomes invalid and Cursor shows Needs login again. Re-authorizing is safe and does not create duplicate tokens; Vercel's consent screen appears each time to confirm the user still intends to grant access. This design prevents token accumulation and ensures that revoking access from one place (Cursor or Vercel account) immediately blocks all future calls.
Scoping MCP access to a single project. The shared https://mcp.vercel.com endpoint grants Cursor access to every team and project the signed-in user can see in the Vercel dashboard. For teams with many projects or strict access controls, vercel mcp --project creates a project-scoped URL that limits the MCP session to that one project. This is useful in CI/CD pipelines or when you want to prevent accidental tool calls on the wrong project. Each project-scoped URL is unique and tied to the currently linked Vercel project; switching projects requires a new vercel mcp --project run. The scoped URL is still OAuth-gated and respects the same security model as the shared endpoint.
Tool availability and feature rollout. Vercel documents purchase tools (buy_pro, buy_credits, buy_addon, buy_domain) as rolling out gradually. If a tool is missing from Available Tools after you connect, it may not yet be enabled on your account. Check the live Vercel MCP tools page to confirm the tool is documented, then contact Vercel support if you believe you should have access. The tools page is the source of truth; this guide does not invent or remove tools. New tools are added regularly as Vercel expands MCP capabilities.
Cursor MCP approval modes and security. Cursor 3.6+ offers Auto-review mode, which allowlists safe read-only tools like list_teams and search_vercel_documentation for instant execution, while routing write tools (deploy_to_vercel, buy_*) and sensitive operations through a human classifier. This balances productivity with safety. For production environments or teams with strict governance, switch to Allowlist mode in Settings > Agents > Approvals and Execution, which requires explicit approval for every tool call. Vercel recommends keeping human confirmation enabled for any tool that includes confirm: true, as those represent real charges or deployments. The approval mode is a Cursor setting, not a Vercel MCP setting, so each user can configure their own security posture.
Debugging MCP connection issues in Cursor. When Vercel MCP fails to connect, the root cause is usually one of three: invalid JSON in mcp.json (which silently drops all servers), a schema mismatch (using serverUrl instead of url, or a command/args block meant for Gemini), or network/auth issues. Open Cursor's Output panel (Cmd-Shift-U on macOS, Ctrl-Shift-U on Windows/Linux) and select MCP Logs to see the actual error. If the server appears but tools never run, toggle it off and on from Customize > MCPs. If OAuth fails, confirm the browser is signed into the correct Vercel account and that https://mcp.vercel.com is reachable from your network. Network timeouts or DNS failures will show in the MCP Logs as connection errors.
Vercel MCP in multi-client environments. When you run multiple AI clients on the same machine (Cursor, Claude for Desktop, VS Code with Copilot), each client maintains its own OAuth session with Vercel MCP. The shared https://mcp.vercel.com endpoint recognizes each client independently and issues separate tokens. This means you can authorize Cursor for one Vercel account and Claude for Desktop for another, and each client will see only the projects and teams accessible to its authorized user. Project-scoped URLs (vercel mcp --project) are also per-client; running vercel mcp --project from Cursor's linked project does not affect VS Code's configuration. Each client's token is stored locally and never shared.
Vercel MCP performance and rate limits. Vercel's MCP endpoint is a production service backed by Vercel's infrastructure. Tool calls are subject to Vercel's standard API rate limits, which are generous for authenticated users. If you hit a rate limit, Cursor will display an error; wait a few seconds and retry. Batch operations like list_deployments with a wide time window may take longer; use since and until filters to narrow the scope. The endpoint is designed for interactive use in Cursor; for bulk operations or CI/CD, use the Vercel CLI or API directly. Most tool calls complete in under 1 second.
Integrating Vercel MCP with other MCP servers. Cursor supports multiple MCP servers in the same mcp.json file. You can run Vercel MCP alongside GitHub MCP, GitLab MCP, or other servers. Each server is independent and maintains its own connection and authentication. In chat, specify which server's tools you want to use by mentioning the project or service name. For example, "Deploy my Next.js app to Vercel" will use Vercel tools, while "Create a pull request on GitHub" will use GitHub tools. Keep your mcp.json organized and test each server separately before combining them. See GitHub MCP Server Cursor IDE Setup and GitLab MCP Server Cursor IDE Setup for integration examples.
Frequently Asked Questions
Is https://mcp.vercel.com still the official endpoint in 2026?
Yes. Vercel's MCP page, Cursor snippet, add-mcp examples, vercel mcp CLI page, and security notes all use that host. A bare HTTP fetch of the URL returned 401 Unauthorized, which is what you want from an OAuth-gated MCP server, not a missing host.
Does the Vercel MCP server use a Personal Access Token in Cursor?
Not on the path Vercel documents for Cursor. The official snippet is a remote url plus the Needs login OAuth prompt. A token-and-npx block belongs to other clients or to older copy, not to this page.
Do I need mcp-remote for Cursor?
Not for Cursor. Vercel publishes npx + mcp-remote + https://mcp.vercel.com for Gemini Code Assist and Gemini CLI. Cursor uses "url": "https://mcp.vercel.com".
Do I need the Vercel CLI to set up Cursor MCP?
No, not for the manual Cursor file. You need the CLI if you want vercel mcp or vercel mcp --project to write the config. You need npx if you use add-mcp.
What does vercel mcp --project do?
Vercel's CLI page: it sets up project-specific MCP access for the currently linked project instead of the shared endpoint, so the session is scoped to that project. The published URL template on that page is truncated. Inspect the url the command writes rather than guessing the path.
Can Vercel MCP deploy, or only read status?
The current tools page documents deploy_to_vercel and several buy_* tools in addition to list/get tools. Launch-era blog copy said read-only. Check Available Tools after you connect, and approve writes yourself.
Does Vercel MCP expose secret environment variable values?
The official tools list has no environment-variable dump tool. get_project returns project details including framework, domains, and latest deployment. Do not assume plaintext secrets appear in that payload.
Can my whole team connect to the same Vercel project this way?
Each person adds the same url and completes their own OAuth grant. Vercel says the AI system gets the same access as that user's Vercel account. It is not a shared token.
Is there a separate bill for Vercel MCP?
The pages opened for this rewrite do not publish a standalone MCP-connection price. You stay on the Vercel plan you already pay for. Purchase tools (buy_pro, buy_credits, buy_addon, buy_domain) charge the team's payment method when you confirm.
Which Cursor config file should I use?
Use ~/.cursor/mcp.json for a Vercel connection you want everywhere. Use .cursor/mcp.json when one project needs the shared endpoint or the --project URL. The official block has no secret.
Can I run Vercel MCP and GitHub MCP at once?
Yes. They are independent mcpServers entries. Configure GitHub from GitHub MCP Server Cursor IDE Setup and GitLab from GitLab MCP Server Cursor IDE Setup. Tell Cursor which host you mean in the prompt.
What should I do if Vercel MCP tools are slow or timing out?
Vercel's MCP endpoint is designed for interactive use. If a tool times out, check your network connection and confirm https://mcp.vercel.com is reachable. For large queries (e.g., listing deployments over a long time window), use since and until filters to narrow the scope. If timeouts persist, check Cursor's MCP Logs for error details and contact Vercel support.
Looking for GitHub, GitLab, Netlify, or Cloudflare?
This URL is Vercel projects, deployments, build logs, analytics, and Toolbar threads through Vercel's official MCP server. GitHub repositories and pull requests are on GitHub MCP Server Cursor IDE Setup. GitLab issues and merge requests are on GitLab MCP Server Cursor IDE Setup. Netlify sites are on Netlify MCP Server Cursor IDE Setup. Cloudflare is on Cloudflare MCP Server Cursor IDE Setup. Do not add GitHub or GitLab keys to the Vercel url block.