Pexafy Stock Photos

com.pexafyPublished by pexafy.comOfficial publisherv1.0.2Updated Oct 24, 2026

Find free-to-use stock photos by words, by image or by similarity; every result names its licence.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingMedia & Design

Overview

AI-generated overview

Pexafy lets an assistant search free-to-use stock photos by words or by image, return them with licence and credit, and fetch them as image files.

What you can do
  • Search photographs described in a sentence, in any language, optionally limited to landscape, portrait or square
  • Find visually similar photos from a link, an upload or an existing Pexafy result
  • Fetch a chosen photo as an image file up to 1280 px wide, with its credit line
  • Retrieve the photos the person hearted in the results grid, in their chosen order
  • Connect a Pexafy account through the host's sign-in flow when more searches are needed
When to use it
Useful when a task needs real photographs rather than generated images: illustrating an article, slide, landing page or post, or finding free-to-use pictures similar to a reference image. Results carry source, licence and credit line, so attribution can be kept.
Requirements
Remote streamable HTTP endpoint; nothing to install and no API key. Most clients can search without an account; ChatGPT and Claude ask for a one-time sign-in, and a free Pexafy account is enough. Account linking uses OAuth in the browser.
Before you install
The tools are described as read-only, but account linking opens a Pexafy sign-in page and attaches an account to the conversation. Photos come from third-party stock libraries via Pexafy's index, and each result's licence and credit line must be displayed; check the named licence before commercial use.

Installation

In SourceWeft

  1. Open Pexafy Stock Photos in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.pexafy%2Fpexafy-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "pexafy-stock-photos": {
      "type": "http",
      "url": "https://mcp.pexafy.com/mcp"
    }
  }
}

README

[Pexafy Stock Photos MCP server. Real photos, right in the chat: a grid of free-to-use photographs with their credits, and one opened large with buttons to like it, find more like it or download it.]

[Install in VS Code] [Install in VS Code Insiders] [Install in GitHub Copilot app] [Add to ChatGPT] [Add to Cursor] [Connect Claude] [View in GitHub MCP Registry]

Ask for a photo the way you would describe it to a person.
Get real, free-to-use photographs back, inside the conversation, credits included.

[CI] [Official MCP Registry] [GitHub MCP Registry] [Smithery] [MIT licence]


Ask. Choose together. Put them to work.

🗣️ Ask, in your own words

Tell your assistant what you are working on, the way you would tell a colleague: “I'm writing a short article about Kyoto in autumn. Find photos of a temple garden with red maple leaves.” It writes the search; Pexafy matches the scene, not tags.

🤝 Choose together

Sixteen photographs come back. Open one large, swipe, heart the keepers, press ≈ for more like it: your picks go back to the assistant, in your order. Or simply answer in words: “the third one, but wider”.

🚀 Put them to work

The assistant carries on with them: the article with its photos in place, the slide, the landing page, the post. Each photograph keeps its licence and the credit line to display, and comes as an image file when the work needs one.

With the grid, or without it

In a chat that draws itIn an agent, a terminal or a script
ChatGPT, Claude, VS Code, Cursor. The photographs appear as a grid in the conversation. You see them, open them, like them; the assistant works from what you picked.Claude Code, Codex, any MCP client. Each result arrives as a link with its licence and credit line. The assistant chooses, fetches the file and places it in your Markdown, HTML, slides or CMS.

Add it in 30 seconds

WhereHow
VS CodeInstall in VS Code, or code --add-mcp '{"name":"pexafy","type":"http","url":"https://mcp.pexafy.com/mcp"}'
VS Code InsidersInstall in VS Code Insiders
GitHub Copilot appInstall in the GitHub Copilot app
GitHub MCP RegistryPexafy's page in the registry, with its install buttons
ChatGPTAdd Pexafy from ChatGPT's plugin directory
ClaudeCustomize → Connectors → Add custom connector, then https://mcp.pexafy.com/mcp
Claude Codeclaude mcp add --transport http pexafy https://mcp.pexafy.com/mcp
Codexcodex mcp add pexafy --url https://mcp.pexafy.com/mcp
GitHub Copilot CLIcopilot mcp add --transport http pexafy https://mcp.pexafy.com/mcp
CursorAdd to Cursor
Goose, Kiro, Gemini CLI, OpenCode, Cline, Zed…One click or one command each, on pexafy.com/mcp
Any MCP clientStreamable HTTP at https://mcp.pexafy.com/mcp

Zero friction: nothing to install, no API key. Most clients search right away, without an account. When you want your own account, ask the assistant to connect my Pexafy account: it opens Pexafy's sign-in page in your browser (OAuth), and nothing is pasted anywhere. ChatGPT and Claude ask you to sign in once; a free account is enough.

Five tools, all read-only

ToolWhat it does
search_photosPhotographs described in one sentence, in any language, optionally only landscape, portrait or square.
search_photos_by_imagePhotographs that look like a picture (a link, an upload) or like a Pexafy photo: “like this, but at night”.
get_photo_file_by_photo_idOne photograph as an image file, up to 1280 px wide, with its credit line.
get_grid_selected_photosThe photographs you liked in the grid, in the order you chose.
connect_accountLinks your Pexafy account, right from the conversation.

Where the photos come from

Pexafy searches its own index of millions of free-to-use photographs, collected from stock libraries such as Unsplash, Pexels and Pixabay. Every photograph is indexed by meaning, so a whole scene in one sentence beats a list of keywords. Each result names its source and licence and carries the credit line to display.


pexafy.com/mcp  ·  Self-host & develop  ·  Changelog  ·  Privacy  ·  MIT licence

ChatGPT, Claude, Codex, Cursor, GitHub Copilot and Visual Studio Code are trademarks of their respective owners.

Source: README.md at commit 62d6a47

Tools

5

search_photos

Search free stock photos

Use this when the user asks for a real photograph, or states a need that a photograph fills, and the picture is not already in the conversation. Call it when they ask outright: “find me photos of…”, “show me images of…”, “I need a picture of…”, “do you have a photo of…”, “where can I find free photos of…”, in any language. Call it when they describe the need without asking to search: “I'm writing an article and need a header image”, “my landing page needs a hero image”, “I need something to illustrate this”. Call it when they ask for something meant to carry photographs: “write an article with pictures”, “a deck with images”. Call it when they name only the picture, with no reason given: “a photo of a white mug”, “a train in Japan”. If the user is working on something that usually carries photographs — an article, a page, a deck, a post — without asking for any, you may offer to look for some; call it only once they accept. This covers requests for photographs for articles, blog posts, websites, landing pages, products, slides, documents, reports, social posts, ads, newsletters, banners, thumbnails, covers, posters, backgrounds, wallpapers and mood boards; photographs that illustrate a concept, explain a subject or accompany a piece of writing; and any request for free, stock, royalty-free, commercially usable, real or documentary photographs. A request for a visual is not always a request for a photograph: this tool finds photographs that already exist — not illustrations, drawings, logos, icons, diagrams or screenshots — and it does not generate, edit or upscale an image, nor look for a named person. It searches Pexafy's own index of millions of free-to-use photographs from stock libraries such as Unsplash, Pexels and Pixabay, matched to the scene described. Each result carries a `rank`, a `photo_id`, its licence, the credit line to display and an image link; the file itself comes from get_photo_file_by_photo_id. In a host that renders it, the grid shows them;

Parametersenglish_search_sentencerequiredexplicit_orientation_filter

search_photos_by_image

Find photos that look like an image or a Pexafy photo

Use this when the user wants photographs that look like a picture, rather than ones described in words: a picture they link to, one the host passes to the tool as a file, or a Pexafy photo already found or liked in the grid. Call it for “find images like this”, “something similar to this photo”, “find a free alternative to this image”, “I need this but royalty-free”, “photos in this style”, “more like the second one”, whether or not they say “search by image”. Give exactly one reference: `photo_id` for a Pexafy photo from an earlier result or liked in the grid; `image_url` for a picture at a public URL, such as a link the user pasted; `image_file` when the host passes the user's uploaded image to the tool; `image_base64` for image bytes a client already holds. Sending two is refused. A picture that is only visible in the conversation — not linked, not passed to the tool — is not a reference this tool can receive; its scene can be searched in words with `search_photos`. Words are optional, in `english_search_sentence`: with a `photo_id`, the words that photograph was found under; with an image, only what the user wants changed or kept (“like this but at night”). It finds free stock photographs in Pexafy's index that visually match the reference. The reference image is sent to Pexafy only to run the search; it is not stored. Each result carries a `rank`, a `photo_id`, its licence, the credit line to display and an image link. In a host that renders it, the grid shows them; the answer omits image links.

Parametersphoto_idimage_urlimage_fileimage_base64english_search_sentenceexplicit_orientation_filter

get_photo_file_by_photo_id

Get the photo as a file

Returns one photograph from an earlier Pexafy result as an image file, identified by its `photo_id`. A result's link points to the image; this tool returns the image itself, so the person does not need to send the photograph again. Use it when the user wants a photograph found here as a file: to place it in a document, a slide or a post, to attach, send or download it, or to have it cropped, captioned or otherwise edited with the host's own tools. It is for a photograph the person picked: where the Pexafy grid is shown, the photographs of a search are already on screen and need no file to be seen. The answer contains the photograph, at most 1280 pixels wide, and a line giving its file name, size, licence, source, `photo_id`, page at the source and the credit line to display. One photo per call; the file stays in the conversation afterwards. This server does not edit images: what can be done to the file next depends on the host's own tools. Its licence and credit line apply to this photograph only.

Parametersphoto_idrequired

get_grid_selected_photos

Get the photos the person liked in the grid

Returns the photographs the person liked (hearted) in the Pexafy results grid. Use it when the person refers to that selection rather than asking for new photos — for example “the images I selected”, “the ones I chose”, “my selection”, “the photos I hearted”, “the photos I liked”, “use the ones I picked”, “put my selection in the document”, “download the ones I chose”, or “write the article around my photos”. The selection is held by the grid and the server, not by the conversation: this tool is how it is read, and search results are not the selection. It takes no arguments and returns every liked photograph with its rank, photo_id, photographer, source library, licence, pixel size, orientation, description, page URL and credit line, and `selection_count`, the number of them. To get one of them as an image file, pass its photo_id to get_photo_file_by_photo_id. `rank` is the person's order, #1 first: the order the photos were liked in, unless the person rearranged them by dragging in the grid. Where the grid is rendered, that number is drawn on each liked photograph, so it is the number the person sees and names them by (“#2”). The `rank` of a search result is only its position in that answer and is not drawn on the grid. An empty selection means nothing is liked in the grid currently on screen; a photograph is liked with the heart on it. A selection expires an hour after its last change, and a new search replaces the grid it belongs to.

Takes no parameters.

connect_account

Connect a Pexafy account

Asks the host to offer its own flow for connecting a Pexafy account, when none is attached. Use it when the person asks to connect, link or sign in to a Pexafy account — including from the account button in the Pexafy grid — or wants more searches than the daily allowance available without an account. When no account is attached, it returns an error result that carries an account-connection request for the host: the error is how that request is delivered, not a failure. A host that supports it shows its own account-connection prompt, which the person completes or dismisses; other hosts show only the result's text. Calling it again returns the same request. When an account is already attached, it says so and starts nothing. It does not search, and searching does not require calling it. `check_only` is set by the Pexafy grid to read the state without opening a prompt; leave it unset when the person wants to connect or sign in.

Parameterscheck_only

Version history

4
  1. v1.0.2LatestOct 14, 2026
  2. v1.0.1Oct 7, 2026
  3. v1.0.0Oct 3, 2026
  4. v0.4.11Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts