Pixly
REMOTE · PIXLY.APP · SCANNED AUG 14
Every visual AI tool for property listings — staging, enhancement, decluttering, cinematic video.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability71
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1859 tokens (~143/item across 13 items; 13 tools + 0 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 Management7
- Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 91% of tool parameters carry a description.Partial
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · pixly.app
claude mcp add --transport http app-pixly-pixly https://pixly.app/api/mcp
[mcp_servers.app-pixly-pixly] url = "https://pixly.app/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"app-pixly-pixly": {
"type": "remote",
"url": "https://pixly.app/api/mcp",
"enabled": true
}
}
} openclaw mcp add app-pixly-pixly --url https://pixly.app/api/mcp --transport streamable-http
mcp_servers:
app-pixly-pixly:
url: "https://pixly.app/api/mcp" {
"mcpServers": {
"app-pixly-pixly": {
"type": "http",
"url": "https://pixly.app/api/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 14 Aug 26 +1
- “cinematic_motion” added an optional parameter “direction” cosmetic
1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.
- 13 Aug 26 0
- Stability: unverified → 0.03 ▲ functional
- 12 Aug 26 75
First indexed and scored.
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 14 Aug 2026 · Probed https://pixly.app/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=pixly.app | CN=WE1,O=Google Trust Services,C=US | 5 Jul 2026 | 3 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 6bb75209f3f652f00e341d60d667d591 |
| SANs: pixly.app, *.pixly.app | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of pixly.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| pixly.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://pixly.app/.well-known/oauth-protected-resource/api/mcp"
Bearer resource_metadata="https://pixly.app/.well-known/oauth-protected-resource/api/mcp" | Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
Protected resource metadata
| Document | https://pixly.app/.well-known/oauth-protected-resource/api/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://pixly.app/api/mcp |
| Authorisation server | https://pixly.app |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://pixly.app/api/mcp | Verified | 200 | |
| http (plaintext) | http://pixly.app/api/mcp | HTTPS enforced | 301 | https://pixly.app/api/mcp |
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.
before_after_reel ~179
Animate a before→after transformation (e.g. empty room → staged) into a social-ready reveal video from two frames. Costs credits from the user's Pixly balance.
| Name | Type | Req | Description |
|---|---|---|---|
| afterImageUrl | string | – | End frame (e.g. the staged result) — https URL or data: URI |
| afterR2Path | string | – | R2 path of the end frame — the alternative to afterImageUrl. |
| beforeImageUrl | string | – | Start frame (e.g. the empty room photo) — https URL or data: URI |
| beforeR2Path | string | – | R2 path of the start frame — the alternative to beforeImageUrl. |
| durationSeconds | – | – | – |
| format | string | – | – |
| revealStyle | string | – | How the transformation is revealed |
| videoIntent | string | – | – |
No output schema declared.
No examples provided.
cinematic_motion ~186
Turn a single listing photo into a short cinematic clip with a professional camera move (zoom, orbit, fly-through, crane up…). No second frame needed. Costs credits from the user's Pixly balance.
| Name | Type | Req | Description |
|---|---|---|---|
| cameraMove | string | – | Camera-move preset |
| direction | string | – | Horizontal direction, for the moves that have one (currently 'pan'). Ignored by every other move; omit for the default. |
| durationSeconds | – | – | Clip length; the routed model validates its supported tiers |
| format | string | – | Aspect ratio |
| imageUrl | string | – | Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required. |
| r2Path | string | – | R2 object path from an upload ticket (POST /api/v1/uploads) — the alternative to imageUrl when the photo is a local file. |
No output schema declared.
No examples provided.
create_upload_ticket ~126
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contentType | string | yes | MIME type the PUT request will send |
| filename | string | yes | Original filename, used for the extension |
| sizeBytes | integer | – | Exact byte size of the file. Recommended: when given it is signed into the URL, so the upload is bounded server-side. |
No output schema declared.
No examples provided.
day_to_night ~117
Turn a daytime listing photo into a magazine-style night scene — lights on, warm glow, dusk sky — with the building and camera angle unchanged. Costs credits from the user's Pixly balance.
| Name | Type | Req | Description |
|---|---|---|---|
| imageUrl | string | – | Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required. |
| r2Path | string | – | R2 object path from an upload ticket (POST /api/v1/uploads) — the alternative to imageUrl when the photo is a local file. |
No output schema declared.
No examples provided.
declutter_photo ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| imageUrl | string | – | Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required. |
| r2Path | string | – | R2 object path from an upload ticket (POST /api/v1/uploads) — the alternative to imageUrl when the photo is a local file. |
No output schema declared.
No examples provided.
edit_staged_photo ~171
Apply a specific change to a previously staged photo (swap the sofa, add a rug) while preserving everything else. Costs credits from the user's Pixly balance.
| Name | Type | Req | Description |
|---|---|---|---|
| customInstructions | string | yes | The concrete edit to apply, e.g. "change the sofa to grey" |
| imageUrl | string | – | URL of the PREVIOUS staged result to edit (the resultUrls entry from its job). Either imageUrl or r2Path is required. |
| r2Path | string | – | R2 path of the previous staged result — the alternative to imageUrl. |
| sourceJobId | string | – | Job the edited result came from (lineage) |
| sourceResultIndex | integer | – | Which variation was edited |
| style | string | yes | Style id, used as context to match new elements |
No output schema declared.
No examples provided.
enhance_photo ~116
Turn an amateur listing photo into a finished, professional real-estate photo (exposure, color, clarity). Returns 3 variants to pick from. Costs credits from the user's Pixly balance.
| Name | Type | Req | Description |
|---|---|---|---|
| imageUrl | string | – | Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required. |
| r2Path | string | – | R2 object path from an upload ticket (POST /api/v1/uploads) — the alternative to imageUrl when the photo is a local file. |
No output schema declared.
No examples provided.
get_credit_balance ~19
The user's current Pixly credit balance and plan.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_job ~55
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.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | Job id returned by a generation tool |
No output schema declared.
No examples provided.
list_library ~120
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| type | string | – | Filter by media type. "uploads" lists the user's own source photos instead of generations — use it when they refer to a photo they added but have not run a tool on yet. |
No output schema declared.
No examples provided.
plot_sign ~188
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.
| Name | Type | Req | Description |
|---|---|---|---|
| imageUrl | string | – | Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required. |
| look | string | – | Sign material/style; defaults server-side |
| orientation | string | – | Letter orientation (letter looks only); defaults server-side |
| r2Path | string | – | R2 object path from an upload ticket (POST /api/v1/uploads) — the alternative to imageUrl when the photo is a local file. |
| text | string | yes | Sign label, verbatim — a price ("$1,200,000"), area ("800 m²"), or short word ("SOLD") |
No output schema declared.
No examples provided.
upload_image_from_url ~84
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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Publicly reachable image URL (JPG/PNG/WebP, max 10 MB) to import into Pixly |
No output schema declared.
No examples provided.
virtual_staging ~245
Furnish and style an empty (or badly furnished) room photo in a chosen interior style. The flagship tool. HD, watermark-free results. Costs credits from the user's Pixly balance.
| Name | Type | Req | Description |
|---|---|---|---|
| customInstructions | string | – | Optional extra instructions blended into the staging prompt |
| imageUrl | string | – | Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required. |
| numImages | integer | – | Ignored — staging always returns one image. Call again for another take. |
| r2Path | string | – | R2 object path from an upload ticket (POST /api/v1/uploads) — the alternative to imageUrl when the photo is a local file. |
| roomType | string | – | Room type hint; omit to let vision infer it from the photo |
| stagingQuality | string | – | pro = Nano Banana Pro instead of Nano Banana 2, at 2 credits instead of 1. Same prompt and same 2K output resolution either way — the model is the only difference. |
| style | string | yes | Style id from the Pixly styles catalog (lib/real-estate/styles.ts) |
No output schema declared.
No examples provided.