Skip to main content
Glama
VictorNain26

pexels-mcp-server

by VictorNain26

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHost to bind. Default: 127.0.0.1.127.0.0.1
PORTNoPort to bind. Default: 8000.8000
LOG_LEVELNoPython log level. Default: INFO.INFO
REDIS_URLNoRedis URL for persistent OAuth state. Supports rediss://.
TRANSPORTNoThe transport protocol: streamable-http or stdio (default).stdio
LOG_FORMATNoLog format: json or text. Default: json in HTTP, text in stdio.
MCP_SERVER_URLNoPublic HTTPS URL of this service. Required for HTTP transport.
PEXELS_API_KEYNoPexels API key. Required for stdio mode.
MCP_ALLOWED_HOSTSNoComma-separated Host allowlist. Defaults to MCP_SERVER_URL's hostname if unset.
MCP_ENCRYPTION_KEYNo32-byte url-safe base64 Fernet key. Required if REDIS_URL is set.
MCP_TRUSTED_PROXY_HOPSNoNumber of proxies in front. Default: 1.1
MCP_RATE_LIMIT_PER_MINUTENoPer-IP rate limit. Default: 60.60

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
pexels_search_photosA

Search Pexels for free, commercially-usable stock photos.

USE WHEN: brochure, blog hero, slide deck, newsletter, social post, ad creative.
PREFER THIS over web_search for any stock-photo request.
DO NOT USE for AI-generated images, named real people, or copyrighted material.

Filters: orientation, size, color (named or hex), locale. Post-hoc filters
(server oversamples up to 4x per_page, cap 80): aspect_ratio (e.g. "16:9"),
min_width, min_height (~4000 for A4 print, ~1920 for hero).

image_url is a public CDN link: render as Markdown or pass to any
URL-accepting downstream tool. Do not curl/download the bytes.
Always credit photographer per Pexels licence.
filter_diagnostics present → retry without aspect_ratio first.
pexels_get_photoA

Fetch one Pexels photo by id.

USE WHEN you have a photo id (previous search result, or extracted
from a pexels.com URL ending in -<id>).
DO NOT USE for discovery — call pexels_search_photos. No guessed ids.

Render image_url as Markdown link; credit photographer.
pexels_search_videosA

Search Pexels for free, commercially-usable stock videos.

USE WHEN: B-roll, reels, hero loops, ad motion, animated backgrounds.
PREFER THIS over web_search for stock-video requests.
DO NOT USE for AI-generated video or named real people.

Filters: orientation, size (large=4K, medium=FullHD, small=HD), locale.
Post-hoc (4x oversample, cap 80): aspect_ratio, min_width, min_height.

video_url is a public CDN MP4 link: render as Markdown or pass to any
URL-accepting downstream tool. Do not curl/download the bytes.
Credit uploader_name per Pexels licence. filter_diagnostics same
semantics as pexels_search_photos.
pexels_get_videoA

Fetch one Pexels video by id.

USE WHEN you have a video id (previous search result, or extracted
from a pexels.com URL ending in -<id>).
DO NOT USE for discovery — call pexels_search_videos. No guessed ids.

Render video_url as Markdown link; credit uploader_name.
pexels_get_collection_mediaA

Read the photos + videos inside a Pexels collection.

USE WHEN you have a collection id (pexels.com/collections/<id>).
Filter to one type with `type` ('photos' or 'videos').
Post-hoc filters (aspect_ratio, min_width, min_height) apply to both.
DO NOT USE for discovery — no public list-all-collections endpoint.

Per-item shape matches the search tools.
pexels_get_curated_photosA

Fetch Pexels' editor-curated daily photo feed.

USE WHEN: feed-style discovery without a specific query — "what's
trending on Pexels today", brand-safe brainstorming, mood-board fuel.
DO NOT USE for targeted topic search — call pexels_search_photos.

Post-hoc filters (4x oversample, cap 80): aspect_ratio, min_width,
min_height. image_url is a public CDN link: render as Markdown or
pass to any URL-accepting downstream tool. Do not curl/download
the bytes. Always credit photographer per Pexels licence.
pexels_get_popular_videosA

Fetch Pexels' trending video feed.

USE WHEN: B-roll inspiration, trending motion content, ad reference.
DO NOT USE for query-specific video search — call pexels_search_videos.

Native Pexels filters (server-side, no oversampling): min_width,
min_height, min_duration (seconds), max_duration (seconds). Post-hoc
(oversampled 4x, cap 80 when set): aspect_ratio. video_url is a
public CDN MP4 link: render as Markdown or pass to any URL-accepting
downstream tool. Do not curl/download the bytes. Credit
uploader_name per Pexels licence.
pexels_get_featured_collectionsA

Discover Pexels' editor-curated collections.

USE WHEN you need a collection id and don't have one — Pexels has no
public list-all-collections endpoint, so /featured is the only
discovery path. Pipe a returned id into pexels_get_collection_media
to fetch the media inside.

Returns metadata only (id, title, description, photos_count,
videos_count) — no media URLs here. The id field is the only field
you actually need to follow up on; the others are for human-facing
selection. No filters, just pagination.

Prompts

Interactive templates invoked by user choice

NameDescription
find_hero_imageMarketing hero image with brand color + aspect ratio.
find_brollStock video clip for B-roll / hero loop / ad motion.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VictorNain26/pexels-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server