Edgevana Compute
Agent
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.
URLs and auth
All 13 tools
| tool | access | params |
|---|---|---|
| search_servers | Read only | server_type, query, region, site, launchable_only, max_price_hourly, min_vram_gb, min_gpus, min_ram_gb, min_cores, sort, detail_sku, offset, limit |
| get_server_specs | Read only | sku |
| get_locations | Read only | country, city |
| check_availability | Read only | site, server_type, sku, limit |
| get_pricing | Read only | server_type, item_id, search, include_locations, limit |
| compare_to_cloud | Read only | workload_type, cloud_provider |
| get_platform_info | Read only | topic |
| launch_instance | Preview, then confirm (spends money) | offer_id (required), site (required), ssh_key, custom_name, payment_source_id, coupon_ids, confirm, approved (required when confirm: true), idempotency_key (required when confirm: true) |
| request_reserved_instance | Preview, then confirm (no charge) | offer_id (required), site (required), email (required), first_name (required), last_name, quantity, term_months, notes, confirm |
| list_instances | Read only | limit, offset |
| get_instance | Read only | instance_id (required) |
| update_instance | Changes instance settings, no charge | instance_id (required), ssh_key, cluster, deployment_type, custom_name |
| terminate_instance | Preview, then confirm (destructive) | instance_id (required), when, cancel_reason, confirm |
5-step flow
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"
}
}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 approval.deposit_due_cents is null, run the preview again before you confirm.
{
"tool": "launch_instance",
"args": {
"offer_id": "52708889",
"site": "Seoul, South Korea",
"ssh_key": "ssh-ed25519 AAAA..."
}
}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. The approved deposit is a ceiling when it is not null.
{
"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"
}
}Check provisioning status and details.
{
"tool": "get_instance",
"args": {
"instance_id": "example-instance-id"
}
}Call without confirm for a preview, then again with confirm: true. Default when is EndOfTerm.
{
"tool": "terminate_instance",
"args": {
"instance_id": "example-instance-id",
"when": "EndOfTerm",
"confirm": true
}
}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"} }Copyable configs
{
"mcpServers": {
"edgevana": {
"url": "https://mcp.edgevana.com/mcp",
"headers": {
"X-API-Key": "<your-edgv_...-key>"
}
}
}
}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"}]}}}'curl https://edgevana.com/.well-known/agent-card.json