The v0 MCP connector routes your AI agent's tool calls to v0's own MCP server through Scalekit. Each user connects their own v0 access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 5 tools.
- Tools
- 5
- What they doRead · write · destructive
- 3 · 2 · 03 read2 write0 destructive
- Users sign in with
- Access token
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the v0 MCP connection
In AgentKit > Connections, create a v0 MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Console steps with screenshots
Register your v0 API key with Scalekit so it can authenticate and proxy requests on behalf of your users. v0 MCP uses Bearer Token authentication.
-
Get a v0 API key
- Go to v0.dev and sign in to your account.
- Click your workspace name in the top-left corner and select Settings.
- In the left sidebar, click API Keys.
- Click New Key, give it a name (e.g.
Agent Auth), and copy the generated key.

-
Create a connection in Scalekit
- In the Scalekit dashboard, go to AgentKit → Connections → Create Connection.
- Search for v0 MCP and click Create.
- Note the Connection name — use this as
connection_namein your code (e.g.,v0mcp).
-
Add a connected account
Connected accounts link a specific user identifier in your system to a v0 API key. Add one in the dashboard to test. In production, each user adds their own through the authorization link: they enter their credentials on the page it opens.
In the dashboard, to test
- Open the connection and click the Connected Accounts tab → Add account.
- Fill in Your User’s ID and API Key, then click Save.
From your backend, if your app already has the credentials
For example, when users enter them on a settings page in your app:
import { ConnectorStatus } from '@scalekit-sdk/node'const authorizationDetails = {details: {case: 'staticAuth',value: { details: { token: 'your-v0-api-key' } },},}let { connectedAccount } = await scalekit.actions.upsertConnectedAccount({connectionName: 'v0mcp',identifier: 'user_123',authorizationDetails,})// Make sure the account is ACTIVE before the first tool call.if (connectedAccount?.status !== ConnectorStatus.ACTIVE) {;({ connectedAccount } = await scalekit.actions.upsertConnectedAccount({connectionName: 'v0mcp',identifier: 'user_123',authorizationDetails,}))}authorization_details = {"static_auth": {"token": "your-v0-api-key"}}response = scalekit_client.actions.upsert_connected_account(connection_name="v0mcp",identifier="user_123",authorization_details=authorization_details,)# Make sure the account is ACTIVE before the first tool call.if response.connected_account.status != "ACTIVE":response = scalekit_client.actions.upsert_connected_account(connection_name="v0mcp",identifier="user_123",authorization_details=authorization_details,)
-
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'v0mcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize v0 MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'v0mcp_findchats',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "v0mcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize v0 MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="v0mcp_findchats",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their v0 MCP server credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolv0mcp_findchatsFind all chats using the v0 Platform API.Read-onlyFind v0 Chats
Find all chats using the v0 Platform API. Returns the list of chats owned by the authenticated user, including each chat's ID and metadata. Use this to discover chat IDs for v0mcp_getchat or v0mcp_sendchatmessage.
Inputs
This tool takes no inputs.
v0mcp_getchatGet a specific chat by ID using the v0 Platform API.Read-onlyGet v0 Chat
Get a specific chat by ID using the v0 Platform API. Returns the full chat, including its messages and generated UI. Obtain a chat ID from v0mcp_findchats or v0mcp_createchat.
Inputs
chatIdstringrequired- The ID of the chat to retrieve.
v0mcp_getuserGet user information using the v0 Platform API.Read-onlyGet User Info
Get user information using the v0 Platform API. Returns details about the authenticated v0 account, such as plan and billing context.
Inputs
scopestring- Optional scope parameter.
v0mcp_createchatCreate a new chat using the v0 Platform API.WriteCreate v0 Chat
Create a new chat using the v0 Platform API. Starts a fresh v0 conversation from an initial message and returns the created chat, including generated UI and a chat ID you can use with v0mcp_getchat or v0mcp_sendchatmessage.
Inputs
messagestringrequired- The initial message to start the chat with.
attachmentsarray- Attachments to include with the initial message.
chatPrivacystring- Privacy level for the chat.one of
publicprivateteam-editteamunlisteddefaultprivate designSystemIdstring- The ID of a design system to apply to this chat.
modelConfigurationobject- Model configuration for the chat.
projectIdstring- Associates the chat with a specific project.
responseModestring- Controls how the response is delivered.one of
syncasyncdefaultsync systemstring- System-level context or background for the chat.
v0mcp_sendchatmessageSend a new message to an existing chat using the v0 Platform API.WriteSend Chat Message
Send a new message to an existing chat using the v0 Platform API. Continues an existing v0 conversation with a follow-up message and returns the updated chat. Obtain a chat ID from v0mcp_findchats or v0mcp_createchat.
Inputs
chatIdstringrequired- The ID of the chat to add the message to.
messagestringrequired- The message content to send.
attachmentsarray- Attachments to include with the message.
modelConfigurationobject- Model configuration for processing the message.
No tools match.