mcp-server-pexels
An MCP (Model Context Protocol) server for the Pexels API. Built in Rust, exposes photo search, video search, and curated/featured content as MCP tools.
Communicates via stdio using JSON-RPC 2.0.
Tools
| Tool | Description |
|---|---|
search_photos | Search photos by query with optional orientation/size/color/locale filters |
curated_photos | Get a paginated list of curated, hand-picked photos |
get_photo | Retrieve a single photo by ID |
search_videos | Search videos by query with optional orientation/size/locale filters |
popular_videos | Get popular videos with optional dimension and duration filters |
get_video | Retrieve a single video by ID |
featured_collections | List featured collections (themed sets of media) |
collection_media | List media in a specific collection (filterable by photos/videos) |
Prerequisites
- Rust (edition 2024)
- A Pexels API key from pexels.com/api
Setup
mkdir -p ~/.config/mcp-server-pexels
Create ~/.config/mcp-server-pexels/config.toml:
api_key = "your-pexels-api-key"
Build
cargo build --release
Produces target/release/mcp-server-pexels.
MCP configuration
{
"mcpServers": {
"pexels": {
"command": "/path/to/mcp-server-pexels"
}
}
}
Project structure
src/
main.rs - entry point, config loading, stdio transport
server.rs - MCP tool definitions
api.rs - Pexels HTTP client and response types
params.rs - tool parameter types
config.rs - TOML config loading
License
MIT