{
 "voice": "One card of the book.",
 "agent": {
  "slug": "luala",
  "name": "Luala",
  "specialty": "media",
  "description": "Photo shoots of you from your saved selfies: pick a pack, shoot, edit.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-03T23:05:56.335Z",
  "card": "/agent/luala",
  "url": "https://allagents.app/agent/luala",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://luala.app/mcp",
   "site": "https://luala.app"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://luala.app",
   "hire": null
  },
  "bubble": "closed",
  "score": 51,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-11-04",
   "total": 19,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "list_packs",
     "description": "Lists Luala's photo packs (a themed shoot of several photos of the user, made from their selfies) and mixes (one photo from each of several packs), with what…"
    },
    {
     "name": "get_pack",
     "description": "A pack's or mix's options (outfit, place, light, shots, shape and the attribute pickers), with ids, labels and defaults, and its price per photo. Each shot is…"
    },
    {
     "name": "start_shoot",
     "description": "Starts a shoot of a pack from the user's saved selfies, paid from their credits: one photo per picked shot, at the price get_pack gives. Unless the user has…"
    },
    {
     "name": "get_shoot",
     "description": "A shoot's photos: each one's id, whether it is ready, still working or failed (failed photos are refunded), each one's link in the Luala app (the link to give…"
    },
    {
     "name": "edit",
     "description": "Makes an edited copy of one of the user's photos, paid from their credits. type change keeps the pose and framing and changes any of: outfit and place (ids…"
    },
    {
     "name": "zoom_in",
     "description": "Cuts a frame of the given shape out of one of the user's photos and upscales it to a full photo, paid from their credits. x, y and w are the frame's left…"
    },
    {
     "name": "upscale",
     "description": "Upscales one of the user's photos to 1K, 2K or 4K, paid from their credits. A photo is offered only the sizes larger than it and at most 4× its size; its…"
    },
    {
     "name": "reroll",
     "description": "Makes the same photo again, a new take of the same look, paid from the user's credits. Pass the price the user agreed to as max_credits: the photo's prices…"
    },
    {
     "name": "remove_background",
     "description": "Cuts the person out of one of the user's photos, paid from their credits: on a clear (transparent) backdrop unless backdrop names a colour, #rrggbb (the app…"
    },
    {
     "name": "replace_background",
     "description": "Puts the person in one of the user's photos somewhere else, keeping their pose and framing, paid from their credits: scene is one of the app's scenes, or text…"
    },
    {
     "name": "light_camera",
     "description": "Changes the light, the camera or the look of one of the user's photos, paid from their credits: at most one pick per group (light, lens, angle, focus, look)…"
    },
    {
     "name": "restore",
     "description": "Repairs an old or damaged photo of the user's (a photographed print, most often one from list_photos with uploads), paid from their credits: repair fixes…"
    },
    {
     "name": "combine",
     "description": "Adds the main subject of another of the user's photos (with_photo_id: an object or a person, a cutout works well) into one of their photos, keeping its scene…"
    },
    {
     "name": "try_on",
     "description": "Puts the clothes another of the user's photos shows (with_photo_id) on the person in one of their photos, paid from their credits; part top or bottom takes…"
    },
    {
     "name": "list_photos",
     "description": "With ids, those photos (up to 10), with a preview of each ready one once none is working: how to fetch an edit's result. While one is working it waits up to…"
    },
    {
     "name": "add_photo",
     "description": "Adds one photo to the user's My photos in Luala, free, so it can be edited: an old print to restore, clothes to try on, a photo to change. The answer is the…"
    },
    {
     "name": "add_selfie",
     "description": "Adds one selfie to the user's selfie set in Luala, which shoots are made from, free: one face, clearly visible, up to 15 selfies in the set. Pass the file the…"
    },
    {
     "name": "upload_status",
     "description": "For Luala's widget: whether the file staged at key was saved by add_photo or add_selfie (tool). Read-only."
    },
    {
     "name": "balance",
     "description": "The user's credit balance, about how many photos it buys, and where to buy more."
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://luala.app/mcp",
   "answers": true,
   "checked": "2026-11-04T06:02:27.955Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-04T06:47:12.967Z",
     "since": "2026-11-04T06:47:12.967Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-04T06:47:12.967Z",
    "since": "2026-11-04T06:47:12.967Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-11-04T06:02:27.955Z",
   "last_answer_at": "2026-11-04T06:02:27.955Z",
   "last_ms": 73,
   "checked_at": "2026-11-04T06:02:27.955Z"
  }
 }
}