Pexels MCP Server
Provides tools for searching photos and videos using the Pexels API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pexels MCP Serversearch for photos of a sunset"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pexels MCP Server
An MCP server to search for photos and videos on Pexels.
Prerequisites
Docker
Pexels API Key (Get one at https://www.pexels.com/api/)
Related MCP server: pexels-mcp-server
Building the Docker Image
Run the following command in this directory:
docker build -t pexels-mcp .Running the Server
You can run the server directly with Docker. It communicates via Stdio, so it's designed to be called by an MCP client (like Claude Desktop or the MCP Toolkit).
To test it manually or use it, you generally configure your MCP client to run the docker command:
docker run -i --rm -e PEXELS_API_KEY=your_api_key_here pexels-mcpConfiguration
Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"pexels": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PEXELS_API_KEY=your_actual_api_key_here",
"pexels-mcp"
]
}
}
}Docker MCP Toolkit
If you are using the Docker MCP Toolkit, you may be able to add it via the UI by pointing to this image or running the container.
Available Tools
3 toolspexels_get_photoA
Get details for a specific photo by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the photo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only says 'Get details' without specifying what details are included or any side effects. Minimal behavioral context for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded with the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and no output schema, the description is reasonably complete for its simplicity. Lacks detail on returned fields, but adequate for a get-by-ID tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the 'id' parameter. The tool description adds little beyond confirming it's a photo by ID, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get details' for a specific photo identified by ID, distinguishing it from sibling search tools that browse or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies using this tool when you have a known photo ID, contrasted with search tools for discovery, but no explicit when-not or alternative mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pexels_search_photosC
Search for photos on Pexels
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| query | Yes | The search query (e.g., 'nature', 'office') | |
| per_page | No | Number of results to return (default: 10, max: 80) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits, but it only says 'Search for photos', omitting details like rate limits, result format, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but under-specified for a tool with 3 parameters and no output schema. It does not earn its place by adding necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 3 parameters, the description is too minimal; it omits return value information and pagination details, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional parameter meaning beyond the schema, but does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search for photos on Pexels' clearly states the action and resource, and the tool name distinguishes it from siblings like pexels_get_photo and pexels_search_videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., when to search vs. get a specific photo or search videos). It lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pexels_search_videosB
Search for videos on Pexels
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| query | Yes | The search query (e.g., 'nature', 'office') | |
| per_page | No | Number of results to return (default: 10, max: 80) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It fails to disclose any behavioral traits such as rate limits, safety, or whether results are paginated. The only info is 'search', which does not convey potential side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the core purpose. It contains no wasted words. However, it borders on under-specification, which prevents a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and three well-documented parameters, the description is minimally sufficient. However, it lacks context about the response format or pagination behavior, which would aid completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so each parameter (query, page, per_page) is described in the schema. The tool description adds no further meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name 'pexels_search_videos' clearly indicates the resource (videos) and action (search). The description 'Search for videos on Pexels' is a specific verb+resource, and it effectively distinguishes from sibling 'pexels_search_photos' by focusing on videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings (e.g., pexels_search_photos). There is no mention of prerequisites, alternatives, or when-not-to-use. The usage context is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: retrieving a single photo by ID, searching photos, and searching videos. There is no overlap or ambiguity.
All tools follow the 'pexels_verb_noun' pattern consistently, making the naming predictable and easy to understand.
With only 3 tools, the server is tightly scoped to core Pexels operations. This is appropriate for a focused API wrapper.
Covers search for both photos and videos and retrieval of a specific photo, but lacks a tool to get a specific video by ID, which is a notable gap given symmetrical functionality.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for meme generation, template search, caption rendering, and AI meme creation.
MCP server for Google Veo AI video generation
MCP server for Flux AI image generation
Search 77,000+ MCP servers ranked by real adoption data to find the right one for any task.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server to search and download stock images from Pexels, Unsplash, and Pixabay24103MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables AI agents to search, retrieve, and curate free stock photos and videos from Pexels, with tools, resources, and prompts for easy integration.8MIT
- FlicenseAqualityCmaintenanceAn MCP server that searches and downloads royalty-free images from Pixabay by keyword, with support for custom image size and safe search.1
- AlicenseAqualityFmaintenanceAn MCP server that enables AI assistants to search for royalty-free images from Pexels and Unsplash using natural language, returning structured results with metadata.559MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/madebyaram2024/pexels-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server