{
  "specVersion": "1.0",
  "host": {
    "displayName": "Validator WebMCP",
    "identifier": "did:web:pcalba.ro",
    "documentationUrl": "https://www.pcalba.ro/"
  },
  "entries": [
    {
      "identifier": "urn:air:pcalba.ro:mcp:website",
      "displayName": "Validator WebMCP Website Tools",
      "type": "application/mcp-server-card+json",
      "description": "Tools for a WebMCP validator: submit a URL, get the report of the tools a page registers in a real browser, and see the ranking of validated sites.",
      "tags": [
        "webmcp",
        "validator",
        "testing"
      ],
      "capabilities": [
        "validate_website",
        "get_webmcp_report",
        "get_leaderboard",
        "submit_contact_form"
      ],
      "representativeQueries": [
        "validate a page for WebMCP support",
        "get a WebMCP report for my website",
        "which sites score best on WebMCP"
      ],
      "metadata": {
        "availableLanguage": "ro",
        "discovery": "Tools are registered in the page through navigator.modelContext; load any page on the site to use them."
      },
      "data": {
        "name": "pcalba-ro",
        "description": "Tools for a WebMCP validator: submit a URL, get the report of the tools a page registers in a real browser, and see the ranking of validated sites.",
        "tools": [
          {
            "name": "validate_website",
            "description": "Starts a NEW WebMCP validation scan for a public website. Returns a JSON object with the report link; the scan itself finishes in about a minute, so fetch the report afterwards with get_webmcp_report. Rate limited to a few scans per hour. Use this only when the site has never been scanned or the user explicitly wants fresh results; if a report already exists, get_webmcp_report is instant and does not consume the limit.",
            "inputSchema": {
              "type": "object",
              "properties": {}
            }
          },
          {
            "name": "get_webmcp_report",
            "description": "Returns the latest COMPLETED validation report for a website, without starting a new scan. Returns a JSON object with `website`, `url`, `score` (0 to 100), `grade` (a letter grade), `categories` with `access`, `tools`, `discovery` and `coverage`, each carrying `points` out of `max`, `checks`, an array where each entry has an `id` and a `status` of pass, warn or fail, `tools_detected`, `report_url` and `scanned_at`. Reach for this first whenever someone asks how a site scores; call validate_website only if no report comes back.",
            "inputSchema": {
              "type": "object",
              "properties": {}
            }
          },
          {
            "name": "get_leaderboard",
            "description": "Returns the highest scoring websites validated here. Returns a JSON array where each entry has `website`, `score` (0 to 100), `grade` and `report_url`. Ordered best first; `limit` controls how many come back, between 1 and 25, defaulting to 10. Use it for questions about which sites are ready for AI agents, or to show an example of a good implementation.",
            "inputSchema": {
              "type": "object",
              "properties": {}
            }
          },
          {
            "name": "submit_contact_form",
            "description": "Sends a message to PC Alba: a repair request for a computer or laptop, or a question about WebMCP for an online store. Confirm the details with the user before calling this, because it submits the form immediately. Returns a short confirmation once sent; a human replies by email within one business day.",
            "inputSchema": {
              "type": "object",
              "properties": {}
            }
          }
        ]
      }
    }
  ]
}
