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.
On this page24 sections
For setup, transports and authentication, see MCP server.
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 runs still work 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[] |
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
Something unclear or out of date? Tell us