Server definition
- Hash
- sha256:e5c28ec353ac051b134612c8533ef7804cc08a16a45bab7ae93f580cbed456a6
- What it is
- What a remote MCP server returned when asked what it offers: 22 tools
The blob, as servednamed by its sha256
{
"instructions": "You can provision and manage real cloud infrastructure on Edge Network (https://edge.network) — CDN, compute VMs, object storage, DNS, Shield bot protection, and Assist AI answers — through a REST API designed for agents.\n\n## Connecting\n\n- Base URL: https://edge.network/agent\n- Authenticate every request with: Authorization: Bearer ea_live_...\n- No access code? Create your own account autonomously: GET https://edge.network/agent/signup describes the flow (Ed25519 keypair + small proof-of-work, no human required). You get a free explore-tier account that can deploy free-tier resources immediately.\n- Start every session with GET /agent — the discovery endpoint returns your account, budget, enabled products, current projects, and full endpoint documentation. Never guess endpoints; discovery is the source of truth.\n\n## Working safely\n\n- Plan before you act: any POST/PATCH/DELETE accepts the header \"X-Dry-Run: true\" and returns what would happen, including cost estimates, without changing anything. Always dry-run first for anything that costs money.\n- Use an \"Idempotency-Key\" header on POST requests so retries are safe.\n- Respect the budget: discovery shows the monthly budget cap on your access code. Before creating billable resources (VMs), check the cost with a dry run and stay within budget. Report expected monthly costs to the user before and after provisioning.\n- Deleting things is permanent. Project teardown requires the \"X-Confirm: teardown\" header — only use it when the user has clearly asked.\n\n## Talking to your human\n\n- Every API response includes a \"tell_user\" field: a plain-English summary written to be relayed to the user. Prefer relaying or paraphrasing it over inventing your own summary.\n- If your account is in the explore tier (self-signup, unclaimed), you can build free-tier things for real — static sites, Shield widgets, DNS zones, storage buckets, Assist sites — but paid resources are dry-run only. To unlock them, ask the user for their email address and POST it to /agent/signup/bind-email; they receive a claim link. Unclaimed accounts are deleted after ~7 days, so encourage claiming anything worth keeping.\n\n## Typical first task\n\nDeploying a static site is one call: POST /agent/deploy/static-site with a project name and files (base64) or a git repo. Edge creates the storage bucket, uploads files, configures the CDN with SSL, and wires DNS if the zone is on Edge. The free tier covers it.",
"tools": [
{
"description": "Check whether the connected account is a self-signed-up guest (explore tier) or fully claimed, and how to unlock it.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "edge_account_status",
"outputSchema": null
},
{
"description": "Add a DNS record to a zone.",
"inputSchema": {
"properties": {
"data": {
"description": "Record value, e.g. an IP address or target domain",
"type": "string"
},
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"name": {
"description": "Record name, e.g. \"www\" or \"@\" for the root",
"type": "string"
},
"priority": {
"description": "Priority — required for MX records",
"type": "number"
},
"ttl": {
"description": "TTL in seconds (default 300)",
"type": "number"
},
"type": {
"description": "Record type",
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"TXT",
"NS"
],
"type": "string"
},
"zone_id": {
"description": "Zone id (from edge_list_dns_zones)",
"type": "string"
}
},
"required": [
"zone_id",
"type",
"name",
"data"
],
"type": "object"
},
"name": "edge_add_dns_record",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"hostname": {
"description": "Hostname the widget will run on, e.g. \"docs.example.com\" (origin-enforced)",
"type": "string"
},
"index_url": {
"description": "Public URL of the content index JSON: { \"pages\": [{ \"url\", \"title\", \"text\" }] }. Can be set later.",
"type": "string"
},
"name": {
"description": "Friendly name, e.g. \"Docs site\"",
"type": "string"
}
},
"required": [
"name",
"hostname"
],
"type": "object"
},
"name": "edge_create_assist_site",
"outputSchema": null
},
{
"description": "Create an object storage bucket (S3-compatible). Free tier includes a limited number of buckets.",
"inputSchema": {
"properties": {
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"name": {
"description": "Bucket name: 3-63 chars, lowercase letters, numbers, hyphens",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "edge_create_bucket",
"outputSchema": null
},
{
"description": "Create a DNS zone for a domain on Edge authoritative DNS. Free.",
"inputSchema": {
"properties": {
"domain": {
"description": "Domain name, e.g. \"example.com\"",
"type": "string"
},
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "edge_create_dns_zone",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"hostnames": {
"description": "Hostnames allowed to use this widget, e.g. [\"example.com\"]. Empty = any hostname.",
"items": {
"type": "string"
},
"type": "array"
},
"mode": {
"description": "managed: invisible for humans, one-click check for suspicious traffic (default)",
"enum": [
"managed",
"non-interactive",
"invisible"
],
"type": "string"
},
"name": {
"description": "Friendly name, e.g. \"Contact form\"",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "edge_create_shield_widget",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"cdn": {
"description": "Put the Edge CDN in front of the VM",
"type": "boolean"
},
"domain": {
"description": "Domain for the app",
"type": "string"
},
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"os": {
"description": "Operating system template id (default ubuntu-24.04)",
"type": "string"
},
"project": {
"description": "Project name",
"type": "string"
},
"region": {
"description": "Deployment region (default london) — list regions via edge_discover",
"type": "string"
},
"script": {
"description": "Startup script id from the Edge library (e.g. \"docker\", \"nodejs\") — preferred over setup_script",
"type": "string"
},
"script_params": {
"description": "Parameters for the chosen library script",
"type": "object"
},
"setup_script": {
"description": "Inline bash script to run on first boot (use script instead when a library script exists)",
"type": "string"
},
"size": {
"description": "nano: 1vCPU/1GB, small: 1/2GB, medium: 2/4GB, large: 4/8GB, xlarge: 8/16GB",
"enum": [
"nano",
"small",
"medium",
"large",
"xlarge"
],
"type": "string"
},
"ssh_key": {
"description": "SSH public key string (e.g. \"ssh-ed25519 AAAA...\") to bake into the VM",
"type": "string"
}
},
"required": [
"project",
"size"
],
"type": "object"
},
"name": "edge_deploy_app",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"branch": {
"description": "Git branch or tag (default: main)",
"type": "string"
},
"domain": {
"description": "Custom domain to serve from, e.g. \"app.example.com\". SSL is auto-provisioned.",
"type": "string"
},
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"files": {
"description": "Files to upload, base64-encoded.",
"items": {
"properties": {
"content": {
"description": "Base64-encoded file content",
"type": "string"
},
"content_type": {
"description": "MIME type (auto-detected if omitted)",
"type": "string"
},
"path": {
"description": "File path, e.g. \"index.html\" or \"assets/style.css\"",
"type": "string"
}
},
"required": [
"path",
"content"
],
"type": "object"
},
"type": "array"
},
"git_token": {
"description": "Personal access token for private repositories",
"type": "string"
},
"project": {
"description": "Project name (created if it does not exist), e.g. \"my-portfolio\"",
"type": "string"
},
"repo": {
"description": "Git repository to deploy instead of files: \"user/repo\" or a full GitHub/GitLab URL",
"type": "string"
},
"source_path": {
"description": "Subdirectory of the repo to deploy, e.g. \"dist\" or \"build\"",
"type": "string"
},
"spa_mode": {
"description": "Enable single-page-app mode (all routes serve index.html)",
"type": "boolean"
}
},
"required": [
"project"
],
"type": "object"
},
"name": "edge_deploy_static_site",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "edge_discover",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"vm_id": {
"description": "VM id (from edge_list_vms)",
"type": "string"
}
},
"required": [
"vm_id"
],
"type": "object"
},
"name": "edge_get_vm",
"outputSchema": null
},
{
"description": "List Edge Assist sites (AI answers widget) with usage and index status.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "edge_list_assist_sites",
"outputSchema": null
},
{
"description": "List storage buckets on the account.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "edge_list_buckets",
"outputSchema": null
},
{
"description": "List DNS zones on the account.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "edge_list_dns_zones",
"outputSchema": null
},
{
"description": "List all projects (groupings of resources) on the connected Edge account.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "edge_list_projects",
"outputSchema": null
},
{
"description": "List Edge Shield widgets (free, privacy-first CAPTCHA alternative).",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "edge_list_shield_widgets",
"outputSchema": null
},
{
"description": "List all virtual machines on the account with status, size, and IPs.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "edge_list_vms",
"outputSchema": null
},
{
"description": "Comprehensive health check for every resource in a project: status, metrics, and actionable suggestions.",
"inputSchema": {
"properties": {
"project_id": {
"description": "Project id (from edge_list_projects)",
"type": "string"
}
},
"required": [
"project_id"
],
"type": "object"
},
"name": "edge_project_health",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"email": {
"description": "The human operator's email address",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "edge_request_claim",
"outputSchema": null
},
{
"description": "Scale the compute resources in a project up or down. BILLABLE — dry_run first and report the cost change to the user.",
"inputSchema": {
"properties": {
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"project_id": {
"description": "Project id",
"type": "string"
},
"reason": {
"description": "Why you are scaling (recorded in the audit log)",
"type": "string"
},
"size": {
"description": "Target VM size",
"enum": [
"nano",
"small",
"medium",
"large",
"xlarge"
],
"type": "string"
}
},
"required": [
"project_id",
"size"
],
"type": "object"
},
"name": "edge_scale_project",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"confirm": {
"description": "Must be true to actually delete. Without it the call fails with a summary of what would be deleted.",
"type": "boolean"
},
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"project_id": {
"description": "Project id",
"type": "string"
}
},
"required": [
"project_id"
],
"type": "object"
},
"name": "edge_teardown_project",
"outputSchema": null
},
{
"description": "Update an existing deployment: upload changed files and optionally purge the CDN cache.",
"inputSchema": {
"properties": {
"changed_only": {
"description": "Skip files whose content has not changed (MD5 comparison)",
"type": "boolean"
},
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"files": {
"description": "Files to upload, base64-encoded.",
"items": {
"properties": {
"content": {
"description": "Base64-encoded file content",
"type": "string"
},
"content_type": {
"description": "MIME type (auto-detected if omitted)",
"type": "string"
},
"path": {
"description": "File path, e.g. \"index.html\" or \"assets/style.css\"",
"type": "string"
}
},
"required": [
"path",
"content"
],
"type": "object"
},
"type": "array"
},
"project_id": {
"description": "Project id (from edge_list_projects)",
"type": "string"
},
"purge_cdn": {
"description": "Purge the CDN cache after upload",
"type": "boolean"
}
},
"required": [
"project_id",
"files"
],
"type": "object"
},
"name": "edge_update_deployment",
"outputSchema": null
},
{
"description": "Upload files to an existing storage bucket.",
"inputSchema": {
"properties": {
"bucket": {
"description": "Bucket name",
"type": "string"
},
"changed_only": {
"description": "Skip files whose content has not changed (MD5 comparison)",
"type": "boolean"
},
"dry_run": {
"description": "Preview the action without executing it. Returns what would happen, including cost estimates. Always dry-run first for anything that costs money.",
"type": "boolean"
},
"files": {
"description": "Files to upload, base64-encoded.",
"items": {
"properties": {
"content": {
"description": "Base64-encoded file content",
"type": "string"
},
"content_type": {
"description": "MIME type (auto-detected if omitted)",
"type": "string"
},
"path": {
"description": "File path, e.g. \"index.html\" or \"assets/style.css\"",
"type": "string"
}
},
"required": [
"path",
"content"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"bucket",
"files"
],
"type": "object"
},
"name": "edge_upload_files",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:e5c28ec353ac051b134612c8533ef7804cc08a16a45bab7ae93f580cbed456a6 | sha256sum