Skip to main content
Glama
varity-labs

Varity MCP Server

Official
by varity-labs

@varity-labs/mcp

npm License: MIT Status: Beta

The published Varity MCP package for Cursor, Claude Code, VS Code, Windsurf, and other MCP clients.

This repository contains only @varity-labs/mcp, the npm MCP server. It is a thin tool wrapper around varitykit and Varity's gateway APIs; it is not the Python CLI, the portal, the dormant SDK, or an app-store package.

The Varity MCP Server lets your AI editor build, deploy, and manage supported apps in production for you. Each paid app bills up to a fixed monthly maximum for the resources it reserves, prorated by running time; static sites are free for verified accounts. One server, every AI client, zero commands.

Browser usage: see the browser usage guide for Claude.ai or ChatGPT browser. Quick start: pick your editor below and run one command.

Install

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "varity": {
      "command": "npx",
      "args": ["-y", "@varity-labs/mcp"]
    }
  }
}

Claude Code

claude mcp add varity -- npx -y @varity-labs/mcp

VS Code with Copilot

  1. Command Palette → MCP: Add Server

  2. Select Command (stdio)

  3. Command: npx -y @varity-labs/mcp

  4. Name: Varity

Windsurf

Add to mcp_config.json:

{
  "mcpServers": {
    "varity": {
      "command": "npx",
      "args": ["-y", "@varity-labs/mcp"]
    }
  }
}

Claude.ai / ChatGPT (HTTP)

The hosted process is reachable at:

https://mcp.varity.so

Hosted HTTP requires OAuth and intentionally exposes only varity_search_docs, an in-process read of public documentation. Every filesystem, process, deployment, customer-data, and mutation tool remains stdio-only. Hosted OAuth is not currently certified end to end; use the stdio package for every deployment or owner-scoped operation.

Any MCP-compatible client (stdio)

{
  "mcpServers": {
    "varity": {
      "command": "npx",
      "args": ["-y", "@varity-labs/mcp"]
    }
  }
}

Related MCP server: CreateOS MCP

What you can do from your AI editor

The MCP exposes Varity's deploy surface so your AI tool can take action — not just generate code. Try prompts like:

Deploy your own code

  • "Deploy this project to production"

  • "Ship this app live"

  • "What would it cost to deploy this on Varity?"

Deploy a certified template (one command, no code required)

  • "What templates can Varity deploy?"

  • "Spin up Agent Zero"

  • "Deploy a private app template for me"

Manage live deployments

  • "Show my deployments"

  • "What's the URL of my last deploy?"

  • "Stop my-app and stop billing it"

  • "Get the build logs for my deployment"

Migrate from Vercel

  • "Migrate my Vercel app at github.com/me/my-app to Varity"

  • "Preview what changes the migration will make"

Docs and pricing

  • "Search Varity docs for environment variables"

  • "How much would it cost to host a 5,000-user API on Varity?"

  • "What's my monthly cost going to be if my app gets traction?"

Tools

Tool

What it does

varity_search_docs

Search the Varity documentation

varity_cost_calculator

Estimate your monthly cost before you deploy

varity_doctor

Check that your environment is ready to deploy

varity_login

Authenticate with your deploy key

varity_install_deps

Install project dependencies

varity_build

Build the project

varity_open_browser

Open a URL locally (stdio transports only)

varity_dev_server

Start the local development server (stdio transports only)

varity_create_repo

Create a GitHub repository and push the project

varity_deploy

Deploy the current project to production

varity_deploy_status

Check the status of a deployment

varity_deploy_logs

Read build and runtime logs

varity_delete_deployment

Stop a deployment and end its billing

varity_set_env

Set or replace environment variables on a live deployment, then redeploy

varity_redeploy

Reapply an existing deployment's saved configuration; unchanged input may be a no-op

varity_list_templates

List certified gateway-owned Varity templates

varity_template_info

Show full details for one certified template

varity_deploy_template

Deploy a certified template by ID

varity_list_agents

Backward-compatible alias for varity_list_templates

varity_agent_info

Backward-compatible alias for varity_template_info

varity_deploy_agent

Backward-compatible alias for varity_deploy_template

varity_migrate

Migrate an app from Vercel to Varity

Templates

Varity templates come from the gateway-owned certified catalog. Ask your AI editor "what templates can I deploy?" or "deploy Agent Zero for me" and it will list the live catalog, inspect that template contract, and deploy it through varitykit app deploy --template <id>.

Each template reserves different hardware. Use varity_template_info to see the required environment variables, private/public access mode, resources, hardware profile, and certification state before deploying.

End-to-end example

From empty folder to deployed app, all in natural language:

You: "Make me a simple landing page for my coffee shop and deploy it"
AI:  Wrote the landing page, ran the build, deployed live at
     https://varity.app/coffee-shop/

You: "Now deploy Agent Zero"
AI:  Agent Zero is certified and does not require environment variables.
AI:  Deployed Agent Zero at https://varity.app/my-agent/

How Varity is priced

  • Fixed monthly maximum per app: set by the resources your app reserves, billed prorated by running time. Static sites are free for verified accounts.

  • No usage meters: for an unchanged profile, traffic alone does not change the price. Changing resources, services, replicas, accelerators, or app count can.

  • Preset resource menu: dynamic apps select a Managed Cloud preset (Starter, Growth, Scale, Pro); presets differ in reserved resources, not gated features.

Ask your AI editor "how much would this app cost on Varity?" and it will use varity_cost_calculator to estimate before you deploy.

Transports

stdio (default)

For desktop AI editors. Cursor, Claude Code, VS Code, Windsurf.

npx -y @varity-labs/mcp

HTTP

For browser-based AI tools. Claude.ai, ChatGPT.

npx -y @varity-labs/mcp --transport http --port 3100

The process is hosted at https://mcp.varity.so, but authenticated hosted use is not currently certified. Its HTTP tool allowlist contains only varity_search_docs; use stdio for every other operation.

Prerequisites

  • Node.js >= 22.11 (the current supported LTS baseline; EOL Node 18/20 are unsupported)

  • For deployment: pip install varitykit

Cost

Varity bills each paid deployment up to a fixed monthly maximum for the reserved profile, prorated by running time. For an unchanged profile, the bill does not grow with traffic, requests, or build minutes. Static sites are free for verified accounts. Use the varity_cost_calculator tool from your AI editor for a detailed estimate before you deploy.


Deploy supported apps from your AI coding tool. Resource-based pricing with a fixed monthly maximum per app — no usage meters.

Documentation · GitHub · Discord

Available Tools

18 tools
varity_agent_infoShow AI Agent Template DetailsA

Show full details for a single AI agent template: image, ports, resources, required and optional environment variables, estimated monthly cost, access mode (web/SSH/Telegram), and operator notes. Use this when the developer has picked an agent (or is comparing 2-3) and wants to know exactly what they'll need to provide before deploying. Pass the agent slug from varity_list_agents (one of: hermes, openclaw, agent-zero, autoresearch, eliza-venice).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe agent slug. One of: hermes, openclaw, agent-zero, autoresearch, eliza-venice.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. It enumerates exactly what information is returned (image, ports, resources, env vars, cost, access mode, operator notes). Implies read-only operation. Could explicitly state no side effects, but overall clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. First sentence lists contents, second provides usage guidance. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple tool with one param, no output schema, no annotations, description sufficiently covers what it returns. Could mention prerequisites like authentication, but likely implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter 'name' has enum values fully described in schema (100% coverage). Description adds context that the slug should come from varity_list_agents, providing extra value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool shows full details for a single AI agent template, listing specific items. It differentiates from sibling tool varity_list_agents by specifying the input comes from that list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: when developer has picked an agent and wants specifics before deploying. Also tells to pass slug from varity_list_agents. Could add when not to use, but current guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_buildBuild ProjectA
Destructive

Build the project for production. Auto-detects framework from package.json. Run before deploying or to verify the project compiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the project directory (default: current directory)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true, and description adds that it auto-detects framework and verifies compilation. However, it lacks details on side effects like cleaning previous builds or dependency requirements. Description adds value but could be more thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with clear front-loading. First sentence states purpose, second adds usage context. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter and no output schema, the description covers purpose, usage timing, and auto-detection. Could mention output artifacts or prerequisites, but sufficient for a straightforward build tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'path'. Description adds meaning by noting auto-detection from package.json, implying the path should contain package.json. This enhances understanding beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool builds a project for production, with specific verb 'Build' and resource 'project'. It distinguishes from siblings like varity_dev_server by specifying production context and pre-deployment usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Run before deploying or to verify the project compiles.' Provides clear context, though does not explicitly list alternatives or when-not scenarios. Still strong guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_cost_calculatorCost CalculatorA
Read-only

Compare a deployment's real monthly cost on Varity vs Vercel/Railway/Render (or vs hyperscaler GPU for GPU workloads, PaaS can't run GPU at all). Varity charges a FLAT hardware-only price that never spikes with traffic; competitors meter bandwidth + invocations. Varity is always cheaper. Use whenever a developer asks about pricing, cost, hosting bills, traffic costs, or platform comparison. Pass subdomain for a specific live deployment's REAL cost, or app_profile for a pre-deploy estimate.

ParametersJSON Schema
NameRequiredDescriptionDefault
subdomainNoA live deployment's subdomain → returns THIS deployment's real cost (overrides app_profile)
app_profileNoPre-deploy estimate preset: static-site (flat $5/mo), web-app, web-app-db, ai-agent-cpu, ai-agent-gpuweb-app
has_databaseNoWhether the app uses a database (affects competitor base cost)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the tool is safe. The description adds that it computes a comparison and highlights the flat pricing model, which is transparent. However, it does not mention error handling or authorization requirements, but given the safety annotations, this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences), front-loads the main purpose, and follows with usage context and parameter guidance. Every sentence adds necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does not need to explain return values. It covers the main functionality, parameter modes, and comparison details. Missing are possible edge cases or error handling, but for a simple calculator tool it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the difference between subdomain and app_profile, and by listing the enum presets with specific cost for static-site, which is not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool compares deployment costs between Varity and competitors, with a specific verb 'compare' and resource 'cost'. It distinguishes itself from sibling tools (all other tools are for deployment, building, etc.) as the only cost calculator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use whenever a developer asks about pricing, cost, hosting bills, traffic costs, or platform comparison.' It also explains the two modes (subdomain for real cost, app_profile for estimate), providing clear context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_create_repoCreate GitHub RepositoryA
Destructive

Create a new GitHub repository and push the current project to it. For custom apps (the primary use case): pass the 'path' parameter with the local project directory, this creates an empty repo and pushes your actual code to GitHub. The GitHub URL is required for dynamic deployments, always call this before varity_deploy. For template-based quick-start: omit 'path' to create from the Varity SaaS template. Requires a GitHub personal access token (classic) with repo scope from https://github.com/settings/tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRepository name (lowercase, hyphens allowed, e.g. 'my-app')
pathNoAbsolute path to the local project directory to push to GitHub (e.g. '/home/user/my-app'). When provided, pushes the actual project code. Required for custom apps that will use varity_deploy with dynamic hosting. If omitted, creates a repo from the Varity SaaS template instead.
visibilityNoRepository visibilitypublic
descriptionNoShort description of your app (optional)
github_tokenNoGitHub personal access token (optional if GITHUB_TOKEN env var is set). Needs 'repo' scope.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description discloses that the tool creates an empty repo and pushes actual code, or creates from a SaaS template if no path is given. It also mentions the need for a GitHub token and the requirement to call before varity_deploy, providing critical behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a concise opening sentence, then a logical breakdown of two use cases, followed by a deployment ordering note, and finally a token requirement. Every sentence is informative and front-loaded, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers preconditions, use cases, and side effects well for a creation tool with no output schema. However, it does not explicitly state what the tool returns (e.g., the repository URL), which would be beneficial for the agent to know that it can capture the output for use in subsequent commands.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant meaning: it explains the dual behavior of the 'path' parameter (push code vs. template), clarifies that 'name' must be lowercase and hyphens allowed, and notes that 'github_token' can come from an environment variable. This enriches the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: creating a GitHub repository and pushing code. It distinguishes two primary use cases (custom apps with path vs. template without path), and differentiates from sibling tools by specifying its role in dynamic deployments before varity_deploy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidelines: when to use path (custom apps) vs. omit path (template quick-start), and when to call before varity_deploy. It also states the prerequisite of a GitHub token with repo scope, covering when and how to use the tool effectively.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_delete_deploymentDelete a Deployment and Stop Its BillingA

Delete an existing Varity deployment by name and stop its billing immediately. Use this when a developer says 'stop my ', 'shut down my deployment', 'I'm done with ', 'delete ', or when they no longer need a running app or agent. This closes the underlying compute lease and removes the deployment record, so usage charges stop accruing right away. Static (CDN-hosted) deployments also stop being billed after delete. Use varity_deploy_status or list deployments at https://varity.app/dashboard to confirm the name first if the developer is unsure.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe subdomain / app name of the deployment to delete. This is the slug in https://varity.app/<name>/. Example: 'my-hermes-bot' or 'mvp-static-test'.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavioral traits: stops billing immediately, closes compute lease, removes deployment record, and notes static deployments also stop billing. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is informative but slightly verbose; however, it is front-loaded with key purpose and each sentence adds value. Could be trimmed slightly but still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers all necessary context: behavior (deletion, billing stop), prerequisites (confirm name if unsure), and impact. Complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good parameter description for 'name'. The tool description adds example names but does not significantly enhance understanding beyond schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (delete deployment), the resource (Varity deployment), and key consequence (stop billing). It distinguishes from sibling tools by focusing on deletion and provides example user phrases. The verb 'delete' and noun 'deployment' are specific, and the text adds 'stop billing immediately' for clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists when to use: when developer says 'stop my <name>', 'shut down', etc. Also advises when not to use: suggests using varity_deploy_status or listing deployments to confirm name if unsure. Provides clear context for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_deployDeploy to ProductionA
Destructive

Deploy the current project to production on Varity. Automatically detects the framework (Next.js, React, Vue, Express, FastAPI, etc.), builds the project, and ships it live at https://varity.app//. Zero configuration required. Dramatically cheaper than Vercel / Railway / Render. Use this when a developer wants to deploy, publish, ship, or make their app live. If the developer wants to deploy a curated AI agent (Telegram bot, chat UI, etc.) rather than their own code, use varity_deploy_agent instead. To stop a deployment and its billing, use varity_delete_deployment.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoAbsolute path to the project directory (e.g. '/home/user/my-app'). IMPORTANT: always pass the full absolute path to the project root, the directory that contains package.json and varity.config.json. If omitted, the MCP server's working directory is used (which is rarely the correct project root). Use the project_path returned by varity_init as the value here.
app_nameNoCustom app name that controls the deployment URL: https://varity.app/{app_name}/. Must be URL-safe (lowercase letters, numbers, hyphens). If omitted, the project directory name is used. Use a different app_name than the directory to create named environments (staging, canary, etc.).
repo_urlNoGitHub repository URL for the app (e.g. 'https://github.com/user/my-app'). Required for dynamic deployments. If omitted, auto-detected from .git/config. Use the repo_url returned by varity_create_repo as the value here.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the description adds value by explaining the automatic framework detection, build process, and zero-config nature. However, it does not disclose potential side effects like overwriting previous deployments or billing start, but the mention of billing in the alt tool reference provides partial context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a focused paragraph with front-loaded main action. Each sentence serves a purpose, though it could be slightly trimmed without losing meaning. Overall efficient given the information conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and good annotations, the description covers purpose, usage context, alternatives, and basic behavior. It mentions the URL pattern but does not explain error handling or status checks. Still, it is sufficiently complete for a deploy tool with well-documented parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds cross-reference value by mentioning that repo_url can be taken from varity_create_repo and app_name controls the deployment URL, which is additional context beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Deploy the current project to production on Varity' with specific verb and resource. It distinguishes from sibling tools varity_deploy_agent and varity_delete_deployment by naming them explicitly, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Use this when a developer wants to deploy, publish, ship, or make their app live' and directs to alternatives for other use cases. It also mentions when to use varity_deploy_agent for curated AI agents and varity_delete_deployment to stop a deployment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_deploy_agentDeploy an AI Agent TemplateA

Deploy a curated AI agent from one of the 5 templates (hermes, openclaw, agent-zero, autoresearch, eliza-venice), accessible at https://varity.app//. Use this when the developer says 'deploy hermes', 'I want a Telegram bot', 'spin up agent-zero', or similar. Required environment variables (which the developer provides via the env parameter) vary per agent, call varity_agent_info first to see what's needed. Pass name to give the deployment a memorable URL slug. Use varity_delete_deployment to stop the deployment and its billing later.

ParametersJSON Schema
NameRequiredDescriptionDefault
envNoEnvironment variables to pass to the agent container, as a key-value object. Pass everything from the agent's required_env list (call varity_agent_info to see which). Example for hermes: { OPENAI_API_KEY: 'sk-...', TELEGRAM_BOT_TOKEN: '...', TELEGRAM_ALLOWED_USERS: '123,456' }
nameNoMemorable name for this deployment. Becomes the URL slug at varity.app/<name>/. Defaults to <agent>-<random> if omitted.
agentYesThe agent slug. One of: hermes, openclaw, agent-zero, autoresearch, eliza-venice. Run varity_list_agents to see all options.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that deployment makes the agent accessible at a URL and that env variables vary per agent. Since no annotations are present, it carries the full burden and adequately describes the mutation, though it lacks info on auth or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with core action, no wasted words. Every sentence adds meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 params and no output schema, the description covers purpose, usage guidance, and parameter details. It references sibling tools and setup steps, though it could mention error scenarios or default behaviors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline is 3. The description adds value by explaining the env parameter with example, name as URL slug, and agent as the list, going beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it deploys a curated AI agent from 5 templates and provides the URL. It distinguishes itself from siblings like varity_delete_deployment by specifying when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool (e.g., 'deploy hermes', 'I want a Telegram bot') and advises calling varity_agent_info first to get required env vars. It also references the alternative varity_delete_deployment for stopping.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_deploy_logsDeployment Info & LogsA
Read-only

Get build logs or deployment summary for a specific deployment. When full build logs exist (captured during varity_deploy or varity_build), returns the actual log lines. When only the deployment record exists, returns a structured summary receipt: URL, status, build size, build time, and a debug_tip pointing to varity_build for detailed output. Use this to get the live URL, check status, or confirm build metrics for a deployment. For detailed build error output (TypeScript errors, module-not-found, etc.), use varity_build, it captures the full compilation log with exact file/line numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of log lines to return (default: 100)
deployment_idYesThe deployment ID to get logs for

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses dual behavior: returns actual log lines if full logs exist, otherwise returns structured summary receipt. Adds context beyond readOnlyHint annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with verb and resource, no fluff. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains return types, references sibling for edge case, and covers all agent needs given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description adds context by linking parameters to behavior (limit used when logs exist) and implying deployment_id value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb and resource: 'Get build logs or deployment summary for a specific deployment.' It distinguishes from sibling varity_build by specifying what each tool retrieves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use: to get live URL, check status, confirm build metrics. Also provides a when-not: for detailed build errors, use varity_build.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_deploy_statusDeployment StatusA
Read-only

List deployments or get status of a specific deployment. Shows URL, status, framework, size, and creation time. Use this when a developer asks about their deployments, wants to check status, or needs to find a deployment URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject directory path, only show deployments for this project
limitNoMaximum number of deployments to return (default: 10, max: 50)
deployment_idNoSpecific deployment ID to check (optional, omit to list recent)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds behavioral details about the output (URL, status, framework, size, creation time). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. First sentence defines purpose and output, second sentence provides usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 optional parameters, readOnlyHint annotation, and no output schema, the description fully covers the tool's behavior and usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, baseline 3. Description adds context for each parameter: path 'only show deployments for this project', limit 'default 10, max 50', deployment_id 'optional, omit to list recent'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'List deployments or get status of a specific deployment' and lists the output fields. It distinguishes from sibling tools like varity_deploy, varity_delete_deployment, and varity_deploy_logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance: 'Use this when a developer asks about their deployments, wants to check status, or needs to find a deployment URL.' No explicit when-not-to-use, but the context of sibling tools implies alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_dev_serverDevelopment ServerA

Start, stop, or check the local development server. Returns the localhost URL for previewing the app.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject directory (default: current working directory)
portNoPort to run the dev server on (default: 3000). If this port is busy, the server auto-selects the next available port and persists it to varity.config.json so future starts use the same port automatically. You can also set this explicitly (e.g. port: 3031) to always start on a specific port.
actionYesAction to perform: start, stop, or check status of the dev server

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions return of localhost URL but does not disclose behavioral traits like auto-selection of port, persistence to config file, or any side effects. Parameter description covers some details, but main description lacks behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose. No extraneous information. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description mentions return of localhost URL, but lacks details for stop and status actions (e.g., what they return). No output schema exists, so description should cover return values for all actions. Missing error handling or state change information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and parameter descriptions (especially port) are detailed. The main description adds no additional parameter meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages a local development server with start, stop, and check actions, and specifies it returns a localhost URL. This distinguishes it from sibling tools like deploy or build.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (for local dev server management) but does not explicitly mention when not to use or alternatives. Implicit differentiation from siblings is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_doctorCheck EnvironmentA
Read-only

Check if the developer's environment is ready to build and deploy apps with Varity. Verifies Node.js, npm, varitykit CLI, and authentication are properly configured. Run this before varity_init or varity_deploy to catch missing prerequisites early.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true. The description adds valuable context by enumerating what is verified (Node.js, npm, CLI, auth), which goes beyond the annotation. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, no wasted words. Perfectly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter check tool, the description covers purpose, usage timing, and what is checked. Does not detail output format, but for a simple diagnostic tool this is acceptable and not a critical gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100% (empty). Baseline score of 4 is appropriate; description adds no param info but none needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks if the developer's environment is ready, specifying exact resources (Node.js, npm, varitykit CLI, authentication). It distinguishes from siblings by positioning as a prerequisite check before varity_init or varity_deploy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to run before varity_init or varity_deploy, providing clear usage context. Does not explicitly state when not to use, but the positive guidance is strong and sufficient for a zero-parameter tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_initCreate New AppA

Create a new production-ready app with auth, database, and payments built in. Scaffolds a Next.js project with Varity SDK, UI Kit, and a SaaS starter template. The resulting project includes: dashboard, authentication (email/Google/GitHub), settings page, landing page, command palette, and 20+ UI components. Use this when a developer wants to start a new project, create an app, or scaffold something.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name (lowercase, hyphens allowed, e.g., 'my-saas-app')
pathNoAbsolute path to the parent directory where the project folder will be created. Example: if path='/home/user/projects' and name='my-app', the project is created at '/home/user/projects/my-app'. IMPORTANT: always pass an explicit absolute path (e.g. the user's home directory or workspace folder). If omitted, the project is created inside the MCP server's working directory, which is rarely the user's workspace root. Ask the user where they want the project if unsure.
forceNoOverwrite files in an existing non-empty directory. WARNING: existing files will be replaced without backup. Default: false. Only set true when the user explicitly requests overwriting.
templateNoTemplate to use (default: 'saas-starter')saas-starter

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool scaffolds a Next.js project and includes specific components. The force parameter warns about overwriting existing files. However, it does not mention potential side effects like network downloads, dependency installation, or execution time. The behavioral disclosure is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with front-loaded purpose: two sentences for what it does, then a list of features, then a usage guideline. The path parameter description is long but necessary. Overall, it is concise without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers what the tool creates and includes usage considerations. It lacks detail on return values or success output, but the project contents are well described. With 4 parameters and no nested objects, the description provides sufficient context for an agent to understand the tool's scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining what the resulting project includes, and the path parameter includes a concrete example and a warning about default behavior. The force parameter reinforces the safety warning. These details go beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new production-ready app with specific features like auth, database, and payments. It lists the resulting project contents (dashboard, authentication, settings, etc.). This distinguishes it from sibling tools like varity_build or varity_deploy, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool: 'when a developer wants to start a new project, create an app, or scaffold something.' Additionally, the path parameter description provides critical usage guidance by instructing to always pass an absolute path and ask the user if unsure. However, it does not explicitly state when not to use it or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_install_depsInstall DependenciesA
Destructive

Install npm dependencies in a Varity project. Use after creating a project or when adding new packages.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoProject directory to install dependencies in (default: current directory)
packagesNoSpecific packages to install (e.g., ['axios', 'lodash']). If omitted, runs npm install for all dependencies.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates the tool installs dependencies, which is a read-modify operation. The annotations include destructiveHint: true, confirming modification of files. The description does not add further behavioral context (e.g., that it modifies package-lock.json or may overwrite existing node_modules), but given the annotation coverage, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences. The first sentence immediately states the purpose, and the second gives usage guidance. Every word is necessary, and no extraneous information is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional parameters, no output schema, destructive annotation), the description covers the essential usage context. It could be improved by mentioning potential side effects (e.g., file system modifications) or prerequisites (e.g., requires Node.js/npm), but these are implied by the tool's nature and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have descriptions in the schema (100% coverage). The description adds a small extra: for the 'packages' parameter, it notes 'If omitted, runs npm install for all dependencies,' which is implied by the schema. Overall, the description does not significantly add beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool installs npm dependencies in a Varity project. It uses a specific verb ('Install') and resource ('npm dependencies'), and the context 'Use after creating a project or when adding new packages' distinguishes it from sibling tools like varity_init (which creates the project) and varity_build (which builds the project).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'after creating a project or when adding new packages.' This provides clear context. However, it does not mention when not to use it or direct the agent to alternative tools for related tasks, such as initial project setup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_list_agentsList Available AI Agent TemplatesA

List the curated AI agent templates Varity can deploy with one command. Available agents: hermes (Telegram bot, ~$16/mo), openclaw (Claude-compatible chat, ~$38/mo), agent-zero (general-purpose, zero config, ~$14/mo), autoresearch (GPU CUDA workstation, ~$280/mo), eliza-venice (Twitter automation, ~$168/mo). Use this when a developer asks 'what AI agents can I deploy?' or wants to compare options. Returns name, description, estimated monthly cost, required environment variables, exposed ports, and resource footprint. After picking one, deploy with varity_deploy_agent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It details what the tool returns (name, cost, env vars, ports, resource footprint) but does not explicitly state it is read-only or has no side effects. However, it implies a safe list operation, so it is fairly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that front-loads the main purpose, then provides agent examples, usage context, and return details. It is informative without being verbose, and each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers all relevant information: agent names, costs, return fields, and usage scenario. It also links to a sibling tool for deployment, making it complete for the user's needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%. The description does not need to add parameter info, and it correctly omits any. The baseline for 0 parameters is 4, but the description fully satisfies the need, earning a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists curated AI agent templates, provides specific examples with details, and distinguishes from sibling tools like varity_agent_info and varity_deploy_agent by stating when to use it and what follow-up action to take.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this when a developer asks what AI agents can I deploy?' and directs to deploy with varity_deploy_agent after selection, providing clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_loginLog in to VarityA

Log in to Varity to enable deployments. Opens the developer portal where you get your deploy key after adding a payment method. If deploy_key is provided, saves it immediately and you can run varity_deploy right away. If omitted, the browser opens to the settings page so you can copy your key.

ParametersJSON Schema
NameRequiredDescriptionDefault
deploy_keyNoYour deploy key from the Varity developer portal (developer.store.varity.so/dashboard/settings). If omitted, this tool opens the settings page in your browser, copy your key from there, then call varity_login again with the key.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully bears the transparency burden: it explains the two behavioral paths (with/without deploy_key), the browser interaction, and the outcome of enabling deployments. No hidden side effects are implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no redundancy, front-loaded with purpose. Every sentence adds distinct, valuable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one optional param, no output schema). The description covers both usage scenarios completely, leaving no ambiguity about what the tool does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds significant behavioral context beyond the schema: it ties the parameter value to the immediate ability to deploy, and explains the fallback behavior when omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb-resource combination ('Log in to Varity') and explains its purpose: enable deployments. It distinguishes itself from sibling tools like varity_deploy by being the prerequisite login step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use with deploy_key for immediate deployment readiness, or omit to get the key via browser. No alternative tools are mentioned, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_migrateMigrate from Vercel to VarityA
Destructive

Migrate a Vercel project to Varity in one step: clones the GitHub repository, removes Vercel-specific artifacts (vercel.json, @vercel/* packages, image optimizer config, env var renames), and deploys the transformed app to Varity infrastructure. Returns a live deployment URL and a migration report. Works with Next.js projects. Use this when a developer wants to move their Vercel app to Varity.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoIf true, show what would change without deploying. Useful for previewing migration impact.
github_urlYesGitHub repository URL to migrate (e.g. 'https://github.com/user/my-vercel-app'). The repository will be cloned to a temporary directory, transformed, and deployed.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds context by detailing the transformation steps (removing vercel.json, @vercel/* packages, etc.) and the output (deployment URL + report). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the main action, and contains no redundant information. Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the key aspects: what it does, which projects it works with (Next.js), and the return value (URL and report). No output schema exists, but the return information is provided. Could mention prerequisites (e.g., GitHub access) but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description provides context for the parameters (e.g., 'The repository will be cloned to a temporary directory') but does not add significant meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Migrate a Vercel project to Varity in one step'. It details the specific actions (clone, remove artifacts, deploy) and distinguishes from siblings like varity_deploy and varity_create_repo by focusing on the migration workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when a developer wants to move their Vercel app to Varity' and notes it works with Next.js projects. While it doesn't list when not to use or alternative tools, the context is clear enough for an AI agent to select this over other sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_open_browserOpen in BrowserA

Open a URL in the user's default browser. Use after deploying to show the live app or after starting the dev server.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to open in the default browser

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description confirms the tool opens a URL in the default browser. Without annotations, it carries the full burden and could benefit from disclosing that it does not wait for the browser, potential for multiple tabs, or error behavior, but the basic behavior is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences: the first states the primary action, the second gives usage context. No unnecessary words, perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no nested objects), the description adequately covers purpose and typical usage. Minor omission: no mention of error handling or security implications, but acceptable for a straightforward tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'url' that is well-described in the schema. The description does not add new semantic information beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Open a URL') and the resource ('in the user's default browser'). It unequivocally distinguishes this tool from siblings, as no other sibling tool opens a browser.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides specific scenarios for use: after deploying to show the live app or after starting the dev server. Although it does not explicitly state when not to use it or mention alternatives, the context is clear and directive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

varity_search_docsSearch Varity DocsA
Read-only

Search Varity tutorials, troubleshooting guides, and deployment docs. For SDK API references (database, auth, UI components), the varity://sdk/* resources provide complete coverage. Use this tool for how-to guides, getting started tutorials, FAQ, and troubleshooting.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (e.g., 'database collections', 'authentication setup', 'deploy to production')
maxResultsNoMaximum number of results to return (default: 3)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows it's safe. Description does not add further behavioral context beyond stating the content types searched. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with clear hierarchy: purpose, exclusion, inclusion. Efficient and front-loaded, though could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple search nature with read-only annotation, the description covers the main points. It doesn't detail result format or pagination, but this is acceptable for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters have clear descriptions. The tool description adds context but does not enhance parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool searches tutorials, troubleshooting guides, and deployment docs, and distinguishes from SDK API references. The verb 'search' is specific and the resource scope is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when to use (how-to guides, getting started, FAQ, troubleshooting) and when not to (SDK API references), offering an alternative (varity://sdk/* resources). This is excellent guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 18 tool updatesv2.0.0-beta.24
    • First observedvarity_agent_info
    • First observedvarity_build
    • First observedvarity_cost_calculator
    • First observedvarity_create_repo
    • First observedvarity_delete_deployment
    • First observedvarity_deploy
    • First observedvarity_deploy_agent
    • First observedvarity_deploy_logs
    • First observedvarity_deploy_status
    • First observedvarity_dev_server
    • First observedvarity_doctor
    • First observedvarity_init
    • First observedvarity_install_deps
    • First observedvarity_list_agents
    • First observedvarity_login
    • First observedvarity_migrate
    • First observedvarity_open_browser
    • First observedvarity_search_docs

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clear and distinct purpose. For example, varity_deploy vs varity_deploy_agent are explicitly differentiated, and varity_deploy_logs vs varity_deploy_status serve different needs. No tools have overlapping functionality.

Naming Consistency5/5

All tools follow the consistent pattern 'varity_<verb>_<optional_noun>' with snake_case. Examples include varity_list_agents, varity_deploy_agent, varity_delete_deployment. No mixing of cases or inconsistent verbs.

Tool Count5/5

With 18 tools, the server covers a broad range of operations (scaffolding, building, deploying, managing, migrating, cost estimation, environment checks) without being overwhelming. Each tool serves a justified purpose.

Completeness4/5

The tool set covers the main lifecycle: init, build, deploy, status, logs, delete, migration, agent management, and cost comparison. A minor gap is the lack of a dedicated tool for managing environment variables for custom app deployments (only agent deployments have env support).

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/varity-labs/varity-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server