Luala

app.lualaPublished by luala.appOfficial publisherv1.19.0Updated Nov 3, 2026

Photo shoots of you from your saved selfies: pick a pack, shoot, edit.

VerifiedStreamable HTTPWeb executable

Overview

Luala's hosted MCP server (luala.app), published by luala.app; no sign-in required; Streamable HTTP; 19 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Publisher
luala.app
Endpoint
luala.app
Last checked

Installation

In SourceWeft

  1. Open Luala in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/app.luala%2Fluala/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "luala": {
      "type": "http",
      "url": "https://luala.app/mcp"
    }
  }
}

Tools

19

list_packs

List photo packs

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 all of a pack's photos cost and the price of one: a shoot can be any of a pack's shots, down to a single photo. Optionally only the packs for one use case.

Parametersuse_case

get_pack

Get a pack's options

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 one photo, and the user may pick any of them, from one to all (the default). start_shoot takes these ids.

Parametersslugrequired

start_shoot

Start a shoot

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 said, offer them the whole pack or only the shots they want, even one. Tell the user the price first and pass it as max_credits; the shoot is refused if it costs more. A photo takes about 20 seconds: follow them with get_shoot. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parameterspackrequiredoptionsmax_creditsrequired

get_shoot

Get a shoot's photos

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 the user), and the shoot's page there; previews of the ready ones once none is working. While photos are working it waits up to 25 seconds for them before answering; call it again until none is working, telling the user how many are ready each time.

Parametersshoot_idrequired

edit

Edit a photo

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 from get_pack of the photo's pack), light, the attributes, and text, up to 300 characters of what to change. type zoom_out steps back one step. Pass the price the user agreed to as max_credits: the photo's prices from get_shoot or list_photos name it. Fetch the result with list_photos. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parameterstexttyperequiredbeardlightplacemakeupoutfitglassesphoto_idrequiredexpressionhair_colourhair_length+1 more

zoom_in

Zoom in on a photo

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 edge, top edge and width as fractions of the photo (0 to 1); left out, the largest frame is centred. Pass the price the user agreed to as max_credits: the photo's prices from get_shoot or list_photos name it. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parameterswxyratiorequiredphoto_idrequiredmax_creditsrequired

upscale

Upscale a photo

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 prices from get_shoot or list_photos name them. Pass the price the user agreed to as max_credits. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parameterssizerequiredphoto_idrequiredmax_creditsrequired

reroll

Re-roll a photo

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 from get_shoot or list_photos name it. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parametersphoto_idrequiredmax_creditsrequired

remove_background

Remove a photo's background

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 offers #ffffff, #e9e7e3, #3a3a3c, #000000, #1f2f4d, #bcd7ee, #f2e8d5, #b9c8b0). On a photo that is already a cutout it lays it on another backdrop. Pass the price the user agreed to as max_credits: the photo's prices from get_shoot or list_photos name it. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parametersbackdropphoto_idrequiredmax_creditsrequired

replace_background

Replace a photo's background

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 says the place in up to 300 characters; a scene wins when both come. Pass the price the user agreed to as max_credits: the photo's prices from get_shoot or list_photos name it. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parameterstextscenephoto_idrequiredmax_creditsrequired

light_camera

Relight a photo, or see it through another camera

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), and/or text, up to 300 characters of what to change. What is not picked stays as it is. light and look keep the pose, framing and scene; a lens, angle or focus pick re-imagines the same moment through that camera, so the framing changes. Pass the price the user agreed to as max_credits: the photo's prices from get_shoot or list_photos name it. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parameterslenslooktextanglefocuslightphoto_idrequiredmax_creditsrequired

restore

Restore an old photo

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 scratches, tears and stains, faces enhances them, colourise adds colour to a black and white one. size 1K is Standard, 2K High quality; the price is by size. Pass the price the user agreed to as max_credits: the photo's prices from get_shoot or list_photos name it. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parameterssizerequiredfacesrepairphoto_idrequiredcolourisemax_creditsrequired

combine

Add to a photo from another photo

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, framing and light, paid from their credits. with_photo_id may not be a selfie, nor photo_id itself. Pass the price the user agreed to as max_credits: the photo's prices from get_shoot or list_photos name it. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parametersphoto_idrequiredmax_creditsrequiredwith_photo_idrequired

try_on

Try on clothes from another photo

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 only that part of the outfit. with_photo_id may not be a selfie, nor photo_id itself. Pass the price the user agreed to as max_credits: the photo's prices from get_shoot or list_photos name it. If a call to this tool got no answer, it may already have started: check list_photos before calling it again.

Parameterspartphoto_idrequiredmax_creditsrequiredwith_photo_idrequired

list_photos

List the user's photos

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 25 seconds for it. Without, the user's latest shoots, newest first, five at a time; pass the answer's next as before for the five after. With uploads true, the photos the user added in the app (My photos) and those made from them, newest first, ten at a time, paged the same way: an old print to restore, clothes to try on, something to add.

Parametersidsbeforeuploads

add_photo

Add a photo

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 saved photo with its photo_id and edit prices: when the user asked for an edit of it, tell them that edit's price, and once they agree make it with Luala's tool for it on this photo_id, never with another image tool. Pass the file the user attached as photo. If you can't, but the file is in your sandbox, call with its content_type (image/jpeg, image/png or image/webp: convert a HEIC to JPEG first) and size in bytes, PUT the file to the answer's upload url with its headers, then call again with the answer's key. Called with none of these, it answers with the luala.app page where the user adds it. The user accepted the upload rules when connecting Luala.

Parameterskeysizephotocontent_type

add_selfie

Add a selfie

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 user attached as photo. If you can't, but the file is in your sandbox, call with its content_type (image/jpeg, image/png or image/webp: convert a HEIC to JPEG first) and size in bytes, PUT the file to the answer's upload url with its headers, then call again with the answer's key. Called with none of these, it answers with the luala.app page where the user adds it. The user accepted the upload rules when connecting Luala.

Parameterskeysizephotocontent_type

upload_status

Whether an upload was saved

For Luala's widget: whether the file staged at key was saved by add_photo or add_selfie (tool). Read-only.

Parameterskeyrequiredtoolrequired

balance

Credit balance

The user's credit balance, about how many photos it buys, and where to buy more.

Takes no parameters.

Version history

1
  1. v1.19.0LatestNov 3, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.