{
  "$comment": "MCP server card (SEP-1649 draft). Static description of the Virtnumber MCP server for registries and crawlers that cannot complete OAuth. Keep in sync with bun/routes/mcp/server.ts.",
  "serverInfo": {
    "name": "virtnumber",
    "title": "Virtnumber",
    "version": "2.1.0",
    "description": "Rent phone numbers in 14 countries, read the SMS they receive and send SMS, paid from the account balance.",
    "websiteUrl": "https://www.virtnumber.com/developer",
    "icons": [{ "src": "https://www.virtnumber.com/icons/icon-192.png", "mimeType": "image/png", "sizes": ["192x192"] }]
  },
  "transport": { "type": "streamable-http", "url": "https://www.virtnumber.com/mcp" },
  "authentication": {
    "required": true,
    "schemes": ["oauth2"],
    "protectedResourceMetadata": "https://www.virtnumber.com/.well-known/oauth-protected-resource/mcp",
    "alternatives": ["x-api-user and x-api-token headers (developer API key)"]
  },
  "documentation": "https://www.virtnumber.com/developer",
  "openapi": "https://www.virtnumber.com/openapi.json",
  "tools": [
    { "name": "get_balance", "title": "Get balance and permissions", "readOnly": true },
    { "name": "get_pricing", "title": "Get number pricing", "readOnly": true },
    { "name": "list_my_numbers", "title": "List my numbers", "readOnly": true },
    { "name": "list_messages", "title": "Read SMS on a number", "readOnly": true },
    { "name": "wait_for_sms", "title": "Wait for the next SMS", "readOnly": true },
    { "name": "buy_number", "title": "Rent a phone number", "readOnly": false },
    { "name": "send_sms", "title": "Send an SMS", "readOnly": false },
    { "name": "delete_number", "title": "Cancel a phone number", "readOnly": false, "destructive": true }
  ]
}
