MCP Integration
Connect VULK to Claude, Claude Code, Cursor, Windsurf, or any MCP-compatible AI client, by signing in or with an API key.
MCP Integration
MCP (the Model Context Protocol) lets an AI assistant work with your VULK account. There are two ways to connect, and they do different things:
| Sign in (remote connector) | API key (npm package) | |
|---|---|---|
| How you connect | Add one address to your assistant, sign in to VULK, press Allow access | Run npx -y vulk-mcp-server with an API key |
| What the assistant can do | List and read your projects, see your plan, credits and usage, create a project or send the next instruction to one (this spends credits), read the progress of a request and stop it | Create, edit, deploy and inspect projects |
| Plans | Any VULK account. Building spends the credits of your plan; reading project files needs a plan with source export | Team, Max, Business, or a custom enterprise plan |
| Ending the connection | Remove the app in Settings › Integrations › Connected apps | Delete the API key |
Connect with a sign-in
Use this when you want your assistant to work with your VULK projects without handling an API key. Nothing is installed: your assistant talks to VULK over HTTPS, and you approve the connection once, in VULK.
The address to add is:
https://app.vulk.dev/mcpClaude (claude.ai and the desktop app)
- Open Customize, then Connectors, choose + Add, then Add custom connector.
- Enter a name (for example
VULK) and the addresshttps://app.vulk.dev/mcp, then choose Continue. - Claude reads how VULK signs people in and fills the authentication settings itself (Sign in now and Register automatically). Leave them as they are and choose Add.
- On the connector's page, choose Connect. Claude opens VULK in your browser. Sign in if VULK asks you to, then choose Allow access.
- In a conversation, switch the connector on from the + menu, under Connectors. Claude asks you to approve each use of a VULK tool before it runs.
On Team and Enterprise plans an owner first adds the connector under Organization settings, Connectors (Add, then Custom, then Web); each member then connects from Customize, Connectors.
Claude Code
claude mcp add --transport http vulk https://app.vulk.dev/mcpThen run /mcp inside Claude Code, choose vulk, and sign in when it opens VULK in your browser.
Other assistants
Add the same address as a remote (HTTP) MCP server in any client that supports remote servers with sign-in. The client opens VULK in your browser and asks for your approval.
What you approve
VULK opens a screen titled Connect {app} to your VULK account?, where the app is the assistant you are connecting. It lists exactly what the app will be able to do. For a connection that can build, that is:
- Read your projects: their names, status and files
- Create and change your projects using your VULK plan and credits; stop running operations
- Read your plan, credits and usage
An app that asks only to read gets only the read lines, and the screen then says: This connection is read-only. It cannot create, change, publish or delete anything. Choose Allow access to connect, or Cancel. After you choose, VULK sends you back to the app.
The name on that screen is the one the app gave itself; VULK does not check it. Only approve a connection you have just started yourself.
What the assistant can do
The sign-in connector gives your assistant nine tools. Six of them only read; three can start, continue or stop work.
| Tool | What it does |
|---|---|
| list_projects | Lists your projects, newest first: the id to use with the other tools, the title, the kind and when it was created. Up to 50 at a time. |
| get_project | Describes one project: its title, how many versions were built, how many files the latest holds, the status of the last version, and the preview and live addresses when they exist. |
| get_project_files | Lists the files of the project's delivered version (path and size), or returns the text of one file. Large files are cut at 200,000 characters, and the answer says so. Source export is part of every paid plan; an account without one is told so. |
| get_usage | Reports your plan, its status and renewal date, your credit balance, and how much was generated in the last 30 days. |
| open_billing | Returns the link to your billing and invoices page. Nothing is bought or changed by calling it. |
| get_operation | Reads the saved state of one create or continue request: its status, the replies or questions VULK has for you, and the preview and editor links. Reading never starts, retries or charges anything. |
| create_project | Starts building a web app or website from your brief. It uses the same generation engine, plan and credits as the editor, and it can provision a project backend or generate media. It returns a receipt, not a finished build. |
| continue_project | Sends the next instruction to a project you already have, with the same engine, plan and credits. It also returns a receipt. |
| stop_operation | Asks VULK to stop one request. Work a provider has already accepted can still use credits. Asking twice is safe. |
There is no tool to publish a site, buy credits, change your plan or delete a project.
An app that was connected with read access only is shown the read tools and nothing else. If it tries a build tool anyway, it is told that the connection was not granted that permission.
How building works
Creating a project is not instant, so it is split in two steps.
- You ask your assistant for something, for example "Create a VULK landing page for my bakery." The assistant calls create_project with your brief (up to 8,000 characters) and a
request_id, a fresh UUID it makes up for this one action. - VULK checks your plan and credits and, if it accepts the request, answers with a receipt: the
request_id, the project id and a link to the editor. The receipt means the build has started. It does not mean the project is finished. - The assistant calls get_operation with the same
request_idto read progress, any questions VULK asks you, and the preview and editor links. It repeats this, with pauses, until the request is done. - To change the project afterwards, the assistant calls continue_project with the project id and the next instruction, and follows it with get_operation in the same way.
- To cancel, the assistant calls stop_operation with the
request_id.
The project is a normal VULK project: it shows up in your account and you can open it in the editor at any time. Building publishes nothing; publishing stays in the editor.
If a response gets lost, the assistant retries with the same request_id and the same arguments, and VULK treats that as the same request. A new request_id is a new request.
Credits
create_project and continue_project are paid generation actions. They use credits from your plan exactly as the same request typed into the editor would. They never buy credits and never change your plan. When your plan or credit balance cannot cover a request, VULK refuses it and the assistant is told so; check Settings › Billing and ask again. Stopping a request does not undo work a provider had already accepted, and that work can still use credits.
How long a connection lasts
Your assistant renews its access on its own. A connection lasts 90 days at most, however often it is renewed; after that you approve it again. You can hold up to 50 connected apps and 20 unanswered approval screens at a time.
Ending a connection
Open Settings › Integrations › Connected apps, find the app and choose Remove. It loses access straight away.
Run the npm package with an API key
Everything from here on is about the vulk-mcp-server npm package, which uses an API key instead of a sign-in and can create, edit and deploy projects. It is a separate server from the sign-in connector above: a few tool names (list_projects, get_project, get_project_files, get_usage, create_project) appear in both, but the two are not interchangeable.
Prerequisites
- A VULK account on Team, Max, Business, or a custom enterprise plan
- An API key from vulk.dev/settings/api-keys
- Node.js 18+ installed
Installation
The MCP server runs via npx — no global install required:
npx -y vulk-mcp-serverConfiguration
Add the following to your editor's MCP configuration:
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"vulk": {
"command": "npx",
"args": ["-y", "vulk-mcp-server"],
"env": {
"VULK_API_KEY": "vk_sk_your_key_here"
}
}
}
}Cursor
Add to your Cursor MCP settings:
{
"mcpServers": {
"vulk": {
"command": "npx",
"args": ["-y", "vulk-mcp-server"],
"env": {
"VULK_API_KEY": "vk_sk_your_key_here"
}
}
}
}Windsurf
{
"mcpServers": {
"vulk": {
"command": "npx",
"args": ["-y", "vulk-mcp-server"],
"env": {
"VULK_API_KEY": "vk_sk_your_key_here"
}
}
}
}VS Code
Add to your VS Code settings:
{
"mcp": {
"servers": {
"vulk": {
"command": "npx",
"args": ["-y", "vulk-mcp-server"],
"env": {
"VULK_API_KEY": "vk_sk_your_key_here"
}
}
}
}
}Getting Your API Key
- Go to vulk.dev/settings/api-keys
- Click Create API Key
- Copy the key (it starts with
vk_sk_) - Add it as
VULK_API_KEYin your MCP config
Your API key is shown only once when created. Store it securely. If you lose it, create a new one.
Tools in the npm package
The package provides these tools:
| Tool | Description |
|---|---|
| create_visual_brief | Turn an idea, a reference, a URL, a Figma file, a screenshot or a moodboard into a brief VULK can build from. Read-only. |
| create_project | Generate a general VULK project from a prompt |
| generate_immersive_site | Generate a 3D/WebGL, cinematic, video-rich or moodboard-driven project. Creates a project and may use credits. |
| edit_project | Apply a change, described in plain language, to an existing project |
| list_projects | List the projects on your account |
| get_project | Get a project's details with its preview and editor addresses |
| get_project_files | Get a project's file list. File content is opt-in, redacted and size-limited. |
| deploy_project | Deploy a project to a live address |
| list_models | List the models available to your account |
| get_usage | Check your credits, usage and rate limits |
| subscribe | Return the VULK pricing link |
Older short names (generate, edit, list, get, files, deploy, models, usage) still work for existing setups.
Usage Examples
Once configured, you can use natural language in your AI editor:
- "Create a VULK project for a task management app with auth and a dashboard"
- "List my VULK projects"
- "Deploy my latest VULK project" (npm package)
- "Show me the files in my latest VULK project"
- "How many credits do I have left?"
- "Continue my VULK project: add a pricing section under the hero"
Authentication with an API key
Every request of the npm package is authenticated using your VULK_API_KEY. The key is sent as a Bearer token to the VULK API. Requests without a valid key are rejected with a 401 error.
Rate Limits
MCP requests follow the same rate limits as the VULK API. See API Overview for details.
Troubleshooting
"This request is no longer valid" (sign-in)
The approval screen expired, was already answered, or was opened with a different VULK account. Go back to your assistant and start the connection again.
"Connection limit reached" (sign-in)
Your VULK account already has the maximum number of connected apps (50) or unanswered approval screens (20). Remove an app you no longer use, or wait a few minutes, then start the connection again from your assistant.
Your assistant asks you to sign in again (sign-in)
A connection lasts 90 days at most, and ends sooner if you remove the app. Approve it again from your assistant.
"This connection was not granted the projects.write permission" (sign-in)
The app was connected with read access only. Remove it in Settings › Integrations › Connected apps, then connect it again and approve the screen that lists Create and change your projects.
"VULK could not admit this operation … (HTTP 402)" (sign-in)
Your plan or credit balance cannot cover the request. Check Settings › Billing, then ask your assistant again.
A build never shows a receipt (sign-in)
If the answer says unconfirmed, VULK had not confirmed the request within about 20 seconds. Ask your assistant to read it with get_operation. If there is still no receipt, it should retry with the same request_id and the same arguments, not start another request.
"VULK_API_KEY not set"
Make sure the env block in your MCP config includes VULK_API_KEY with a valid key.
"Unauthorized" errors
Your API key may have expired or been revoked. Create a new one at vulk.dev/settings/api-keys.
MCP server not connecting
Ensure Node.js 18+ is installed and npx is available in your PATH. Try running npx -y vulk-mcp-server in a terminal to verify.
npm Package
The MCP server is published as vulk-mcp-server on npm.