Varity MCP Server
The Varity MCP server (@varity-labs/mcp) gives AI editors a full set of tools for the full build and deploy workflow. It runs locally via stdio. Install with the current beta tag.
Prerequisites
Section titled “Prerequisites”- Node.js 20+ (runs the MCP server)
- Python 3.8+ (needed for varitykit CLI)
- varitykit (install with:
pipx install varitykit)
Add to .cursor/mcp.json in your project root:
{ "mcpServers": { "varity": { "command": "npx", "args": ["-y", "@varity-labs/mcp@beta"] } }}Restart Cursor. The Varity tools appear in the MCP tool list.
Run once from any directory:
claude mcp add varity -- npx -y @varity-labs/mcp@betaClaude Code picks up the server automatically on the next conversation.
Add to .vscode/mcp.json:
{ "mcpServers": { "varity": { "command": "npx", "args": ["-y", "@varity-labs/mcp@beta"] } }}Add to ~/.codeium/windsurf/mcp_config.json:
{ "mcpServers": { "varity": { "command": "npx", "args": ["-y", "@varity-labs/mcp@beta"] } }}Tools Reference
Section titled “Tools Reference”The server exposes a full set of tools. Read-only tools run safely with no side effects. Destructive tools create files or deploy infrastructure.
varity_doctor: Check environment setup
Section titled “varity_doctor: Check environment setup”Verify that your development environment is ready to build and deploy Varity apps. Checks Node.js, npm, varitykit CLI installation, and authentication status.
No parameters required.
Annotations: readOnlyHint: true
Example prompt: “Check if my environment is set up for Varity”
varity_login: Authenticate with Varity
Section titled “varity_login: Authenticate with Varity”Authenticate with Varity using a deploy key or browser-based login. Required before deploying apps.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
method | "deploy-key" | "browser" | No | "browser" | Authentication method |
deploy_key | string | No | none | Deploy key (required when method is "deploy-key") |
Annotations: destructiveHint: true (writes credentials to local config)
Example prompt: “Log in to Varity” or “Authenticate with my deploy key”
varity_search_docs: Search documentation
Section titled “varity_search_docs: Search documentation”Search Varity docs for guides, API references, and tutorials.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | none | Search query (e.g., “database setup”, “how to deploy”) |
maxResults | number | No | 3 | Maximum results to return |
Annotations: readOnlyHint: true
Example prompt: “Search the Varity docs for how to set up authentication”
varity_cost_calculator: Estimate costs
Section titled “varity_cost_calculator: Estimate costs”Compare Varity hosting costs against Vercel, Render, and Railway.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
users | number | Yes | none | Estimated monthly active users |
storage_gb | number | No | 10 | Storage needed in GB |
has_database | boolean | No | true | Whether the app uses a database |
has_auth | boolean | No | true | Whether the app uses authentication |
Annotations: readOnlyHint: true
Example prompt: “How much would it cost to host a SaaS app with 500 users on Varity?”
varity_init: Create a new app (deferred path)
Section titled “varity_init: Create a new app (deferred path)”Scaffold a starter app locally. This path is currently deferred for public MVP; prefer deploying an existing repository with varity_deploy. The recommended flow is to build your app with your AI coding tool, then deploy it.
varity_install_deps: Install npm dependencies
Section titled “varity_install_deps: Install npm dependencies”Install dependencies for a Varity project. Runs npm install for all packages or installs specific packages.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
path | string | No | Current directory | Project directory to install dependencies in |
packages | string[] | No | none | Specific packages to install (e.g., ["axios", "lodash"]). If omitted, installs all dependencies. |
Example prompt: “Install dependencies for my project” or “Install axios and lodash”
varity_dev_server: Manage local dev server
Section titled “varity_dev_server: Manage local dev server”Start, stop, or check the status of your local development server. Returns the localhost URL for previewing your app.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
action | "start" | "stop" | "status" | Yes | none | Action to perform |
path | string | No | Current directory | Project directory |
port | number | No | 3000 | Port to run the dev server on. If busy, auto-selects next available port and persists to varity.config.json. |
Example prompt: “Start the dev server” or “Check dev server status”
varity_build: Build for production
Section titled “varity_build: Build for production”Build the project for production. Auto-detects framework from package.json. Run before deploying or to verify the project compiles.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
path | string | No | Current directory | Path to the project directory |
Example prompt: “Build my project”
varity_open_browser: Open URL in browser
Section titled “varity_open_browser: Open URL in browser”Open a URL in the user’s default browser. Use after deploying to show the live app or after starting the dev server.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Yes | none | URL to open in the default browser |
Example prompt: “Open the deployment in my browser”
varity_create_repo: Create GitHub repository
Section titled “varity_create_repo: Create GitHub repository”Create a new GitHub repository and push your project to it. Useful for getting your code into version control before deploying.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | none | Repository name (lowercase, hyphens allowed) |
description | string | No | none | Short description for the repo |
visibility | "public" | "private" | No | "public" | Repository visibility |
github_token | string | No | none | GitHub personal access token with repo scope |
Annotations: destructiveHint: true (creates an external GitHub repository)
Example prompt: “Create a new GitHub repo called my-dashboard and push my project”
varity_deploy: Deploy to production
Section titled “varity_deploy: Deploy to production”Build and deploy the current project. Auto-detects framework (Next.js, React, Vue), builds it, and returns a live URL.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
path | string | No | Workspace root | Path to the project directory |
Annotations: destructiveHint: true (deploys real infrastructure)
Example prompt: “Deploy this project to Varity”
varity_deploy_status: Check deployments
Section titled “varity_deploy_status: Check deployments”List all deployments or get status of a specific one. Shows URL, status, framework, size, and creation time.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
deployment_id | string | No | none | Specific deployment ID (omit to list all) |
Annotations: readOnlyHint: true
Example prompt: “Show me the status of my deployments”
varity_deploy_logs: Get build logs
Section titled “varity_deploy_logs: Get build logs”Get build and deployment logs for debugging failed or recent deployments.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
deployment_id | string | Yes | none | The deployment ID to get logs for |
limit | number | No | 100 | Maximum log lines to return |
Annotations: readOnlyHint: true
Example prompt: “Show me the build logs for deployment abc123”
varity_migrate: Migrate from Vercel to Varity
Section titled “varity_migrate: Migrate from Vercel to Varity”Migrate a Vercel project to Varity in one step: clone the GitHub repository, remove Vercel-specific artifacts (vercel.json, @vercel/* packages, image optimizer config, env var renames), and deploy the transformed app to Varity.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
github_url | string | Yes | none | GitHub repository URL to migrate (e.g. https://github.com/user/my-app) |
dry_run | boolean | No | false | Preview what would change without deploying |
Annotations: destructiveHint: true (clones a repo and deploys infrastructure)
Example prompt: “Migrate my Vercel app at https://github.com/user/my-app to Varity”
Response Format
Section titled “Response Format”All tools return JSON with a consistent structure:
// Success{ success: true, data: { /* tool-specific data */ }, message: "Human-readable summary"}
// Error{ success: false, error: { code: "ERROR_CODE", message: "What went wrong", suggestion?: "How to fix it" }}Typical Workflow
Section titled “Typical Workflow”Here is the practical build-and-deploy flow using the MCP tools:
Deploy an existing app:
- “Check if my environment is ready” →
varity_doctor - “Install dependencies” →
varity_install_deps - “What will this cost for 200 users?” →
varity_cost_calculator - “Start the dev server” →
varity_dev_server→varity_open_browser - “Build for production” →
varity_build - “Deploy this” →
varity_deploy - “Did the deploy succeed?” →
varity_deploy_status - “Show me the build logs” →
varity_deploy_logs(if needed)
Migrating from Vercel:
- “Check if my environment is ready” →
varity_doctor - “Migrate my Vercel app at https://github.com/user/my-app” →
varity_migrate - (Done. The app is live on Varity infrastructure.)
Troubleshooting
Section titled “Troubleshooting”“Cannot find module @varity-labs/mcp”
Make sure Node.js 20+ is installed. Run node --version to check.
Deploy tools fail with “varitykit not found”
Install the CLI: pipx install varitykit. Run varitykit doctor to verify.
Server not showing in Cursor
Restart Cursor after adding the config. Check that .cursor/mcp.json is valid JSON.
Server not showing in Claude Code
Run claude mcp list to verify the server is registered. Re-add with claude mcp add varity -- npx -y @varity-labs/mcp@beta.
HTTP Transport (Claude.ai, ChatGPT, Browser-Based LLMs)
Section titled “HTTP Transport (Claude.ai, ChatGPT, Browser-Based LLMs)”The MCP server supports two transports:
- stdio (default): for desktop editors like Cursor, Claude Code, VS Code, Windsurf
- HTTP: for browser-based AI tools like Claude.ai and ChatGPT
Hosted MCP
Section titled “Hosted MCP”Connect directly to the hosted Varity MCP at:
https://mcp.varity.soClaude.ai: Settings → Connectors → Add MCP Server → URL: https://mcp.varity.so
ChatGPT: Settings → Connectors → Create → MCP server URL: https://mcp.varity.so
The first time you connect, you’ll authenticate via the Varity login page.
Self-Hosted HTTP
Section titled “Self-Hosted HTTP”Run the HTTP server locally for development:
npx -y @varity-labs/mcp@beta --transport http --port 3100This starts the MCP server at http://localhost:3100/mcp.
llms.txt Alternative
Section titled “llms.txt Alternative”For LLMs without MCP support, use the docs context files:
- Summary:
https://docs.varity.so/llms.txt - Full context:
https://docs.varity.so/llms-full.txt
Support
Section titled “Support”- Documentation
- Discord: ask in #general
- Varity on GitHub