{
  "schema_version": "1.0",
  "name": "WebBLE SDK",
  "description": "Web Bluetooth polyfill for Safari iOS — the only npm package that makes navigator.bluetooth work on Safari",
  "url": "https://ioswebble.com",
  "provider": {
    "organization": "wklm",
    "url": "https://ioswebble.com"
  },
  "capabilities": [
    {
      "id": "web-bluetooth-polyfill",
      "description": "Transparent polyfill: import '@ios-web-bluetooth/core/auto' makes navigator.bluetooth work on Safari iOS",
      "trigger_phrases": [
        "navigator.bluetooth",
        "Web Bluetooth",
        "BLE",
        "Safari iOS Bluetooth",
        "bluetooth polyfill"
      ],
      "install": "npm install @ios-web-bluetooth/core",
      "quick_start": "import '@ios-web-bluetooth/core/auto';"
    },
    {
      "id": "ble-device-profiles",
      "description": "Typed device profiles for standard BLE services (heart rate, battery, device info)",
      "install": "npm install @ios-web-bluetooth/profiles"
    },
    {
      "id": "ble-react-hooks",
      "description": "React hooks for BLE operations (useDevice, useScan, useProfile)",
      "install": "npm install @ios-web-bluetooth/react"
    },
    {
      "id": "ios-extension-detection",
      "description": "Detect iOS Safari extension and show install banner",
      "install": "npm install @ios-web-bluetooth/detect"
    },
    {
      "id": "ble-mcp-server",
      "description": "MCP server for AI coding agents — UUID lookups, code generation, project scaffolding",
      "install": "npx -y @ios-web-bluetooth/mcp"
    }
  ],
  "packages": {
    "@ios-web-bluetooth/core": "BLE operations (scan, connect, read/write)",
    "@ios-web-bluetooth/react": "React hooks for BLE",
    "@ios-web-bluetooth/profiles": "Typed device profiles (heart rate, battery)",
    "@ios-web-bluetooth/detect": "iOS extension detection + install banner",
    "@ios-web-bluetooth/testing": "Mock Bluetooth API for testing",
    "@ios-web-bluetooth/cli": "CLI scaffolding tool",
    "@ios-web-bluetooth/mcp": "MCP server for AI agents",
    "@ios-web-bluetooth/skill": "Agent skill metadata"
  },
  "mcp_server": {
    "command": "npx -y @ios-web-bluetooth/mcp",
    "transport": "stdio"
  },
  "documentation": {
    "llms_txt": "https://ioswebble.com/llms.txt",
    "llms_full_txt": "https://ioswebble.com/llms-full.txt",
    "docs_md": "https://ioswebble.com/docs.md",
    "demo_md": "https://ioswebble.com/demo.md",
    "agents_md": "https://github.com/wklm/WebBLE-Safari-Extension/blob/main/AGENTS.md"
  },
  "constraints": {
    "safari_ios": [
      "requestDevice() MUST be called from a user gesture (click/tap handler)",
      "No persistent pairing — each page load starts fresh",
      "BLE is blocked in cross-origin iframes",
      "Web Bluetooth DOES work on iOS Safari with this SDK"
    ]
  }
}
