Edgevana launches the new GPU marketplaceLearn More
Log In

Edgevana ComputeAgent

Hourly GPU instances for agents over MCP and A2A. 13 tools. Every launch shows a preview and needs the user's approval before anything is charged.

Agent Card at /.well-known/agent-card.json. MCP at /mcp, A2A at /a2a/jsonrpc and /a2a/rest. Auth: X-API-Key: edgv_... or Authorization: Bearer edgv_.... Agents can launch hourly GPU offers only. Bare-metal and CPU servers can be searched and priced, not launched.

13
Tools
MCP + A2A
Protocols
JSON-RPC 2.0
A2A
Streamable HTTP
Transport
ENDPOINTS
Reference

URLs and auth

Agent Card
https://edgevana.com/.well-known/agent-card.json
MCP
https://mcp.edgevana.com/mcp
A2A JSON-RPC
https://mcp.edgevana.com/a2a/jsonrpc
A2A REST
https://mcp.edgevana.com/a2a/rest
Auth: X-API-Key: edgv_... or Authorization: Bearer edgv_...
Transport: Streamable HTTP
Versions: MCP 2025-03-26, A2A v0.3
TOOLS
Quick reference

All 13 tools

toolaccessparams
search_serversRead onlyserver_type, query, region, site, launchable_only, max_price_hourly, min_vram_gb, min_gpus, min_direct_ports, min_reliability, min_ram_gb, min_cores, sort, detail_sku, offset, limit
get_server_specsRead onlysku
get_locationsRead onlycountry, city
check_availabilityRead onlysite, server_type, sku, limit
get_pricingRead onlyserver_type, item_id, search, include_locations, limit
compare_to_cloudRead onlyworkload_type, cloud_provider
get_platform_infoRead onlytopic
launch_instancePreview, then confirm (spends money)offer_id (required), site (required), ssh_key, custom_name, disk_gb, ports, onstart, payment_source_id, coupon_ids, confirm, approved (required when confirm: true), idempotency_key (required when confirm: true)
request_reserved_instancePreview, then confirm (no charge)offer_id (required), site (required), email (required), first_name (required), last_name, quantity, term_months, notes, confirm
list_instancesRead onlylimit, offset
get_instanceRead onlyinstance_id (required)
update_instanceChanges instance settings, no chargeinstance_id (required), ssh_key, cluster, deployment_type, custom_name
terminate_instancePreview, then confirm (destructive)instance_id (required), when, cancel_reason, confirm
LIFECYCLE
Tool calls per step

5-step flow

1. Search

Pick an offer with launch_status "available". Note its offer_id and one of its hourly_sites.

{
  "tool": "search_servers",
  "args": {
    "server_type": "gpu",
    "query": "H100",
    "launchable_only": true,
    "sort": "price"
  }
}
2. Preview launch

Returns the hourly price and an approval object, plus the deposit due today when the quote succeeds. Nothing is created. Show it to the user. If the deposit could not be quoted (approval.deposit_due_cents is null), run the preview again: a confirm without a deposit quote is refused.

{
  "tool": "launch_instance",
  "args": {
    "offer_id": "52708889",
    "site": "Seoul, South Korea",
    "ssh_key": "ssh-ed25519 AAAA..."
  }
}
3. Confirm launch

After the user approves: same args, confirm: true, the approval object unchanged, and a unique idempotency_key. Any change in the hourly price is refused, and the approved deposit is the ceiling.

{
  "tool": "launch_instance",
  "args": {
    "offer_id": "52708889",
    "site": "Seoul, South Korea",
    "ssh_key": "ssh-ed25519 AAAA...",
    "confirm": true,
    "approved": {
      "hourly_cents": 249,
      "deposit_due_cents": 2500
    },
    "idempotency_key": "00000000-0000-4000-8000-000000000001"
  }
}
4. Monitor

Check connection.status: ready, provisioning, failed, destroying or destroyed. destroying means the instance is cancelled but not yet confirmed gone. When ready, connection.ports lists mapped ports. connection.public_ip and connection.ssh can be null even when ready. Check connection.ssh before you read its host, port and user. When status is not ready, public_ip and ssh are null, and ports is [].

{
  "tool": "get_instance",
  "args": {
    "instance_id": "example-instance-id"
  }
}
5. Destroy

Call without confirm for a preview, then again with confirm: true. Hourly GPU instances are destroyed immediately; EndOfTerm is refused for them.

{
  "tool": "terminate_instance",
  "args": {
    "instance_id": "example-instance-id",
    "confirm": true
  }
}
TOOLS
Schema

Tool call examples

{ "tool": "search_servers", "args": {"server_type":"gpu","query":"H100","launchable_only":true,"sort":"price","limit":10} }

{ "tool": "get_server_specs", "args": {"sku":"BM-9254-384G-25G"} }

{ "tool": "get_locations", "args": {"country":"United States"} }

{ "tool": "check_availability", "args": {"server_type":"gpu","site":"Chicago"} }

{ "tool": "get_pricing", "args": {"server_type":"gpu","search":"H100","limit":10} }

{ "tool": "compare_to_cloud", "args": {"workload_type":"ai_inference","cloud_provider":"aws"} }

{ "tool": "get_platform_info", "args": {"topic":"compute"} }

{ "tool": "launch_instance", "args": {"offer_id":"52708889","site":"Seoul, South Korea","ssh_key":"ssh-ed25519 AAAA..."} }

{ "tool": "request_reserved_instance", "args": {"offer_id":"52700000","site":"Dallas, TX","email":"[email protected]","first_name":"Alex","quantity":8,"term_months":12} }

{ "tool": "list_instances", "args": {"limit":10} }

{ "tool": "get_instance", "args": {"instance_id":"example-instance-id"} }

{ "tool": "update_instance", "args": {"instance_id":"example-instance-id","custom_name":"inference-1"} }

{ "tool": "terminate_instance", "args": {"instance_id":"example-instance-id"} }
CONNECT
Config

Copyable configs

MCP config (JSON)
{
  "mcpServers": {
    "edgevana": {
      "url": "https://mcp.edgevana.com/mcp",
      "headers": {
        "X-API-Key": "<your-edgv_...-key>"
      }
    }
  }
}
A2A JSON-RPC (curl)
curl -X POST https://mcp.edgevana.com/a2a/jsonrpc \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_EDGV_API_KEY" \
  -d '{"jsonrpc":"2.0","method":"message/send","id":1,"params":{"message":{"kind":"message","messageId":"msg-1","role":"user","parts":[{"kind":"text","text":"Find GPU servers"}]}}}'
Agent Card (curl)
curl https://edgevana.com/.well-known/agent-card.json

Close Form?

Are you sure you want to close this form? Your progress will be lost.