{
  "protocolVersion": "0.2.0",
  "name": "EDD Downloads Search",
  "description": "Semantic search over the AutoHotkey tools, scripts, and courses sold at the-automator.com. Finds products by meaning rather than keywords — describe the problem you are trying to solve and it returns relevant downloads. Read-only.",
  "url": "https://edd-downloads-a2a.joe-glines.workers.dev/rpc",
  "version": "1.0.0",
  "documentationUrl": "https://www.the-automator.com/",
  "provider": {
    "organization": "the-automator.com",
    "url": "https://www.the-automator.com/"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "securitySchemes": {
    "apiKey": {
      "type": "http",
      "scheme": "bearer",
      "description": "API key issued by the-automator.com. Send as \"Authorization: Bearer <key>\" or \"X-API-Key: <key>\"."
    }
  },
  "security": [
    {
      "apiKey": []
    }
  ],
  "skills": [
    {
      "id": "search_downloads",
      "name": "Search downloads",
      "description": "Search the-automator.com catalog of AutoHotkey tools, scripts, and courses by meaning. Returns titles, product page URLs, descriptions and relevance scores. Never returns prices, sales figures, or file download links — only public product pages.",
      "tags": [
        "search",
        "autohotkey",
        "downloads",
        "semantic-search",
        "ecommerce"
      ],
      "examples": [
        "I need a tool to scrape data from a website",
        "How do I automate Excel with AutoHotkey?",
        "something to help me build a GUI",
        "course on getting started with AHK v2"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    }
  ],
  "x-searchParameters": {
    "query": {
      "type": "string",
      "required": true,
      "maxLength": 1000
    },
    "source_type": {
      "type": "string",
      "required": false,
      "default": "product",
      "enum": [
        "product",
        "post",
        "page",
        "link"
      ],
      "description": "Filter by content type. Defaults to \"product\". Pass null to search everything — note that blog links often outrank products, so the default exists for a reason."
    },
    "top_k": {
      "type": "integer",
      "required": false,
      "default": 5,
      "maximum": 20
    },
    "include_description": {
      "type": "boolean",
      "required": false,
      "default": true
    }
  }
}