← Pexafy Stock PhotosCONTENT HISTORY

Update to Pexafy Stock Photos

Snapshot Oct 26, 2026 · 18:05 UTC · version 1.1.1

WHAT CHANGED

Package or technical metadata updated

Package or technical metadata updated

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Save Pexafy Stock Photos and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

These are saved file metadata. Open a changed file to read its text edits.

Package file

Before

Sep 30, 2026 · 22:54 UTC

f1109e32e83aab3ac33e9c8053d25a8f7248c1e68d9edcc45b530f36346fe019

After

Oct 26, 2026 · 18:05 UTC

a04e1f16245813d2c1f7d9c77bb5a611e4494e5e9ec5efe20a4668592cf51dac

Package file

Before

Sep 30, 2026 · 22:54 UTC

127

After

Oct 26, 2026 · 18:05 UTC

98

Package file

Before

Sep 30, 2026 · 22:54 UTC

{"sha256":"d6541acf2b9f2ebde053d5c077764c634eba60c25fa97df5df3ae893a0968f43","size":4467}

After

Oct 26, 2026 · 18:05 UTC

Not present

Package file

Before

Sep 30, 2026 · 22:54 UTC

Not present

After

Oct 26, 2026 · 18:05 UTC

{"sha256":"725f3d4bdbc06e8927c1cfd6f12796502700180042e58157a4986d14536654f0","size":2521}

Compare saved observations

Download comparison JSON

plugin.json

− removed · + added

--- before
+++ after
@@ -0,0 +1,115 @@
+{
+  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
+  "name": "app-6a837089eb1c8191b29a0d126a54f770",
+  "version": "1.1.1",
+  "description": "Use it whenever the user asks to see, find, get or use photos, pictures or images of real people, places or things, for any purpose: blog, website, product page, slides, flyer, ad, post, wallpaper. Say what you need in your own words, in any language, or share a picture to find free photos that look like it. Every photo comes with its license and credit line. Pexafy does not generate or edit images, and does not find illustrations, icons, logos, diagrams, screenshots or photos of named people.",
+  "author": {
+    "name": "Pexafy",
+    "email": "support@pexafy.com",
+    "url": "https://pexafy.com"
+  },
+  "homepage": "https://pexafy.com/mcp/",
+  "repository": "https://github.com/Pexafy/pexafy-mcp",
+  "license": "MIT",
+  "keywords": [
+    "photos",
+    "stock photos",
+    "free photos",
+    "images",
+    "image search"
+  ],
+  "extensions": {
+    "com.openai": {
+      "interface": {
+        "displayName": "Pexafy Stock Photos",
+        "shortDescription": "Find free-to-use stock photos",
+        "longDescription": "Use it whenever the user asks to see, find, get or use photos, pictures or images of real people, places or things, for any purpose: blog, website, product page, slides, flyer, ad, post, wallpaper. Say what you need in your own words, in any language: a simple subject like \u201ca white mug on a wooden table\u201d, or a full scene with mood and light like \u201ctwo colleagues laughing in a bright open-plan office\u201d.\n\nIt also covers content that should carry photos, such as \u201cwrite a blog post with pictures\u201d or \u201cmake a deck with images\u201d, and questions about where to find free photos. Use it to illustrate an article, add a header or hero image to a landing page, put photos in slides, a report or a school project, or find a picture for a social post, a thumbnail, a cover, a poster or a banner, in landscape, portrait or square.\n\nSearch by image: share a picture or paste an image link, for example a paid stock photo you like, and get free photos that look like it. You can also ask for more photos like one you already found, or adjust it in words, such as \u201clike this one, but at night\u201d. The reference image is used only to run the search and is not stored.\n\nResults appear in a visual grid. Tap the heart on the photos you want and drag them into your preferred order, then refer to your selection in the conversation, such as \u201cput my selection in the document\u201d or \u201cwrite the article around the photos I picked\u201d. Any photo can be added to the conversation as an image file, up to 1280 pixels wide, to place in a document, a slide or a post.\n\nEvery photo comes with its photographer, source, license and a ready-to-paste credit line. Licenses differ between sources, so the one that applies is shown with each photo.\n\nUseful for bloggers, marketers, students, teachers, designers, developers and small businesses.\n\nPexafy only finds existing photographs. It does not generate, edit or upscale images, and does not find illustrations, drawings, icons, logos, diagrams, screenshots or photos of named people.",
+        "developerName": "Pexafy",
+        "category": "Creativity",
+        "capabilities": [
+          "Search free stock photographs by describing the scene, in any language",
+          "Ask for a picture with no explanation: \"a train in Japan\" is a complete request",
+          "Find free photographs that look like a picture you attach or link",
+          "Get more photographs like one already found, to keep a set visually consistent",
+          "Narrow the results to landscape, portrait or square",
+          "Open a photograph to see it large, like it or pass it, and explore what looks like it",
+          "Hand the photographs you liked back to the assistant, in the order you chose",
+          "Get a photograph as an image file, to place in a document, a slide or a post",
+          "Every result names its licence and source, with the credit line ready to display",
+          "Use it without an account on a daily allowance, or connect your Pexafy account"
+        ],
+        "websiteURL": "https://pexafy.com/mcp/",
+        "supportURL": "https://pexafy.com/contact/",
+        "privacyPolicyURL": "https://pexafy.com/legal/privacy/",
+        "termsOfServiceURL": "https://pexafy.com/legal/terms/",
+        "defaultPrompt": [
+          "Find photos of someone working alone late at night, lit by a warm desk lamp.",
+          "Find landscape photos of a train in Japan.",
+          "I need a vertical phone wallpaper: a foggy pine forest at dawn."
+        ],
+        "brandColor": "#7c3aed",
+        "composerIcon": "./assets/pexafy-icon-48.png",
+        "logo": "./assets/pexafy-icon-256.png"
+      },
+      "review": {
+        "test_cases": {
+          "positive": [
+            {
+              "description": "Search by a described scene, with the shape the user asked for (new conversation).",
+              "prompt": "Find landscape photos of a white ceramic mug on a wooden table.",
+              "tools_triggered": "search_photos",
+              "expected_behavior": "search_photos is called with english_search_sentence close to \"A white ceramic mug on a wooden table\" and explicit_orientation_filter [\"landscape\"]. Up to 16 landscape photographs of a white mug come back, each with its licence, source and credit line. In ChatGPT they appear as a grid; in Codex, as links with their credit lines."
+            },
+            {
+              "description": "More photographs like one result (same conversation, right after the first test case).",
+              "prompt": "Show me more like the second one.",
+              "tools_triggered": "search_photos_by_image",
+              "expected_behavior": "Called with the photo_id of the second result of the first test case, and the words of that test case in english_search_sentence. Up to 16 photographs similar to that one, each with its credit line."
+            },
+            {
+              "description": "Search from a reference image link, changed in words (new conversation).",
+              "prompt": "Find free photos that look like this one, but at night: https://images.pexels.com/photos/4846279/pexels-photo-4846279.jpeg?w=1280",
+              "tools_triggered": "search_photos_by_image",
+              "expected_behavior": "Called with image_url set to that link and english_search_sentence close to \"at night\". Up to 16 photographs of narrow old-town streets like the reference, several of them at night, each with its credit line."
+            },
+            {
+              "description": "A found photograph as an image file (same conversation, right after the third test case).",
+              "prompt": "Give me the first of these as an image file for my slide.",
+              "tools_triggered": "get_photo_file_by_photo_id",
+              "expected_behavior": "Called with the photo_id of the first result of the third test case. The image itself comes back, at most 1280 pixels wide, with a line giving its file name, size, licence, source, page at the source and credit line."
+            },
+            {
+              "description": "A shape implied by the format the user names (new conversation).",
+              "prompt": "I need a vertical phone wallpaper: a foggy pine forest at dawn.",
+              "tools_triggered": "search_photos",
+              "expected_behavior": "Called with english_search_sentence close to \"A foggy pine forest at dawn\" and explicit_orientation_filter [\"portrait\"]. Up to 16 portrait photographs of a misty pine forest, each with its licence, source, credit line and image link."
+            }
+          ],
+          "negative": [
+            {
+              "description": "A logo or an illustration is not a photograph: Pexafy only finds existing photographs.",
+              "prompt": "Draw a cartoon logo for my coffee shop.",
+              "expected_behavior": "No Pexafy tool is called. The assistant uses its own means or says it cannot."
+            },
+            {
+              "description": "Pexafy does not generate images.",
+              "prompt": "Generate an image of a cat astronaut floating in space.",
+              "expected_behavior": "No Pexafy tool is called."
+            },
+            {
+              "description": "Every tool is read-only: the plugin cannot change the selection or the account.",
+              "prompt": "Delete the photos I liked in the Pexafy grid.",
+              "expected_behavior": "Nothing is changed; at most get_grid_selected_photos is read. The assistant explains that Pexafy's tools only search and read, and that a like is removed with the heart in the grid."
+            }
+          ]
+        },
+        "commerce": false,
+        "commerce_description": "Pexafy sells nothing in ChatGPT or Codex and processes no payment. Its tools search a photo index and return free-to-use photographs."
+      },
+      "publication": {
+        "release_notes": "Package 1.1.1, for Pexafy's MCP server 1.0.2 (in production since 14 October 2026). It replaces package 1.1.0, which was not published.\n\nIn this package:\n- The name shown is Pexafy Stock Photos, with a description and long description that say when it helps: photos, pictures or images of real people, places or things, for any purpose.\n- Searching no longer needs sign-in: the tools work without an account on a daily allowance, counted under a keyed hash of ChatGPT's anonymized user identifier. connect_account shows ChatGPT's own account-connection prompt to people who want to use their Pexafy account. Every tool declares both noauth and oauth2 (scope read).\n- A skill, find-stock-photos: which Pexafy tool fits a request and how to present what comes back.\n- Starter prompts, and capabilities that match server 1.0.2.\n\nOn the server (tools reach users through continuous review):\n- search_photos takes one English sentence (english_search_sentence, formerly q) and an optional shape filter (explicit_orientation_filter, formerly orientation, now a list of landscape, portrait, square). The colour, source, licence, photographer, date and paging filters left the tool.\n- search_photos_by_image also takes the photo_id of a Pexafy photo (\"more like this one\"), besides an image URL, an uploaded file (image_file) or base64 bytes.\n- New get_photo_file_by_photo_id: one photograph as an image file, at most 1280 pixels wide, with its credit line.\n- New get_grid_selected_photos: the photographs the person liked in the grid, in their order, held for about an hour.\n- New connect_account (see above).\n- New results grid: shape filter, swipe deck, likes, and \u2248 for similar photographs. Its CSP: connect https://mcp.pexafy.com, resources https://thumb.pexafy.com, no frames; widget domain https://pexafy.com.\n- Responses no longer carry request identifiers, timings or plan names.\n- get_similar_photos is no longer listed: search_photos_by_image with a photo_id does the same job. Calls that use the 0.4.12 tool and parameter names keep working.\n- Where the results grid is shown, search_photos and search_photos_by_image open on a paragraph that presents the grid as the complete visual answer, and the model no longer receives the photographs' addresses there, so it does not write them again below the grid. Answers carry a declared presentation field.\n- Nullable output fields are declared as anyOf branches.\n\nAll tools remain read-only."
+      },
+      "apps": "./.app.json"
+    }
+  }
+}
Full technical diff · 11 changed fields

changed /files/.app.json/sha256

BEFORE
"f1109e32e83aab3ac33e9c8053d25a8f7248c1e68d9edcc45b530f36346fe019"
AFTER
"a04e1f16245813d2c1f7d9c77bb5a611e4494e5e9ec5efe20a4668592cf51dac"

changed /files/.app.json/size

BEFORE
127
AFTER
98

removed /files/.codex-plugin~1plugin.json

BEFORE
{
  "sha256": "d6541acf2b9f2ebde053d5c077764c634eba60c25fa97df5df3ae893a0968f43",
  "size": 4467
}
AFTER
Field is absent

added /files/assets~1pexafy-icon-256.png

BEFORE
Field was absent
AFTER
{
  "sha256": "725f3d4bdbc06e8927c1cfd6f12796502700180042e58157a4986d14536654f0",
  "size": 2521
}

added /files/assets~1pexafy-icon-48.png

BEFORE
Field was absent
AFTER
{
  "sha256": "1637a34fb81d9621c42e75037d7cf80a8987db71b9b376e608563d22608ac7fa",
  "size": 969
}

added /files/mcp.json

BEFORE
Field was absent
AFTER
{
  "sha256": "e2e71bd61a251608cde51e0ef4f702a95f3312ba830bcc737e5464b4ab02884d",
  "size": 195
}

added /files/plugin.json

BEFORE
Field was absent
AFTER
{
  "sha256": "63684d8f29d2456769ef9d3208c3fdeaddbe1b65f8e67000276c7dce01924a9e",
  "size": 11650
}

added /files/skills~1find-stock-photos~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "29bf00fe40496b07f19093dc0e3a90797c03f200baae279b67d439111281d378",
  "size": 4630
}

added /files/skills~1find-stock-photos~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "6582c84e7418362ac3aa690148c07534ace9f651451a4b4b4d451ea1a19db212",
  "size": 502
}

added /files/skills~1find-stock-photos~1assets~1pexafy-icon-256.png

BEFORE
Field was absent
AFTER
{
  "sha256": "725f3d4bdbc06e8927c1cfd6f12796502700180042e58157a4986d14536654f0",
  "size": 2521
}

added /files/skills~1find-stock-photos~1assets~1pexafy-icon-48.png

BEFORE
Field was absent
AFTER
{
  "sha256": "1637a34fb81d9621c42e75037d7cf80a8987db71b9b376e608563d22608ac7fa",
  "size": 969
}
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "a04e1f16245813d2c1f7d9c77bb5a611e4494e5e9ec5efe20a4668592cf51dac",
      "size": 98
    },
    "assets/pexafy-icon-256.png": {
      "sha256": "725f3d4bdbc06e8927c1cfd6f12796502700180042e58157a4986d14536654f0",
      "size": 2521
    },
    "assets/pexafy-icon-48.png": {
      "sha256": "1637a34fb81d9621c42e75037d7cf80a8987db71b9b376e608563d22608ac7fa",
      "size": 969
    },
    "mcp.json": {
      "sha256": "e2e71bd61a251608cde51e0ef4f702a95f3312ba830bcc737e5464b4ab02884d",
      "size": 195
    },
    "plugin.json": {
      "sha256": "63684d8f29d2456769ef9d3208c3fdeaddbe1b65f8e67000276c7dce01924a9e",
      "size": 11650
    },
    "skills/find-stock-photos/SKILL.md": {
      "sha256": "29bf00fe40496b07f19093dc0e3a90797c03f200baae279b67d439111281d378",
      "size": 4630
    },
    "skills/find-stock-photos/agents/openai.yaml": {
      "sha256": "6582c84e7418362ac3aa690148c07534ace9f651451a4b4b4d451ea1a19db212",
      "size": 502
    },
    "skills/find-stock-photos/assets/pexafy-icon-256.png": {
      "sha256": "725f3d4bdbc06e8927c1cfd6f12796502700180042e58157a4986d14536654f0",
      "size": 2521
    },
    "skills/find-stock-photos/assets/pexafy-icon-48.png": {
      "sha256": "1637a34fb81d9621c42e75037d7cf80a8987db71b9b376e608563d22608ac7fa",
      "size": 969
    }
  }
}

SHA-256 of public snapshot: c3849492b9bae879a240208c616779a62781dd6b124306c9df10e0213b283be4