Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Luw.ai

NPM · @LUW-AI/MCP · 2 COMPONENTS

AI interior, exterior and landscape design, photoreal rendering, image editing, video and 3D.

+18 this week 86 Trust /100

Last scanned (7 hours ago)

Scores higher than 88% of npm servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Luvi-io/luw-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 6 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability80
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5768 tokens (~117/item across 49 items; 24 tools + 25 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
  • Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 93% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 21 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 17 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 0.3.2 → 0.3.3 functional
  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Oct 26 +33
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Tool coverage: unverified → 100 ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Stability: unverified → 0.03 ▲ functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 93 functional
    • First check of Destructive annotations: 100 functional
    • First check of Schema quality: good functional
  • 14 Oct 26 0
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 93 functional
    • First check of Destructive annotations: 100 functional
    • First check of Schema quality: good functional
    • Package version: 0.3.0 → 0.3.2 functional
    • Package version: 0.3.0 → 0.3.1 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Oct 2026 · Analysed npm/@luw-ai/mcp@0.3.3

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo Luvi-io/luw-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/Luvi-io/luw-mcp/.github/workflows/release.yml@refs/tags/v0.3.3
Rekor log index 3295993831
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:865513f80a4731e503ebda75893b40cb8beebbb5bf2c4d08984dbc6d482cb18635838997f8a78092cde257ded6ba9a6ac5a983aa805111e48537c5a7e

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 24 exposed · ~5,177 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
luw_archigpt ~166

Ask Luw.ai's ArchiGPT, an AI architect: design advice, feng shui, space planning, material and color suggestions, technical questions, and estimating square meters from a photo or plan. Attach an image to discuss it. Each call is a standalone question, so put the details it depends on into the message. Costs 1 credit per ~3000 words.

NameTypeReqDescription
imagestring–Image to discuss (https:// URL, local file path, or data: URI).
languagestring–Reply language, e.g. "en" or "tr". Auto-detected when omitted.
messagestringyesYour question or message, with the details it depends on.
persona_idinteger–Persona that remembers this conversation.

No output schema declared.

No examples provided.

luw_background ~163

Luw.ai Change Background: cut out a product/object from its background (transparent PNG) — or, with a prompt, place it in a new generated scene for marketing shots ("on a marble kitchen counter, morning light"). Omit prompt to just remove the background. Costs 1 credit.

NameTypeReqDescription
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output image format.
imagestringyesProduct or object photo (https:// URL, local file path, or data: URI).
promptstring–New background to generate. Leave empty to remove the background.

No output schema declared.

No examples provided.

luw_edit_image ~259

Luw.ai Magic Prompt AI: edit any image with a plain-language instruction: "make the sofa green velvet", "add a pendant lamp over the table", "turn it into a night scene". Pass products, materials or a mood board as reference_images to place or apply them. For edits restricted to an exact area, use luw_magic_wand. Costs 1 credit per variation.

NameTypeReqDescription
enginestring–Model: aria (default), symphony (Symphony-3) or nano-banana-2.
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output image format.
imagestringyesImage to edit (https:// URL, local file path, or data: URI).
promptstringyesThe edit to make.
reference_imagesarray–Up to 6 reference images (furniture, materials, products, mood boards) to draw from.
resolutionstring–Output resolution (default 2k).
seedinteger–Fix for reproducible results.
variationsinteger–Number of alternative designs (1-4, default 1); each is billed as a generation.

No output schema declared.

No examples provided.

luw_expand_image ~98

Luw.ai Expand AI: outpaint a tightly cropped architectural or interior photo to a wider view. Costs 1 credit.

NameTypeReqDescription
formatstring–Output image format.
imagestringyesPhoto to expand (https:// URL, local file path, or data: URI).
precisioninteger–How strictly to keep the input's structure: 90 = precise, 75 = balanced, 40 = creative.

No output schema declared.

No examples provided.

luw_exterior_design ~388

Luw.ai Exterior AI: redesign a building exterior or facade photo — houses, villas, apartments, commercial buildings — in a new architectural style, with new materials, colors and landscaping, keeping the structure. Costs 1 credit per variation.

NameTypeReqDescription
building_typestring–Building/space type, e.g. "Modern House Exterior", "Luxury Villa Exterior", "Outdoor Patio" (see luw_list_options kind="exterior_types").
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output image format.
imagestringyesPhoto of the building (https:// URL, local file path, or data: URI).
persona_idinteger–Persona whose saved images and style knowledge to use.
precisioninteger–How strictly to keep the input's structure: 90 = precise, 75 = balanced, 40 = creative.
promptstring–What you want, in plain language.
reference_imagesarray–Up to 6 reference images (furniture, materials, products, mood boards) to draw from.
seedinteger–Fix for reproducible results.
style_referencestring–Style-transfer source: an image whose look to copy (https:// URL, local file path, or data: URI), or "persona" to use slot 1 of persona_id.
stylesarray–Design style names, e.g. ["Scandinavian"]; for Japandi use ["Japanese Design", "Scandinavian"]. Case-sensitive; see luw_list_options.
variationsinteger–Number of alternative designs (1-4, default 1); each is billed as a generation.

No output schema declared.

No examples provided.

luw_generate_image ~251

Luw.ai Fluw AI: generate a photorealistic image or illustration from a text prompt (optionally guided by an input image) — concept art, interiors, products, marketing visuals. Set format="svg" for a vector illustration (Fluw Vector AI). Costs 2 credits per image.

NameTypeReqDescription
aspect_ratiostring––
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output format; svg switches to Fluw Vector AI.
imagestring–Optional guide image (https:// URL, local file path, or data: URI).
promptstringyesWhat to generate.
seedinteger–Fix for reproducible results.
stylesarray–Design style names, e.g. ["Scandinavian"]; for Japandi use ["Japanese Design", "Scandinavian"]. Case-sensitive; see luw_list_options.
variationsinteger–Number of alternative designs (1-4, default 1); each is billed as a generation.

No output schema declared.

No examples provided.

luw_generate_pattern ~179

Luw.ai Pattern AI: generate a seamless, tileable pattern or texture — tiles, wallpaper, fabric, terrazzo, wood, stone — ready to repeat across a surface. Costs 1 credit.

NameTypeReqDescription
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output image format.
imagestring–Optional reference image (https:// URL, local file path, or data: URI).
promptstringyesThe pattern, e.g. "blue and white Moroccan zellige tiles".
size––Output size in px. aria: 512 or 768 (default); symphony: 512 or 1024 (default).

No output schema declared.

No examples provided.

luw_generate_video ~325

Luw.ai Video AI (Motion): animate a design image into a short cinematic video — fly-throughs, dolly moves, drone shots, reveals. Camera motions: A Forward Dolly, Flythrough Cinematic, Return to Empty Room, Lighting and Color Details, Drone flying to center, Dramatic Zoom Out, Reverse Zoom In, Slow Pull Back, Reveal Zoom, Ground to Sky Tilt, Side Tracking Zoom, Aerial Descent. Pass end_image to make the video end on that frame, e.g. the original photo as image and its redesign as end_image for a before → after transition. Takes a few minutes — expect a processing_url to collect with luw_get_result. Costs 10 credits (aria) or 20 (symphony), with or without end_image.

NameTypeReqDescription
camera_motionstring–One of the camera motions listed above, e.g. "Flythrough Cinematic".
end_imagestring–Optional end frame the video moves to; use the start frame's aspect ratio (https:// URL, local file path, or data: URI).
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
imagestringyesStart frame (a render or photo) (https:// URL, local file path, or data: URI).
promptstring–What should happen in the video.
seedinteger–Fix for reproducible results.

No output schema declared.

No examples provided.

luw_get_result ~138

Collect the result of a Luw.ai generation that was still processing (tools return a processing_url when a job outlasts their wait). Waits for the job to finish (up to the server's wait limit) — call again if it's still running. Free; never re-run a generation instead.

NameTypeReqDescription
processing_urlstringyesThe processing_url returned by a generation tool.
source_imagestring–The source returned with that processing_url (the job's input image), so the result is shown before and after.
waitboolean–Wait for completion (default true). false = check once and return immediately.

No output schema declared.

No examples provided.

luw_image_to_3d ~206

Luw.ai 3DGen AI: generate a textured 3D model (GLB) from a photo of an object — furniture, decor, products. Add up to 3 photos from other angles for better accuracy. For text-to-3D, first make an image with luw_generate_image. Costs 3 credits (aria) or 8 (symphony).

NameTypeReqDescription
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
extra_anglesarray––
imagestringyesPhoto of the object (https:// URL, local file path, or data: URI).
reflectionsboolean–Enable reflective materials (symphony engine only).
seedinteger–Fix for reproducible results.
simplifyinteger–Mesh simplification level (0 = off, default).
textureinteger–Texture size setting (0 = default).

No output schema declared.

No examples provided.

luw_interior_design ~428

Luw.ai Interior AI: redesign an interior photo — home, office, shop, hotel — in any style while keeping the room's architecture. Restyles furniture, materials, colors and lighting. Set empty_room=true to furnish an empty room or turn it into another room type (virtual staging). Costs 1 credit per variation.

NameTypeReqDescription
empty_roomboolean–Furnish from scratch / convert the room to room_type (Fill Empty Room mode).
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output image format.
imagestringyesPhoto of the room (https:// URL, local file path, or data: URI).
persona_idinteger–Persona whose saved images and style knowledge to use.
precisioninteger–How strictly to keep the input's structure: 90 = precise, 75 = balanced, 40 = creative.
promptstring–What you want, in plain language.
reference_imagesarray–Up to 6 reference images (furniture, materials, products, mood boards) to draw from.
room_typestring–Room type, e.g. "Living Room", "Kitchen", "Bedroom", "Home Office" (see luw_list_options kind="interior_types").
seedinteger–Fix for reproducible results.
style_referencestring–Style-transfer source: an image whose look to copy (https:// URL, local file path, or data: URI), or "persona" to use slot 1 of persona_id.
stylesarray–Design style names, e.g. ["Scandinavian"]; for Japandi use ["Japanese Design", "Scandinavian"]. Case-sensitive; see luw_list_options.
variationsinteger–Number of alternative designs (1-4, default 1); each is billed as a generation.

No output schema declared.

No examples provided.

luw_landscape_design ~221

Luw.ai Landscape AI: design a garden, yard or outdoor area inside a masked region of a photo, with plants chosen for the location's climate and sun exposure. Costs 1 credit.

NameTypeReqDescription
citystring–Location, for climate-appropriate planting, e.g. "Antalya".
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output image format.
imagestringyesPhoto of the outdoor area (https:// URL, local file path, or data: URI).
mask_imagestringyesBlack/white mask, white = area to landscape (https:// URL, local file path, or data: URI).
promptstring–What you want, in plain language.
seedinteger–Fix for reproducible results.
sun_exposurestring–e.g. "Full sun (6+ hours)", "Partial sun (4 - 6 hours)", "Shade (less than 4 hours)".

No output schema declared.

No examples provided.

luw_list_options ~99

Look up valid values for other Luw.ai tools: design_styles (styles param), interior_types (room_type), exterior_types (building_type), video_styles (camera_motion), materials (Magic Wand material_image catalog), professions (persona profession). Free.

NameTypeReqDescription
detailsboolean–Include descriptions and preview image URLs (longer output).
kindstringyes–
searchstring–Case-insensitive filter on names/descriptions.

No output schema declared.

No examples provided.

luw_magic_wand ~310

Luw.ai Magic Wand AI: change only a masked area of an image. Give a prompt to add/replace what's there, remove=true to erase it, or material_image to re-surface it (e.g. new flooring or wall tiles). The mask is a black-and-white image the same size as the input; white marks the area to change. Get masks from luw_segment. Costs 1 credit.

NameTypeReqDescription
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output image format.
imagestringyesImage to edit (https:// URL, local file path, or data: URI).
keep_structureboolean–Preserve the masked area's geometry/lines while changing its look (structure-guided fill).
mask_imagestringyesBlack/white mask, white = area to change (https:// URL, local file path, or data: URI).
material_imagestring–Material/texture to apply to the masked area (https:// URL, local file path, or data: URI); luw_list_options kind="materials" has a ready-made catalog.
promptstring–What to put in the masked area.
removeboolean–Remove whatever is in the masked area.
seedinteger–Fix for reproducible results.

No output schema declared.

No examples provided.

luw_personas ~368

Personas hold a reusable design identity: style knowledge plus saved images (trainings). Slots 1-6 train the persona's visual style (slot 1 is the style-transfer reference used by style_reference="persona"), slot 7 is the default input image, 8+ are free-form data; add_training without a slot "likes" a design. Pass persona_id to generation tools to use one. Actions: list, get, create, update, delete, list_trainings, add_training, update_training, delete_training, clear_slot.

NameTypeReqDescription
actionstringyes–
extrasstring–Extra metadata, e.g. the prompt behind a liked design.
imagestring–Training image (https:// URL, local file path, or data: URI); stored permanently.
infostring–Description of the training image.
knowsstring–Comma-separated style knowledge, e.g. "Modern,Minimalism" or room/building types.
limitinteger–list / list_trainings: items per page (default 20).
namestring––
pageinteger–list / list_trainings: page number (default 1).
persona_idinteger––
professionstring–Tool the persona belongs to, e.g. Interior, Exterior, MagicPrompt, MagicWand, Enhance, Video, Render, 3DGen, Fluw, Sketch, Landscape, MoodBoard, ArchiGPT. For list: only that tool's personas (fast).
searchstring–list: filter by name/title/knows.
slotinteger––
titlestring–Short description of the persona.
training_idinteger––

No output schema declared.

No examples provided.

luw_projects ~224

Organize work in Luw.ai projects (called boards in the API), with nested folders and media. Use add_media to save generated results into a project. Actions: list, get, create, rename, delete, list_folders, create_folder, update_folder, delete_folder, add_media, delete_media, move_media.

NameTypeReqDescription
actionstringyes–
control_imagestring–add_media: optional source/reference image, e.g. the original photo of a redesign.
extrasstring–add_media: metadata as a JSON string, e.g. {"prompt": "…"}.
folder_idinteger–Folder to act on, or target folder for add_media/move_media (omit = project root).
media_idinteger––
namestring–Project or folder name.
parent_idinteger–Parent folder for nested folders.
project_idinteger––
urlstring–add_media: the media (https:// URL, local file path, or data: URI).

No output schema declared.

No examples provided.

luw_remove_furniture ~103

Luw.ai Remove Furniture AI: remove the furniture from a room photo, keeping walls, floor and windows. Costs 1 credit.

NameTypeReqDescription
formatstring–Output image format.
imagestringyesPhoto of the furnished room (https:// URL, local file path, or data: URI).
precisioninteger–How strictly to keep the input's structure: 90 = precise, 75 = balanced, 40 = creative.

No output schema declared.

No examples provided.

luw_render ~209

Luw.ai Render AI: turn a 3D model view, CAD/BIM screenshot, clay render or basic visualization into a photorealistic architectural render. Costs 1 credit per variation.

NameTypeReqDescription
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
formatstring–Output image format.
imagestringyesThe 3D view or base render (https:// URL, local file path, or data: URI).
precisioninteger–How strictly to keep the input's structure: 90 = precise, 75 = balanced, 40 = creative.
promptstring–What you want, in plain language.
reference_imagesarray–Up to 6 reference images (furniture, materials, products, mood boards) to draw from.
variationsinteger–Number of alternative designs (1-4, default 1); each is billed as a generation.

No output schema declared.

No examples provided.

luw_run_model ~204

Call POST /generate with raw API parameters, for models or options the dedicated tools don't cover (e.g. persona-slot inputs, webhooks). Models: interior, exterior, sketch, render, magicprompt, magicwand, moodboard, landscape, enhance, expand, vector, removefurniture, segment, segmentprompt, fluw, fluwvector, pattern, changebg, removebg, video, 3dgen. Parameter reference: https://luw-ai.gitbook.io/api. Image fields (image, end_image, mask_image, material_image, style_transfer, extra_image_1…6) also accept local paths and data: URIs. Spends credits like the model's own tool.

NameTypeReqDescription
modelstringyesModel id, e.g. interior or magicprompt.
paramsobject–Other /generate parameters, e.g. {"image": "…", "prompt": "…", "precise": 75}.

No output schema declared.

No examples provided.

luw_segment ~156

Luw.ai Segment AI: detect objects in a photo and return black-and-white masks as image URLs — every object (wall, floor, sofa, …) or only what you describe in prompt. Feed a mask URL into luw_magic_wand or luw_landscape_design to edit exactly that area. Costs 1 credit.

NameTypeReqDescription
imagestringyesPhoto to segment (https:// URL, local file path, or data: URI).
labelsarray–Keep only masks whose label contains one of these words (e.g. ["floor", "wall"]).
promptstring–What to segment, e.g. "walls", "the sofa", "lawn". Omit to segment everything.

No output schema declared.

No examples provided.

luw_sketch_to_render ~332

Luw.ai Sketch AI: turn a hand sketch, line drawing, floor-plan perspective or rough draft into a photorealistic render. Costs 1 credit per variation.

NameTypeReqDescription
enginestring–Luw.ai model: aria (default) or symphony (Symphony-3).
enhance_promptboolean–Let Luw.ai's prompt enhancer expand a short prompt.
formatstring–Output image format.
imagestringyesThe sketch or drawing (https:// URL, local file path, or data: URI).
persona_idinteger–Persona whose saved images and style knowledge to use.
precisioninteger–How strictly to keep the input's structure: 90 = precise, 75 = balanced, 40 = creative.
promptstring–What you want, in plain language.
seedinteger–Fix for reproducible results.
space_typestring–What the sketch shows, e.g. "Living Room" or "Modern House Exterior".
style_referencestring–Style-transfer source: an image whose look to copy (https:// URL, local file path, or data: URI), or "persona" to use slot 1 of persona_id.
stylesarray–Design style names, e.g. ["Scandinavian"]; for Japandi use ["Japanese Design", "Scandinavian"]. Case-sensitive; see luw_list_options.
variationsinteger–Number of alternative designs (1-4, default 1); each is billed as a generation.

No output schema declared.

No examples provided.

luw_upload_file ~167

Upload an image, video or 3D file to Luw.ai storage and get a URL usable by every Luw.ai tool. Rarely needed: all tools already accept local paths and data: URIs and upload them automatically. Useful to get a shareable URL, to re-host an image from a site Luw.ai can't reach, or to store a file permanently.

NameTypeReqDescription
persistentboolean–Keep the file in your Luw.ai storage permanently. Default: temporary, auto-deleted after 12 hours.
persona_idinteger–Persona to store a persistent file under (default: your first persona).
sourcestringyesLocal file path, file:// URL, data: URI, or an https:// URL to copy into Luw.ai storage.

No output schema declared.

No examples provided.

luw_upscale_image ~124

Luw.ai Photo Enhance AI: enhance the quality of an image and enlarge it 2x, 4x or 8x. Costs 1 credit.

NameTypeReqDescription
formatstring–Output image format.
imagestringyesImage to upscale (https:// URL, local file path, or data: URI).
precisioninteger–How strictly to keep the input's structure: 90 = precise, 75 = balanced, 40 = creative.
scale––2, 4 or 8 (default 2).

No output schema declared.

No examples provided.

luw_vectorize_image ~59

Luw.ai Vector AI: convert a photo or drawing into a clean SVG vector. Costs 1 credit.

NameTypeReqDescription
imagestringyesPhoto or drawing to vectorize (https:// URL, local file path, or data: URI).

No output schema declared.

No examples provided.

Install

How do I install the Luw.ai MCP server?

Luw.ai runs locally as an npm package, launched with npx -y @luw-ai/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @luw-ai/mcp

# add to Claude Code
claude mcp add ai-luw-mcp -- npx -y @luw-ai/mcp
Common questions

What is the Luw.ai MCP server?

Luw.ai is an MCP server listed in the public MCP registry as ai.luw/mcp. AI interior, exterior and landscape design, photoreal rendering, image editing, video and 3D. This page covers its npm package (@luw-ai/mcp).

Is the Luw.ai MCP server safe to use?

Luw.ai scores 86 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 24 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Luw.ai MCP server expose?

Luw.ai exposes 24 tools: luw_interior_design, luw_exterior_design, luw_sketch_to_render, luw_render, luw_edit_image, and 19 more. Their descriptions and schemas cost roughly 5,177 tokens of context every time the server is loaded.

Is the Luw.ai MCP server still maintained?

Luw.ai is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Luw.ai MCP server under?

Luw.ai declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.