{
 "name": "Border",
 "description": "Border checks a cross-origin API call the way the browser does: it sends the real preflight to the live API (or reads pasted curl output for localhost), applies the Fetch standard CORS rules as Chrome implements them, and returns the verdict, Chrome's exact error message, the failing step and the exact response headers that fix it. No account.",
 "version": "1.0.0",
 "url": "https://border.clawhard.com/a2a",
 "preferredTransport": "JSONRPC",
 "protocolVersion": "1.0",
 "supportedInterfaces": [
  {
   "url": "https://border.clawhard.com/a2a",
   "protocolBinding": "JSONRPC",
   "protocolVersion": "1.0"
  },
  {
   "url": "https://border.clawhard.com/a2a",
   "protocolBinding": "JSONRPC",
   "protocolVersion": "0.3"
  }
 ],
 "provider": {
  "organization": "Clawhard Studio",
  "url": "https://clawhard.com"
 },
 "iconUrl": "https://clawhard.com/icon-512.png",
 "documentationUrl": "https://border.clawhard.com/llms.txt",
 "capabilities": {
  "streaming": false,
  "pushNotifications": false,
  "extendedAgentCard": false
 },
 "defaultInputModes": [
  "application/json",
  "text/plain"
 ],
 "defaultOutputModes": [
  "application/json",
  "text/plain"
 ],
 "skills": [
  {
   "id": "border_check_cors",
   "name": "Check whether a browser would allow a cross-origin API call (CORS)",
   "description": "Use when the user hits a CORS error (\"blocked by CORS policy\", \"No 'Access-Control-Allow-Origin' header\", \"preflight\", \"Failed to fetch\" from a frontend) or is about to call a public API from browser code (React, Next.js, Vue, a browser extension page) and asks whether it will work (signals: \"CORS\", \"works in Postman but not in the browser\", \"preflight 401/404\", \"Access-Control-Allow-Headers\",…",
   "tags": [
    "border",
    "DeveloperApplication",
    "read-only"
   ],
   "examples": [
    "Why does my fetch say blocked by CORS policy?",
    "Will a POST with JSON from localhost:3000 pass CORS on this API?",
    "Does this API allow cookies from my site?"
   ],
   "inputModes": [
    "application/json",
    "text/plain"
   ],
   "outputModes": [
    "application/json",
    "text/plain"
   ]
  },
  {
   "id": "border_check_cors_headers",
   "name": "Check pasted preflight and response headers against the CORS rules",
   "description": "Use when a CORS problem involves a server Border cannot reach (localhost, a dev or staging server, a private network, a custom port) or a POST, PUT, PATCH or DELETE whose real response needs checking, and the raw response headers are available from curl -i or the browser DevTools Network tab (signals: \"here is the OPTIONS response\", \"my local API returns these headers\", \"CORS works on localhost…",
   "tags": [
    "border",
    "DeveloperApplication",
    "read-only"
   ],
   "examples": [
    "Why does my fetch say blocked by CORS policy?",
    "Will a POST with JSON from localhost:3000 pass CORS on this API?",
    "Does this API allow cookies from my site?"
   ],
   "inputModes": [
    "application/json",
    "text/plain"
   ],
   "outputModes": [
    "application/json",
    "text/plain"
   ]
  }
 ]
}