---
title: "MCP Tool Reference"
description: "Every tool exposed by the Edge MCP server — 22 tools with parameters, types, and descriptions."
url: https://edge.network/docs/agent/mcp-tools/
---

# MCP Tool Reference

Agent Tooling

# MCP Tool Reference

All 22 tools exposed by the [Edge MCP server](https://edge.network/docs/agent/mcp).
This page is generated from the same definitions the live endpoint serves, so it always matches
`tools/list`.

edge_discoveredge_deploy_static_siteedge_deploy_appedge_update_deploymentedge_list_projectsedge_project_healthedge_scale_projectedge_teardown_projectedge_list_vmsedge_get_vmedge_list_bucketsedge_create_bucketedge_upload_filesedge_list_dns_zonesedge_create_dns_zoneedge_add_dns_recordedge_list_shield_widgetsedge_create_shield_widgetedge_list_assist_sitesedge_create_assist_siteedge_account_statusedge_request_claim

## 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-run still works 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[] | — | Files to upload, base64-encoded. |
| repo | string | — | Git repository to deploy instead of files: "user/repo" or a full GitHub/GitLab URL |
| branch | string | — | Git branch or tag (default: main) |
| source_path | string | — | Subdirectory of the repo to deploy, e.g. "dist" or "build" |
| git_token | string | — | Personal access token for private repositories |
| domain | string | — | Custom domain to serve from, e.g. "app.example.com". SSL is auto-provisioned. |
| spa_mode | boolean | — | Enable single-page-app mode (all routes serve index.html) |
| dry_run | boolean | — | 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 | — | Operating system template id (default ubuntu-24.04) |
| region | string | — | Deployment region (default london) — list regions via edge_discover |
| script | string | — | Startup script id from the Edge library (e.g. "docker", "nodejs") — preferred over setup_script |
| script_params | object | — | Parameters for the chosen library script |
| setup_script | string | — | Inline bash script to run on first boot (use script instead when a library script exists) |
| ssh_key | string | — | SSH public key string (e.g. "ssh-ed25519 AAAA...") to bake into the VM |
| domain | string | — | Domain for the app |
| cdn | boolean | — | Put the Edge CDN in front of the VM |
| dry_run | boolean | — | 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 | — | Skip files whose content has not changed (MD5 comparison) |
| purge_cdn | boolean | — | Purge the CDN cache after upload |
| dry_run | boolean | — | 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 | — | Why you are scaling (recorded in the audit log) |
| dry_run | boolean | — | 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 | — | Must be true to actually delete. Without it the call fails with a summary of what would be deleted. |
| dry_run | boolean | — | 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 | — | 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 | — | Skip files whose content has not changed (MD5 comparison) |
| dry_run | boolean | — | 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 | — | 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 | — | TTL in seconds (default 300) |
| priority | number | — | Priority — required for MX records |
| dry_run | boolean | — | 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 — 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[] | — | Hostnames allowed to use this widget, e.g. ["example.com"]. Empty = any hostname. |
| mode | "managed" | "non-interactive" | "invisible" | — | managed: invisible for humans, one-click check for suspicious traffic (default) |
| dry_run | boolean | — | 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 | — | Public URL of the content index JSON: { "pages": [{ "url", "title", "text" }] }. Can be set later. |
| dry_run | boolean | — | 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 unlock 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 unlocks 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 Setup, transports, and authentication](https://edge.network/docs/agent/mcp) [Connect Your Tool Per-editor configs and example prompts](https://edge.network/docs/agent/connect)
[Back to Docs](https://edge.network/docs) [Need help?](https://edge.network/support)
