Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,323counted 2 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:e5c28ec353ac051b134612c8533ef7804cc08a16a45bab7ae93f580cbed456a6 | sha256sum