{
  "protocolVersion": "1.0",
  "name": "V7 Agent",
  "description": "Public business agent for V7 (v7.dk): services, industry expertise, pricing models, contact options and meeting booking. Grounded only in content published on v7.dk.",
  "version": "1.0.0",
  "url": "https://bvomzvpifpyzwabwlvon.supabase.co/functions/v1/a2a",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "V7",
    "url": "https://v7.dk"
  },
  "documentationUrl": "https://v7.dk/agents",
  "iconUrl": "https://v7.dk/favicon.ico",
  "supportedInterfaces": [
    {
      "transport": "JSONRPC",
      "url": "https://bvomzvpifpyzwabwlvon.supabase.co/functions/v1/a2a",
      "protocolVersions": [
        "1.0",
        "0.3"
      ]
    },
    {
      "transport": "MCP",
      "url": "https://bvomzvpifpyzwabwlvon.supabase.co/functions/v1/mcp-public"
    }
  ],
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": true
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "securitySchemes": {},
  "security": [],
  "skills": [
    {
      "id": "company_profile",
      "name": "Company profile",
      "description": "Facts about V7: what the agency is, where it is located, CVR number, contact details and what it stands for.",
      "tags": [
        "company",
        "about",
        "facts"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "id": "list_services",
      "name": "List services",
      "description": "Lists every service V7 offers with a one-line summary and the page URL, in Danish or English.",
      "tags": [
        "services",
        "offering"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "id": "get_service",
      "name": "Get service",
      "description": "Details about a single V7 service, looked up by slug or name (for example google-ads, seo, ga4, consent-mode, web, ecommerce, generativ-ai).",
      "tags": [
        "services"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Service slug, e.g. google-ads"
          },
          "name": {
            "type": "string",
            "description": "Service name, e.g. Google Ads"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "find_industry_expertise",
      "name": "Find industry expertise",
      "description": "Maps an industry (for example tandlæger, advokater, webshops, håndværkere) to the V7 services that matter for it, plus the matching published articles.",
      "tags": [
        "industry",
        "expertise"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "industry": {
            "type": "string",
            "description": "Industry or trade, Danish or English"
          }
        },
        "required": [
          "industry"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "answer_question",
      "name": "Answer question",
      "description": "Answers a question about V7, its services, methods or published articles, grounded only in content published on v7.dk.",
      "tags": [
        "qa",
        "knowledge"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "description": "The question, Danish or English"
          }
        },
        "required": [
          "question"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "pricing_models",
      "name": "Pricing models",
      "description": "Explains how V7 prices work: retainer, project and performance. No amounts exist and none are ever returned.",
      "tags": [
        "pricing",
        "commercial"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "id": "contact_options",
      "name": "Contact options",
      "description": "How to reach V7: phone, contact page, address and the meeting booking page.",
      "tags": [
        "contact"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "id": "book_meeting",
      "name": "Book a meeting",
      "description": "Sends a meeting request to V7 and returns a reference. Before calling, confirm the name, contact details and need with the user and get their explicit yes. Required: name, email or phone, need, and consent === true.",
      "tags": [
        "lead",
        "booking",
        "write"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Full name of the person requesting the meeting"
          },
          "company": {
            "type": "string",
            "description": "Company name"
          },
          "email": {
            "type": "string",
            "description": "Email address (email or phone is required)"
          },
          "phone": {
            "type": "string",
            "description": "Phone number (email or phone is required)"
          },
          "need": {
            "type": "string",
            "description": "What they need help with"
          },
          "preferredTime": {
            "type": "string",
            "description": "Preferred time for the meeting"
          },
          "consent": {
            "type": "boolean",
            "description": "Must be true: the user explicitly agreed to be contacted"
          }
        },
        "required": [
          "name",
          "need",
          "consent"
        ],
        "additionalProperties": false
      }
    }
  ]
}