Luala
app.luala/lualaVersion 1.26.0Photo shoots of you from your saved selfies: pick a pack, shoot, edit.
Status
Responds88 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:37 UTC
- Latency
- 88 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://luala.app/mcpResponds88 msNo sign-in
Claude Code
claude mcp add --transport http luala https://luala.app/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: luala
Remote MCP server URL: https://luala.app/mcpCursor
{
"mcpServers": {
"luala": {
"url": "https://luala.app/mcp"
}
}
}VS Code
code --add-mcp '{"name":"luala","type":"http","url":"https://luala.app/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
23 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
add_photoAdds 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 by calling the Luala tool its price is keyed by in photo.prices (remove_background, replace_background, edit…) with this photo_id, which saves the result to their Luala photos. 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. | No | No | No | Yes |
add_selfieAdds one selfie to one of the user's characters in Luala, which shoots are made from, free: one face, clearly visible, up to 15 selfies a character. It joins the character last used unless character names another. 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. | No | No | No | Yes |
balanceThe user's credit balance, about how many photos it buys, and where to buy more. Left without space, a user in several spaces gets each space's. | No | Yes | Not declared | No |
blur_facesHides every face in one of the user's photos, as a new photo, paid from their credits: effect blur or pixelate, strength 0 (light) to 100 (strong). The faces are found by Luala; with none found nothing is started or charged. To keep some faces sharp or hide one it missed, the user opens the photo's link and uses Blur faces in the app. 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. | Yes | No | No | No |
combineAdds to one of the user's photos, keeping its scene, framing and light, paid from their credits, exactly one of: the main subject of another of their photos (with_photo_id: an object or a person, a cutout works well), which may not be a selfie nor photo_id itself; or one of their characters (with_character), made from that character's selfies and dressed for the scene, who may not be the one the photo is of. 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. | Yes | No | No | No |
editMakes 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; a place that is a pet or a print, not a scene, is not one to change to), 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. Text is rewritten before anything is made: what Luala doesn't make is left out, a look like a named person becomes that styling, and the result's text is what was sent. 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. | Yes | No | No | No |
get_packA 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. A pack's top names the 3 pickers to offer first, under the pack's own names; a pack without a place or light has an empty list for it. Each shot is one photo, and the user may pick any of them, from one to all (the default). start_shoot takes these ids. | No | Yes | Not declared | No |
get_shootA 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. | No | Yes | Not declared | No |
light_cameraChanges 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. Text is rewritten before anything is made: what Luala doesn't make is left out, a look like a named person becomes that styling, and the result's text is what was sent. 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. | Yes | No | No | No |
list_charactersThe user's characters: the people their photos are made of, each a set of selfies (the user, or someone who gave them written consent), or an invented adult the user made from a form in the app (fictional: true), which shoots like any other and takes no selfies. The default is the one last used, which start_shoot and add_selfie use when no character is passed. When the user has more than one and hasn't said who a shoot is of, ask. | No | Yes | Not declared | No |
list_packsLists 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. | No | Yes | Not declared | No |
list_photosWith 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. ids are found in whichever space holds them; the lists are of one space. | No | Yes | Not declared | No |
list_spacesThe user's Luala spaces: their personal one and any shared one they are in, each with its own characters, photos and credits. Each has its id (the value the other tools take as space), its name, whether it is personal or shared, the user's role there (owner or member) and its balance. The tools act in the personal space unless given another. When the user has more than one and hasn't said which a shoot or a list is for, ask. | No | Yes | Not declared | No |
remove_backgroundCuts 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. | Yes | No | No | No |
remove_objectsTakes what description names out of one of the user's photos, paid from their credits, and fills where it was from what is around it; nothing else in the photo changes. Describe it as the user did, in any language (the people behind me, the bin on the left, the sign and the cables): Luala finds every match and removes the ones the words mean. 4 credits for one or two kinds of thing, 5 for three or four; when nothing matches, nothing is charged and the answer says so. Not on a cutout. 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. | Yes | No | No | No |
replace_backgroundPuts 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. Text is rewritten before anything is made: what Luala doesn't make is left out, a look like a named person becomes that styling, and the result's text is what was sent. 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. | Yes | No | No | No |
rerollMakes 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. | Yes | No | No | No |
restoreRepairs 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, 4K Print 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. | Yes | No | No | No |
start_shootStarts a shoot of a pack from a character'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, a 4K one about 30: 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. | Yes | No | No | No |
try_onPuts 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. | Yes | No | No | No |
upload_statusFor Luala's widget: whether the file staged at key was saved by add_photo or add_selfie (tool). Read-only. | No | Yes | Not declared | No |
upscaleUpscales 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. | Yes | No | No | No |
zoom_inCuts 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. | Yes | No | No | No |
Details
- Registry status
- Active
- Published
- Nov 10, 2026
- Updated
- Nov 10, 2026
- Repository
- Not given
- Categories (suggested)
- Files and storageSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared