---
title: "MCP tool reference"
description: "Every tool exposed by the Edge MCP server: all 22 tools with their parameters, types and descriptions, generated from the definitions the live endpoint serves."
url: "https://edge.network/docs/agent/mcp-tools"
section: "Agent tooling"
---

# MCP tool reference

All 22 tools exposed by the Edge MCP server, generated from the same definitions the live endpoint serves, so it always matches tools/list.

For setup, transports and authentication, see [MCP server](/docs/agent/mcp).

## Conventions

- Mutating tools accept `dry_run: true` to preview the action, including cost estimates, without executing it. Always dry-run anything billable first.
- Tools marked **billable** spend real money and are blocked on the explore tier (hard $0 cap). Dry runs still work there.
- Every result includes a `tell_user` summary the agent can relay verbatim.

## edge_discover

Get everything about the connected Edge account: plan, budget, enabled products with limits and regions, current projects, and full API documentation. Call this first in every session.

No parameters.

## edge_deploy_static_site

Deploy a static website to Edge in one call: creates a storage bucket, uploads files (or clones a git repo), configures the global CDN with SSL, and wires DNS if the zone is on Edge. Free tier covers it. Provide either files (base64) or a git repo.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `project` | `string` | Yes | Project name (created if it does not exist), e.g. "my-portfolio" |
| `files` | `object[]` | No | Files to upload, base64-encoded. |
| `repo` | `string` | No | Git repository to deploy instead of files: "user/repo" or a full GitHub/GitLab URL |
| `branch` | `string` | No | Git branch or tag (default: main) |
| `source_path` | `string` | No | Subdirectory of the repo to deploy, e.g. "dist" or "build" |
| `git_token` | `string` | No | Personal access token for private repositories |
| `domain` | `string` | No | Custom domain to serve from, e.g. "app.example.com". SSL is auto-provisioned. |
| `spa_mode` | `boolean` | No | Enable single-page-app mode (all routes serve index.html) |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_deploy_app

**Billable.** Deploy a full application on a VM: provisions compute, runs a setup script, and optionally adds CDN and DNS. This is BILLABLE: always dry_run first and report the monthly cost to the user. Pass ssh_key (a public key string) to enable SSH access.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `project` | `string` | Yes | Project name |
| `size` | `"nano" \| "small" \| "medium" \| "large" \| "xlarge"` | Yes | nano: 1vCPU/1GB, small: 1/2GB, medium: 2/4GB, large: 4/8GB, xlarge: 8/16GB |
| `os` | `string` | No | Operating system template id (default ubuntu-24.04) |
| `region` | `string` | No | Deployment region (default london). List regions via edge_discover. |
| `script` | `string` | No | Startup script id from the Edge library (e.g. "docker", "nodejs"). Preferred over setup_script. |
| `script_params` | `object` | No | Parameters for the chosen library script |
| `setup_script` | `string` | No | Inline bash script to run on first boot (use script instead when a library script exists) |
| `ssh_key` | `string` | No | SSH public key string (e.g. "ssh-ed25519 AAAA...") to bake into the VM |
| `domain` | `string` | No | Domain for the app |
| `cdn` | `boolean` | No | Put the Edge CDN in front of the VM |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_update_deployment

Update an existing deployment: upload changed files and optionally purge the CDN cache.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `project_id` | `string` | Yes | Project id (from edge_list_projects) |
| `files` | `object[]` | Yes | Files to upload, base64-encoded. |
| `changed_only` | `boolean` | No | Skip files whose content has not changed (MD5 comparison) |
| `purge_cdn` | `boolean` | No | Purge the CDN cache after upload |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_list_projects

List all projects (groupings of resources) on the connected Edge account.

No parameters.

## edge_project_health

Comprehensive health check for every resource in a project: status, metrics, and actionable suggestions.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `project_id` | `string` | Yes | Project id (from edge_list_projects) |

## edge_scale_project

**Billable.** Scale the compute resources in a project up or down. BILLABLE: dry_run first and report the cost change to the user.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `project_id` | `string` | Yes | Project id |
| `size` | `"nano" \| "small" \| "medium" \| "large" \| "xlarge"` | Yes | Target VM size |
| `reason` | `string` | No | Why you are scaling (recorded in the audit log) |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_teardown_project

**Destructive.** PERMANENTLY delete a project and every resource in it (VMs, buckets, CDN deployments, DNS zones). Irreversible: only use when the user has clearly asked. Set confirm to true to execute.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `project_id` | `string` | Yes | Project id |
| `confirm` | `boolean` | No | Must be true to actually delete. Without it the call fails with a summary of what would be deleted. |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_list_vms

List all virtual machines on the account with status, size, and IPs.

No parameters.

## edge_get_vm

Get one VM: live status, metrics, IPs, attached SSH keys, and the ready-to-use SSH command. Poll until status is "running" before attempting SSH.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `vm_id` | `string` | Yes | VM id (from edge_list_vms) |

## edge_list_buckets

List storage buckets on the account.

No parameters.

## edge_create_bucket

Create an object storage bucket (S3-compatible). Free tier includes a limited number of buckets.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | `string` | Yes | Bucket name: 3-63 chars, lowercase letters, numbers, hyphens |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_upload_files

Upload files to an existing storage bucket.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `bucket` | `string` | Yes | Bucket name |
| `files` | `object[]` | Yes | Files to upload, base64-encoded. |
| `changed_only` | `boolean` | No | Skip files whose content has not changed (MD5 comparison) |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_list_dns_zones

List DNS zones on the account.

No parameters.

## edge_create_dns_zone

Create a DNS zone for a domain on Edge authoritative DNS. Free.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `domain` | `string` | Yes | Domain name, e.g. "example.com" |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_add_dns_record

Add a DNS record to a zone.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `zone_id` | `string` | Yes | Zone id (from edge_list_dns_zones) |
| `type` | `"A" \| "AAAA" \| "CNAME" \| "MX" \| "TXT" \| "NS"` | Yes | Record type |
| `name` | `string` | Yes | Record name, e.g. "www" or "@" for the root |
| `data` | `string` | Yes | Record value, e.g. an IP address or target domain |
| `ttl` | `number` | No | TTL in seconds (default 300) |
| `priority` | `number` | No | Priority (required for MX records) |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_list_shield_widgets

List Edge Shield widgets (free, privacy-first CAPTCHA alternative).

No parameters.

## edge_create_shield_widget

Create an Edge Shield widget to protect a form or page from bots. Free. Returns the sitekey, the secret (shown once, so store it server-side), and a ready-to-paste embed snippet.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | `string` | Yes | Friendly name, e.g. "Contact form" |
| `hostnames` | `string[]` | No | Hostnames allowed to use this widget, e.g. ["example.com"]. Empty = any hostname. |
| `mode` | `"managed" \| "non-interactive" \| "invisible"` | No | managed: invisible for humans, one-click check for suspicious traffic (default) |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_list_assist_sites

List Edge Assist sites (AI answers widget) with usage and index status.

No parameters.

## edge_create_assist_site

Create an Edge Assist site: AI answers for a website, grounded in its own content. Free tier: 1 site, 250 answered questions/month. Returns the sitekey and a one-line embed snippet.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | `string` | Yes | Friendly name, e.g. "Docs site" |
| `hostname` | `string` | Yes | Hostname the widget will run on, e.g. "docs.example.com" (origin-enforced) |
| `index_url` | `string` | No | Public URL of the content index JSON: { "pages": [{ "url", "title", "text" }] }. Can be set later. |
| `dry_run` | `boolean` | No | Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money. |

## edge_account_status

Check whether the connected account is a self-signed-up guest (explore tier) or fully claimed, and how to claim it.

No parameters.

## edge_request_claim

Nominate the human operator of a self-signed-up (explore tier) account. They receive an email with a claim link; claiming enables billable resources and stops the ~7 day auto-purge. Ask the user for their email address first.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `email` | `string` | Yes | The human operator's email address |

## Next steps

- [MCP server](/docs/agent/mcp) — Setup, transports and authentication
- [Connect your tool](/docs/agent/connect) — Per-editor configs and example prompts
