{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_rfxhfucx4vfp","handle":"pexafy","url":"https://wellknown.network/agents/pexafy","links":{"self":"https://wellknown.network/agents/pexafy/record.json","html":"https://wellknown.network/agents/pexafy","markdown":"https://wellknown.network/agents/pexafy/record.md","api":"https://wellknown.network/api/v1/agents/pexafy","status":"https://wellknown.network/api/v1/agents/pexafy/status","claim":"https://wellknown.network/agents/pexafy/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/pexafy/claim.json","badge":"https://wellknown.network/agents/pexafy/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/pexafy/history","tools":"https://wellknown.network/api/v1/agents/pexafy/tools"},"ard":{"identifier":"urn:air:mcp.pexafy.com:server:pexafy","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Pexafy","summary":"Find free-to-use stock photos by words, by image or by similarity; every result names its licence.","description":"Find free-to-use stock photos by words, by image or by similarity; every result names its licence.","publisher":{"name":"com.pexafy","url":null},"homepage":"https://pexafy.com/mcp/","repository":"https://github.com/Pexafy/pexafy-mcp","version":"1.0.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.pexafy.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-06T23:07:51.599102Z","publishedAt":"2026-10-06T23:07:51.599102Z","registryName":"com.pexafy/pexafy-mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[],"categories":[],"language":"en"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-10-10T15:29:51.001Z","lastProbedAt":"2026-10-10T15:29:51.001Z","statusComputedAt":"2026-10-10T15:32:34.676Z","reliability30d":{"probes":111,"successRate":1,"p50Ms":86,"basis":"mixed","measures":{"availability":"availability (some checks stopped at authentication)","latency":"response time (mixed)","tools":"partially observed","summary":"Some successful checks reached the service and some stopped at an authentication response; figures combine both."},"checks":{"total":109,"ok":109,"authBoundaryOk":83,"serviceOk":26,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T15:29:51.001Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":75,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T08:33:19.707Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":307,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T02:29:50.773Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":66,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T19:27:14.484Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":71,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T13:30:47.053Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":78,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T06:21:50.188Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":124,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T23:23:20.671Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":78,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T16:28:38.688Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":75,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T10:23:26.984Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":76,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T03:25:11.133Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":69,"error":null,"detail":{"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"toolCount":5,"toolsHash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","serverName":"pexafy","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"1.0.1","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_photos","description":"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.\n\nCall it when t"},{"name":"search_photos_by_image","description":"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 "},{"name":"get_photo_file_by_photo_id","description":"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 "},{"name":"get_grid_selected_photos","description":"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"},{"name":"connect_account","description":"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 "}],"package":null,"toolSurface":{"id":"ts_88ch4uer8jgg","endpointId":"ep_8hvpenn82v48","hash":"81f86ec189f5a72dea8ddd7049ab260aa1c3cb454158e174f4a996b58c2cf8fb","toolCount":5,"serverName":"pexafy","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-03T15:30:11.596Z","lastSeenAt":"2026-10-10T15:29:51.007Z","observations":26,"toolNames":["search_photos","search_photos_by_image","get_photo_file_by_photo_id","get_grid_selected_photos","connect_account"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_8hvpenn82v48","url":"https://mcp.pexafy.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T15:29:51.012Z","auth":{"observedAt":"2026-10-10T15:29:51.264Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://mcp.pexafy.com/.well-known/oauth-protected-resource/mcp","resource":"https://mcp.pexafy.com/mcp","authorizationServers":["https://pexafy.com/"],"scopesSupported":["read"]},"authorizationServer":{"url":"https://pexafy.com/.well-known/oauth-authorization-server","issuer":"https://pexafy.com/","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none","client_secret_post"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-10T15:29:51.278Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"pexafy.com","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-09-07T09:43:33.000Z","validTo":"2026-12-06T09:43:32.000Z","daysToExpiry":56,"sanCount":2,"fingerprint256":"7C:C0:C7:C6:E4:FA:39:86:52:A8:F7:B2:D2:48:3A:6B:9C:57:D6:0C:F0:1E:96:44:91:5F:A3:D0:D4:E6:00:6F"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.pexafy/pexafy-mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/com.pexafy%2Fpexafy-mcp","firstSeenAt":"2026-09-05T20:18:54.427Z","fetchedAt":"2026-10-09T09:23:07.358Z","normalizedAt":"2026-10-09T09:23:07.358Z"}]},"firstSeenAt":"2026-09-05T20:18:54.427Z","updatedAt":"2026-10-10T15:33:19.497Z"}