pexels-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host to bind. Default: 127.0.0.1. | 127.0.0.1 |
| PORT | No | Port to bind. Default: 8000. | 8000 |
| LOG_LEVEL | No | Python log level. Default: INFO. | INFO |
| REDIS_URL | No | Redis URL for persistent OAuth state. Supports rediss://. | |
| TRANSPORT | No | The transport protocol: streamable-http or stdio (default). | stdio |
| LOG_FORMAT | No | Log format: json or text. Default: json in HTTP, text in stdio. | |
| MCP_SERVER_URL | No | Public HTTPS URL of this service. Required for HTTP transport. | |
| PEXELS_API_KEY | No | Pexels API key. Required for stdio mode. | |
| MCP_ALLOWED_HOSTS | No | Comma-separated Host allowlist. Defaults to MCP_SERVER_URL's hostname if unset. | |
| MCP_ENCRYPTION_KEY | No | 32-byte url-safe base64 Fernet key. Required if REDIS_URL is set. | |
| MCP_TRUSTED_PROXY_HOPS | No | Number of proxies in front. Default: 1. | 1 |
| MCP_RATE_LIMIT_PER_MINUTE | No | Per-IP rate limit. Default: 60. | 60 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pexels_search_photosA | Search Pexels for free, commercially-usable stock photos. |
| pexels_get_photoA | Fetch one Pexels photo by id. |
| pexels_search_videosA | Search Pexels for free, commercially-usable stock videos. |
| pexels_get_videoA | Fetch one Pexels video by id. |
| pexels_get_collection_mediaA | Read the photos + videos inside a Pexels collection. |
| pexels_get_curated_photosA | Fetch Pexels' editor-curated daily photo feed. |
| pexels_get_popular_videosA | Fetch Pexels' trending video feed. |
| pexels_get_featured_collectionsA | Discover Pexels' editor-curated collections. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| find_hero_image | Marketing hero image with brand color + aspect ratio. |
| find_broll | Stock video clip for B-roll / hero loop / ad motion. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct resource and action (e.g., search vs. get individual, photos vs. videos, collections vs. curated vs. popular). No overlapping purposes.
All tools follow a consistent 'pexels_verb_noun' pattern with clear verbs (get, search) and nouns (photos, videos, collections, media). No mixing of conventions.
8 tools is well-scoped for a stock media API covering both photos and videos with search, individual retrieval, curated feeds, and collections. Each tool earns its place.
The tool surface covers all key Pexels features: search, single-item fetch, curated lists, popular feeds, and collection browsing. No gaps for a read-only API; uploads are outside scope.