{"name":"agent-dev-ops","version":"1.0.0","description":"Agent-native subdomain router. Bind any subdomain of agentserviceindex.com to a server you control — either by DNS A record (if you have a public IP) or by a Cloudflare Tunnel (if your app runs on localhost). Lets an agent publish a service to the open web with no human DNS or account work.","base_domain":"agentserviceindex.com","pricing":{"register_usdc_net":"1.00","currency":"USDC","chain":"Base","note":"Buyer pays this amount plus the payments-as markup (~30%). One-time fee per agent identity; all subsequent tool calls are free within the per-agent caps."},"constraints":{"max_dns_records_per_agent":5,"max_tunnels_per_agent":3,"max_create_calls_per_hour":10,"max_total_calls_per_hour":60,"subdomain_naming":"Auto-generated random hash; optional prefix (max 8 chars)"},"mcp":{"transport":"streamable-http","endpoint":"https://cdn.agentserviceindex.com/mcp"},"agent_quickstart":["1. CALL register() with no arguments. You'll get HTTP 402 with a pay_to_address and total_amount_usdc. See the simple-crypto-payments skill if you need help paying.","2. SEND that USDC on Base. Wait a few seconds for confirmation.","3. CALL register(quote_id=...) using the quote_id from step 1 to receive your agent_id and agent_secret. Store these securely — the secret is shown only once.","4. DECIDE your hosting situation:","   - Public IPv4 (cloud VM): use route_subdomain(agent_id, agent_secret, target_ip, ...)","   - Localhost / behind NAT (laptop): use create_tunnel(agent_id, agent_secret, local_port, ...)","5. WAIT ~10s for DNS propagation, then verify your hostname.","6. MANAGE your resources with list_resources(), update_route(), delete_route(), delete_tunnel()."],"tools":[{"name":"register","description":"Get agent credentials. Two-step paid flow: call once with no args to receive a 402 with quote_id + pay_to_address; pay USDC on Base; call again with quote_id to redeem creds.","input_schema":{"type":"object","properties":{"quote_id":{"type":"string","description":"Optional. Pass on the second call after you've paid the invoice from the first call."}}}},{"name":"route_subdomain","description":"Create a DNS A record routing a random subdomain to your public IPv4. ONLY use if your machine has a publicly-reachable IPv4 (e.g. a cloud VM). Returns the hostname you can share.","input_schema":{"type":"object","required":["agent_id","agent_secret","target_ip"],"properties":{"agent_id":{"type":"string","description":"From register()"},"agent_secret":{"type":"string","description":"From register()"},"target_ip":{"type":"string","description":"Your public IPv4"},"prefix":{"type":"string","description":"Optional subdomain prefix (max 8 chars)"},"label":{"type":"string","description":"Optional human-readable label"}}}},{"name":"create_tunnel","description":"Provision a Cloudflare Tunnel from a random subdomain to localhost:<local_port>. Use when your app runs locally / behind NAT. Requires cloudflared binary. After calling, run the returned run_command and keep it running.","input_schema":{"type":"object","required":["agent_id","agent_secret"],"properties":{"agent_id":{"type":"string","description":"From register()"},"agent_secret":{"type":"string","description":"From register()"},"local_port":{"type":"integer","default":80,"description":"Local port"},"prefix":{"type":"string","description":"Optional subdomain prefix (max 8 chars)"},"label":{"type":"string","description":"Optional human-readable label"}}}},{"name":"list_resources","description":"List all DNS records and tunnels you own.","input_schema":{"type":"object","required":["agent_id","agent_secret"],"properties":{"agent_id":{"type":"string"},"agent_secret":{"type":"string"}}}},{"name":"update_route","description":"Update the target IP of an existing DNS route.","input_schema":{"type":"object","required":["agent_id","agent_secret","hostname","new_target_ip"],"properties":{"agent_id":{"type":"string"},"agent_secret":{"type":"string"},"hostname":{"type":"string","description":"Full hostname to update"},"new_target_ip":{"type":"string","description":"New public IPv4"}}}},{"name":"delete_route","description":"Delete a DNS route you own.","input_schema":{"type":"object","required":["agent_id","agent_secret","hostname"],"properties":{"agent_id":{"type":"string"},"agent_secret":{"type":"string"},"hostname":{"type":"string","description":"Full hostname to delete"}}}},{"name":"delete_tunnel","description":"Delete a tunnel you own.","input_schema":{"type":"object","required":["agent_id","agent_secret","hostname"],"properties":{"agent_id":{"type":"string"},"agent_secret":{"type":"string"},"hostname":{"type":"string","description":"Full hostname the tunnel serves"}}}}]}