{
  "protocolVersion": "0.3.0",
  "name": "OpenFactory",
  "description": "AI-readable discovery card for OpenFactory. OpenFactory builds, tests, and manages Linux images, and tests the UI of any web app by URL in a managed tester VM (no deploy required). Direct Agent2Agent task execution is planned; MCP is the supported action interface today.",
  "url": "https://ai.openfactory.tech/",
  "version": "0.1.0",
  "preferredTransport": "MCP Streamable HTTP",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": ["text/plain"],
  "defaultOutputModes": ["text/plain", "application/json"],
  "skills": [
    {
      "id": "openfactory-mcp-discovery",
      "name": "OpenFactory MCP Discovery",
      "description": "Discover how to connect AI assistants to OpenFactory with MCP for builds, recipes, VMs, desktop interaction, test runs, and reusable test suites.",
      "tags": ["mcp", "linux-images", "vm-testing", "test-suites"],
      "examples": [
        "Connect an MCP client to OpenFactory.",
        "Create a reusable test suite before an image is built.",
        "Run a test suite against one or more completed ISO targets."
      ]
    },
    {
      "id": "openfactory-app-ui-testing",
      "name": "OpenFactory App UI Testing",
      "description": "Test the UI of any running web app by URL in a managed tester VM. No build or deploy with OpenFactory is required, so it works with apps already hosted on Vercel, AWS, or any reachable URL. Reusable, self-hardening GUI scenarios with environment-variable and 2FA support.",
      "tags": ["mcp", "ui-testing", "gui-testing", "e2e-testing", "no-deploy", "vercel", "aws", "2fa"],
      "examples": [
        "Run a GUI test against my app at a Vercel URL without deploying it through OpenFactory.",
        "Create a reusable login scenario with 2FA and re-run it against a staging URL.",
        "Open a URL in a tester VM, screenshot it, and box a UI element with a label."
      ]
    }
  ],
  "securitySchemes": {
    "openfactoryMcpKey": {
      "type": "http",
      "scheme": "bearer",
      "description": "Use OpenFactory MCP keys only with trusted MCP clients. Never publish real keys."
    }
  },
  "security": [
    {
      "openfactoryMcpKey": []
    }
  ],
  "openfactory": {
    "a2a_status": "planned",
    "task_execution": "not_available",
    "mcp": {
      "status": "supported",
      "streamable_http_url": "https://console.openfactory.tech/mcp-stream/mcp",
      "reference": "https://docs.openfactory.tech/reference/mcp"
    },
    "discovery": {
      "llms_txt": "https://openfactory.tech/llms.txt",
      "llms_full_txt": "https://openfactory.tech/llms-full.txt",
      "ai_json": "https://openfactory.tech/ai.json"
    }
  }
}
