Agent Tooling
MCP Tool Reference
All 22 tools exposed by the Edge MCP server.
This page is generated from the same definitions the live endpoint serves, so it always matches
tools/list.
Conventions
-
Mutating tools accept dry_run: trueto 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_usersummary 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
BillableDeploy 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
BillableScale 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
DestructivePERMANENTLY 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 |
|---|---|---|---|
| string | Yes | The human operator's email address |