Pixly
by pixly.app · remote · no sign-in to list tools · v1.5.0 · published by app.pixly
Every visual AI tool for property listings — staging, enhancement, decluttering, cinematic video.
35 tools: 3 can delete or cancel things, 27 change things and 5 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things27Claude Code: ask: see these tools
- Only reads5Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http pixly https://pixly.app/api/mcpFindings
Matches of fixed checks, with the text they matched.
- Warndeclutter_photo
The server marks "declutter_photo" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "remove": a word for removing or ending something.
- Warnremove_furniture
The server marks "remove_furniture" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "remove_furniture" says "remove": a word for removing or ending something.
The server marks "get_checkout_link" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_checkout_link" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
35 tools
Deletes or cancels 3Claude Code: deny
declutter_photoRemove clutter, mess, and personal items from a listing photo while keeping the room, furniture, and architecture intact.Reads text others write1 finding
Why it is in this group
- The description's first verb is "remove": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "declutter_photo" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "remove": a word for removing or ending something.
Description, as the server wrote it Remove clutter, mess, and personal items from a listing photo while keeping the room, furniture, and architecture intact. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Declutter
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
remove_furnitureRemove furniture from a photo: empty a room and rebuild the surfaces behind what was taken out, keeping the architecture and camera angle identical — the blank canvas for restaging…Reads text others write1 finding
Why it is in this group
- The name "remove_furniture" says "remove": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "remove_furniture" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "remove_furniture" says "remove": a word for removing or ending something.
Description, as the server wrote it Remove furniture from a photo: empty a room and rebuild the surfaces behind what was taken out, keeping the architecture and camera angle identical — the blank canvas for restaging. By default it also removes the room's own joinery (fitted kitchen, built-in wardrobes, bathroom fixtures); mode 'movable' leaves those alone, and an optional extra takes the floor covering out too, for a full renovation strip-back. Doors always stay. (Declutter is the opposite: it keeps the furniture.) Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Remove Furniture
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
update_listingRename one of the user's property folders, only when they ask.No findings
Why it is in this group
- The name "update_listing" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Rename one of the user's property folders, only when they ask.
Annotations the server declares
- title: Rename Property Folder
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Changes things 27Claude Code: ask
before_after_imageFree (no credits): one comparison image from a before and an after photo of the same place — e.g.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Free (no credits): one comparison image from a before and an after photo of the same place — e.g. an empty room and its virtual staging, a daylight shot and its dusk version, a room before and after a restyle. Side by side, stacked, or split by a line; original shape, square, 4:5 or 9:16. Write the labels in the user's language. Returns a finished image at once.
Annotations the server declares
- title: Before & After Image
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
before_after_reelBefore and after video: animate a before→after transformation (e.g.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Before and after video: animate a before→after transformation (e.g. empty room → staged, or a renovation, or a daylight photo → its Day to Night version with videoIntent day_to_night) into a social-ready reveal reel from two photos. Both photos are required. Only have one? Make the other first with a photo tool — virtual_staging (empty room → furnished), remove_furniture (furnished → empty), day_to_night, restyle_room, makeover_exterior and the other edit tools — and pass its result as afterImageUrl (or beforeImageUrl). Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Before & After Video
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
blur_faces_platesFree (no credits): find and blur people's faces and car licence plates in property photos before they're posted — street and exterior shots, open houses.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Free (no credits): find and blur people's faces and car licence plates in property photos before they're posted — street and exterior shots, open houses. Automatic detection, 1–5 photos per call. Says so when nothing is found.
Annotations the server declares
- title: Blur Faces & Plates
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
cinematic_motionPhoto to video: turn a single listing photo into a short cinematic real estate video with a professional camera move (zoom, orbit, fly-through, crane up…).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Photo to video: turn a single listing photo into a short cinematic real estate video with a professional camera move (zoom, orbit, fly-through, crane up…). No second frame needed. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Cinematic Motion
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
create_listingCreate a property folder before work on a whole property (a set of listing photos, a walkthrough).No findings
Why it is in this group
- The name "create_listing" says "create": a word for a change.
Description, as the server wrote it Create a property folder before work on a whole property (a set of listing photos, a walkthrough). Ask the user once which property it is and pass that as title; if they skip, leave title out. Pass the returned listingId to the tools so their results land in it. Costs nothing.
Annotations the server declares
- title: New Property Folder
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_upload_ticketGet a presigned upload URL for a LOCAL image file — the one case a URL can't cover.No findings
Why it is in this group
- The name "create_upload_ticket" says "create": a word for a change.
Description, as the server wrote it Get a presigned upload URL for a LOCAL image file — the one case a URL can't cover. PUT the file to uploadUrl with the same Content-Type, then pass the returned r2Path to a generation tool instead of imageUrl. Ticket expires in 1 hour.
Annotations the server declares
- title: Upload a Local Photo
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
day_to_nightDay to dusk (virtual twilight): turn a daytime listing photo into a magazine-style evening scene — lights on, warm glow, dusk sky — with the building and camera angle unchanged.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Day to dusk (virtual twilight): turn a daytime listing photo into a magazine-style evening scene — lights on, warm glow, dusk sky — with the building and camera angle unchanged. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Day to Night
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
draw_floor_planFree (no credits): draw a clean 2D floor plan from a layout YOU write — read the user's description, or look at their hand sketch or brochure plan, and send every room as a rectang…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Free (no credits): draw a clean 2D floor plan from a layout YOU write — read the user's description, or look at their hand sketch or brochure plan, and send every room as a rectangle in metres (or feet) plus doors and windows. Returns the drawn plan (areas and dimensions on it) at once, saved so the user can fine-tune it in Pixly's floor plan editor. If the layout has problems (overlapping rooms, a door between rooms that don't touch) you get exactly what to fix — fix it and call again. To change a plan, call again with its planId and the whole updated layout; the new version is saved as its own plan and the earlier one is kept.
Annotations the server declares
- title: Draw Floor Plan
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
edit_staged_photoChange one thing in a photo and keep everything else exactly as it is — the parts the edit doesn't touch are copied from the photo, not redrawn.Reads text others writeNo findings
Why it is in this group
- The name "edit_staged_photo" says "edit": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Change one thing in a photo and keep everything else exactly as it is — the parts the edit doesn't touch are copied from the photo, not redrawn. Works on any photo: a staged room, any Pixly result, or the user's own picture (swap the sofa, recolour a wall, remove a car, change the words on a sign). Optional `mask` limits the change to a marked area. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Edit Photo
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
enhance_photoReal estate photo editing in one step: turn an amateur listing photo into a finished, professional photo (exposure, color, clarity).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Real estate photo editing in one step: turn an amateur listing photo into a finished, professional photo (exposure, color, clarity). Returns 3 variants to pick from. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Enhance
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
flythrough_videoFlythrough video: one continuous camera move through a home from 2-4 room photos in walking order.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Flythrough video: one continuous camera move through a home from 2-4 room photos in walking order. Each pair of neighbouring photos becomes a 3-second move that flies from one room into the next, and the moves are stitched into one film with a cinematic speed ramp. Returns one job: poll get_job until the film is ready (a few minutes). Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Flythrough
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
get_checkout_linkUse when a tool fails for lack of credits or a plan.Reads text others write1 finding
Why it is in this group
- The name "get_checkout_link" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "get_checkout_link" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_checkout_link" says "get": a word for reading.
Description, as the server wrote it Use when a tool fails for lack of credits or a plan. Returns a Stripe Checkout URL for the user to pay on — this never charges anything by itself, and you cannot pay for them. With no active plan it is a subscription (plans: starter (Starter: $5.99/week, 20 credits); agent (Agent: $19.99/month, 100 credits); pro_agent (Pro Agent: $49.99/month, 300 credits); team (Team: $149.99/month, 1000 credits)); with a plan it is a one-time credit top-up. After they pay, credits arrive in seconds: check get_credit_balance, then run the tool again.
Annotations the server declares
- title: Get a Payment Link
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
makeover_exteriorDesign the garden of an exterior listing photo as one coherent scheme — planting, a terrace or deck, a pool, a pergola, a fire pit, a fence, lighting — in a chosen style, at the ri…Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Design the garden of an exterior listing photo as one coherent scheme — planting, a terrace or deck, a pool, a pergola, a fire pit, a fence, lighting — in a chosen style, at the right scale and perspective, while the house, its roof, the driveway, the sun direction and the neighbours stay exactly as shot. One run builds the whole scheme. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Exterior Makeover
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
photo_to_videoTurn a start photo — and optionally an end photo — into a video.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Turn a start photo — and optionally an end photo — into a video. With an end photo the camera travels from the first photo and lands exactly on the second (e.g. two views of the same kitchen → an orbit around the island). Pick a ready-made camera move or write your own prompt; choose the model, length and sound. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Photo to Video
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
plan_photosSeveral listing photos at once: one plan of photo steps (straighten, enhance, sky, lawn, staging, declutter…) with one total and one confirmation, instead of a confirm per photo.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Several listing photos at once: one plan of photo steps (straighten, enhance, sky, lawn, staging, declutter…) with one total and one confirmation, instead of a confirm per photo. The first call runs nothing: it returns each step's cost, the total and a confirmationCode, and the Pixly card shows the plan with one button. After the user says yes in the chat, call again with only confirmationCode: it starts every step whose photo is ready and returns their jobs (poll with get_job jobIds). Steps that work on an earlier step's result start when you call again with the same confirmationCode once that result is completed. Only for photos; videos have their own tools.
Annotations the server declares
- title: Plan Photo Edits
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
plot_signPlace a photorealistic 3D monument sign with your exact text (price, area, SOLD) onto a photo of an empty plot, matched to perspective and lighting.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Place a photorealistic 3D monument sign with your exact text (price, area, SOLD) onto a photo of an empty plot, matched to perspective and lighting. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Plot Number
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
render_floor_planTurn a picture of any floor plan — a hand sketch, a photo of a brochure page, a blueprint, a screenshot — into a polished real-estate floor plan: a furnished top-down 2D plan with …Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Turn a picture of any floor plan — a hand sketch, a photo of a brochure page, a blueprint, a screenshot — into a polished real-estate floor plan: a furnished top-down 2D plan with real floors and room names, or a 3D isometric cutaway. The rooms, walls, doors and windows are kept exactly as drawn; nothing is added and written dimensions are left off. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Floor Plan Render
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
replace_lawnTurn patchy, brown or bare grass in an exterior listing photo into a healthy green lawn, leaving driveways, paths, beds and the house untouched.Reads text others writeNo findings
Why it is in this group
- The name "replace_lawn" says "replace": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Turn patchy, brown or bare grass in an exterior listing photo into a healthy green lawn, leaving driveways, paths, beds and the house untouched. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Lawn Replacement
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
replace_skyReplace a grey, overcast or blown-out sky in an exterior listing photo with a natural clear blue sky, matching the light and keeping the building, trees and reflections unchanged.Reads text others writeNo findings
Why it is in this group
- The name "replace_sky" says "replace": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Replace a grey, overcast or blown-out sky in an exterior listing photo with a natural clear blue sky, matching the light and keeping the building, trees and reflections unchanged. A run takes about 1–2 minutes; poll get_job until it completes. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Sky Replacement
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
reset_seasonPhotograph the same property in another season: take the snow off the ground, the roof and the branches and put the garden in leaf, or move a summer shot to autumn or winter.Reads text others writeNo findings
Why it is in this group
- The name "reset_season" says "reset": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Photograph the same property in another season: take the snow off the ground, the roof and the branches and put the garden in leaf, or move a summer shot to autumn or winter. The house, the driveway, the paths and the camera angle stay exactly as shot. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Seasonal Reset
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
restyle_roomGive one or more surfaces of a room a new finish — repaint the walls, change the floor, reface the kitchen cabinets and worktop, retile the bathroom or refinish the furniture — whi…Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Give one or more surfaces of a room a new finish — repaint the walls, change the floor, reface the kitchen cabinets and worktop, retile the bathroom or refinish the furniture — while the room's layout, fittings, windows and camera angle stay exactly as shot. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Restyle
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
straighten_photoFree (no credits): automatically straighten a property photo — leaning walls made vertical (converging verticals from a tilted camera) and a tilted horizon levelled, like a pro pho…Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Free (no credits): automatically straighten a property photo — leaning walls made vertical (converging verticals from a tilted camera) and a tilted horizon levelled, like a pro photographer's lens correction. Crops the edges slightly. Best before staging or any other edit. Says so when the photo is already straight or has no straight lines to go by.
Annotations the server declares
- title: Straighten Photo
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
touch_up_exteriorOne-click retouch of an exterior listing photo: a natural sky where it is dull, a healthy lawn where the grass is dead, a clean driveway, and bins, hoses and other clutter removed …Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One-click retouch of an exterior listing photo: a natural sky where it is dull, a healthy lawn where the grass is dead, a clean driveway, and bins, hoses and other clutter removed — each only where needed, with the house unchanged. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Exterior Touch-up
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
upload_image_from_urlRarely needed: generation tools take an imageUrl directly.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "upload_image_from_url" says "upload": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Rarely needed: generation tools take an imageUrl directly. Use this only to import a photo into Pixly ahead of time, e.g. to reuse one URL across several tools without refetching it each time.
Annotations the server declares
- title: Import Photo from URL
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
upscale_hdEnlarge a photo by up to four times with real detail, to a maximum of 4096 px on the long edge — for print, MLS uploads and large screens.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Enlarge a photo by up to four times with real detail, to a maximum of 4096 px on the long edge — for print, MLS uploads and large screens. Nothing in the photo changes. Free on any result Pixly made (pass its r2Path from list_library); 1 credit on your own photo. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: HD Upscale
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
virtual_stagingAI virtual staging: furnish and style an empty (or badly furnished) room photo in a chosen interior design style — also the tool for "redesign this room" or "show this room in anot…Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it AI virtual staging: furnish and style an empty (or badly furnished) room photo in a chosen interior design style — also the tool for "redesign this room" or "show this room in another style". HD, watermark-free results. Costs credits from the user's Pixly balance.
Annotations the server declares
- title: Virtual Staging
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
watermark_photosFree (no credits): put the agent's or agency's mark on listing photos — text (name, phone) and/or the logo saved on their Pixly account — in a corner or the middle, up to 10 photos…Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Free (no credits): put the agent's or agency's mark on listing photos — text (name, phone) and/or the logo saved on their Pixly account — in a corner or the middle, up to 10 photos per call. Returns every marked photo at once.
Annotations the server declares
- title: Watermark Photos
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 5Claude Code: allow
get_credit_balanceThe user's current Pixly credit balance and plan.No findings
Why it is in this group
- The name "get_credit_balance" says "get": a word for reading.
Description, as the server wrote it The user's current Pixly credit balance and plan.
Annotations the server declares
- title: Credit Balance
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_jobCheck a generation job's status and fetch result URLs when it's done.No findings
Why it is in this group
- The name "get_job" says "get": a word for reading.
Description, as the server wrote it Check a generation job's status and fetch result URLs when it's done. Video jobs take 1-5 minutes — poll this with a few seconds between calls. For several jobs at once (a plan's steps), pass jobIds.
Annotations the server declares
- title: Check Job Status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_libraryList the user's recent generations, or with type "uploads" their own uploaded source photos, newest first.No findings
Why it is in this group
- The name "list_library" says "list": a word for reading.
Description, as the server wrote it List the user's recent generations, or with type "uploads" their own uploaded source photos, newest first. Uploads are the way in when the photo is a local file: connectors cannot send bytes, so the user adds it at https://pixly.app/app and you pick up the r2Path here.
Annotations the server declares
- title: List Library
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_listingsThe user's property folders (a listing such as "12 Oak St" holds that property's photos, staged versions, edits, videos and floor plan): id, title, how many photos and videos.Reads private dataNo findings
Why it is in this group
- The name "list_listings" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "folder": it reads files.
Description, as the server wrote it The user's property folders (a listing such as "12 Oak St" holds that property's photos, staged versions, edits, videos and floor plan): id, title, how many photos and videos. Use when the user names a property, or before work for one, so results land in its folder.
Annotations the server declares
- title: Property Folders
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
view_pixly_photoLook at one of the user's Pixly photos or videos (a video gives its first frame) — returns a small copy of the picture you can see.No findings
Why it is in this group
- The name "view_pixly_photo" says "view": a word for reading.
Description, as the server wrote it Look at one of the user's Pixly photos or videos (a video gives its first frame) — returns a small copy of the picture you can see. Use it before writing anything about a Pixly result: a caption, a listing description, what changed. You cannot see Pixly results otherwise. Free; changes nothing. Text you write from it is the user's own (their listing, their post): leave Pixly out of it — no #Pixly, no 'made with Pixly'.
Annotations the server declares
- title: View Pixly Photo
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
26 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 outbound tool breaks every one.
- Reads private data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write26
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out1
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__pixly__upload_image_from_url"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 14:23 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 30
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- none
- RFC 9728 protected resource metadata
- https://pixly.app/.well-known/oauth-protected-resource/api/mcp
- Authorization servers
- https://pixly.app
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- yes
- Client ID metadata documents
- yes
- HighThe whole server
The endpoint served tools/list without credentials, and the list has 30 tools that change things (3 destructive, 27 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://pixly.app/api/mcp: tools/list returned 35 tools to an anonymous client, including declutter_photo (destructive), remove_furniture (destructive), update_listing (destructive), virtual_staging (write), edit_staged_photo (write) and 25 more
Install
Pinned to version 1.5.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http pixly https://pixly.app/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__pixly__get_job",
"mcp__pixly__list_library",
"mcp__pixly__view_pixly_photo",
"mcp__pixly__get_credit_balance",
"mcp__pixly__list_listings"
],
"ask": [
"mcp__pixly__virtual_staging",
"mcp__pixly__edit_staged_photo",
"mcp__pixly__cinematic_motion",
"mcp__pixly__photo_to_video",
"mcp__pixly__before_after_reel",
"mcp__pixly__flythrough_video",
"mcp__pixly__before_after_image",
"mcp__pixly__watermark_photos",
"mcp__pixly__blur_faces_plates",
"mcp__pixly__straighten_photo",
"mcp__pixly__draw_floor_plan",
"mcp__pixly__enhance_photo",
"mcp__pixly__day_to_night",
"mcp__pixly__replace_sky",
"mcp__pixly__replace_lawn",
"mcp__pixly__restyle_room",
"mcp__pixly__reset_season",
"mcp__pixly__makeover_exterior",
"mcp__pixly__render_floor_plan",
"mcp__pixly__touch_up_exterior",
"mcp__pixly__upscale_hd",
"mcp__pixly__plot_sign",
"mcp__pixly__upload_image_from_url",
"mcp__pixly__create_upload_ticket",
"mcp__pixly__create_listing",
"mcp__pixly__plan_photos",
"mcp__pixly__get_checkout_link"
],
"deny": [
"mcp__pixly__declutter_photo",
"mcp__pixly__remove_furniture",
"mcp__pixly__update_listing"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as pixly. Review it before you use it.
Capability tags behind 27 rules
- mcp__pixly__virtual_staging untrusted-input
- mcp__pixly__edit_staged_photo untrusted-input
- mcp__pixly__cinematic_motion untrusted-input
- mcp__pixly__photo_to_video untrusted-input
- mcp__pixly__before_after_reel untrusted-input
- mcp__pixly__flythrough_video untrusted-input
- mcp__pixly__before_after_image untrusted-input
- mcp__pixly__watermark_photos untrusted-input
- mcp__pixly__blur_faces_plates untrusted-input
- mcp__pixly__straighten_photo untrusted-input
- mcp__pixly__enhance_photo untrusted-input
- mcp__pixly__declutter_photo untrusted-input
- mcp__pixly__remove_furniture untrusted-input
- mcp__pixly__day_to_night untrusted-input
- mcp__pixly__replace_sky untrusted-input
- mcp__pixly__replace_lawn untrusted-input
- mcp__pixly__restyle_room untrusted-input
- mcp__pixly__reset_season untrusted-input
- mcp__pixly__makeover_exterior untrusted-input
- mcp__pixly__render_floor_plan untrusted-input
- mcp__pixly__touch_up_exterior untrusted-input
- mcp__pixly__upscale_hd untrusted-input
- mcp__pixly__plot_sign untrusted-input
- mcp__pixly__upload_image_from_url untrusted-input, outbound
- mcp__pixly__list_listings private-data
- mcp__pixly__plan_photos untrusted-input
- mcp__pixly__get_checkout_link untrusted-input