{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/a2e-protocol/a2e-protocol-spec/main/schema/entity-card.schema.json", "title": "A2E Protocol", "description": "Agent-to-Entity Protocol declaration", "type": "object", "required": ["a2e", "entity", "mcps"], "properties": { "a2e": { "type": "string", "const": "0.1", "description": "Protocol version" }, "entity": { "type": "object", "required": ["domain", "name", "category"], "properties": { "domain": { "type": "string", "description": "Primary domain (must match the host serving this file)" }, "name": { "type": "string", "description": "Human-readable entity name" }, "category": { "type": "string", "enum": [ "restaurant", "beauty", "health", "hotel", "transport", "retail", "entertainment", "fitness", "education", "real_estate", "services", "other" ], "description": "Primary category" }, "description": { "type": "string", "maxLength": 500, "description": "Brief description (max 500 chars)" }, "location": { "type": "object", "properties": { "address": { "type": "string", "description": "Street address" }, "city": { "type": "string", "description": "City" }, "postal_code": { "type": "string", "description": "Postal/ZIP code" }, "country": { "type": "string", "pattern": "^[A-Z]{2}$", "description": "ISO 3166-1 alpha-2 country code" }, "lat": { "type": "number", "minimum": -90, "maximum": 90, "description": "Latitude" }, "lng": { "type": "number", "minimum": -180, "maximum": 180, "description": "Longitude" } } }, "contact": { "type": "object", "properties": { "phone": { "type": "string", "description": "Phone number (E.164 format recommended)" }, "email": { "type": "string", "format": "email", "description": "Email address" } } } } }, "mcps": { "type": "array", "minItems": 1, "description": "List of MCP connections", "items": { "type": "object", "required": ["endpoint", "capabilities"], "properties": { "endpoint": { "type": "string", "format": "uri", "pattern": "^https://", "description": "MCP server URL (must be HTTPS)" }, "capabilities": { "type": "array", "minItems": 1, "items": { "type": "string", "pattern": "^[a-z_]+$" }, "description": "List of supported capabilities" }, "entity_ref": { "type": "string", "description": "Entity's ID in the MCP provider's system" }, "auth_required": { "type": "boolean", "default": false, "description": "Whether user OAuth is required to perform actions" }, "priority": { "type": "integer", "minimum": 1, "description": "Preference order when multiple MCPs are available (1 = first choice)" } } } } } }