Unsplash MCP Server

by okooo5km

14 354 downloads Not rated yet

About

a Swift implementation of hellokaton/unsplash-mcp-server, with additional features like get_photo and random_photo

Explore

Advanced Image Search: Search Unsplash's extensive photo library with filters for:
Keyword relevance
Color schemes
Orientation options
Custom sorting and pagination
Detailed Photo Information: Get comprehensive details about specific photos including EXIF data, location, and photographer information
Random Photo Selection: Get random photos with flexible filtering options
Multiple Connection Modes:
Standard I/O mode for direct integration with LLMs
Server-Sent Events (SSE) mode for web-based connections

mkdir -p ~/.local/bin
mv unsplash-mcp-server ~/.local/bin/
rm unsplash-mcp-server.zip


mkdir -p ~/.local/bin
cp unsplash-mcp-server ~/.local/bin/

Make sure ~/.local/bin is in your PATH by adding to your shell configuration file:

   echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc  # or ~/.bashrc
   source ~/.zshrc  # or source ~/.bashrc
   

The server requires an Unsplash API access key to function. Set it in your environment:

export UNSPLASH_ACCESS_KEY="your-access-key-here"
Add to your Claude settings:
"mcpServers": {
  "unsplash": {
    "command": "unsplash-mcp-server",
    "env": {
      "UNSPLASH_ACCESS_KEY": "your-access-key-here"
    }
  }
}

Add the following configuration to your Cursor editor's settings.json:

{
  "mcpServers": {
    "unsplash": {
      "command": "unsplash-mcp-server",
      "env": {
        "UNSPLASH_ACCESS_KEY": "your-access-key-here"
      }
    }
  }
}

> Note: When adding environment variables in Chatwise, do not wrap the value in quotes (fixes #1)

{
  "photoId": "Dwu85P9SOIk"
}
{
  "count": 3,
  "query": "coffee",
  "orientation": "portrait"
}

search_photos

Search for photos on Unsplash

query

(string, required): Search keyword

page

(number, optional): Page number (1-based), default: 1

per_page

(number, optional): Results per page (1-30), default: 10

order_by

(string, optional): Sort method (relevant or latest), default: "relevant"

color

(string, optional): Color filter (black_and_white, black, white, yellow, orange, red, purple, magenta, green, teal, blue)

orientation

(string, optional): Orientation filter (landscape, portrait, squarish)

get_photo

Get detailed information about a specific photo

photoId

(string, required): The photo ID to retrieve

random_photo

Get one or more random photos

count

(number, optional): The number of photos to return (Default: 1; Max: 30)

collections

(string, optional): Public collection ID('s) to filter selection. If multiple, comma-separated

topics

(string, optional): Public topic ID('s) to filter selection. If multiple, comma-separated

username

(string, optional): Limit selection to a specific user

content_filter

(string, optional): Limit results by content safety. Valid values: low, high

featured

(boolean, optional): Limit selection to featured photos

search_photos - Search for photos on Unsplash
query (string, required): Search keyword
page (number, optional): Page number (1-based), default: 1
per_page (number, optional): Results per page (1-30), default: 10
order_by (string, optional): Sort method (relevant or latest), default: "relevant"
color (string, optional): Color filter (black_and_white, black, white, yellow, orange, red, purple, magenta, green, teal, blue)
orientation (string, optional): Orientation filter (landscape, portrait, squarish)

get_photo - Get detailed information about a specific photo
photoId (string, required): The photo ID to retrieve

random_photo - Get one or more random photos
count (number, optional): The number of photos to return (Default: 1; Max: 30)
collections (string, optional): Public collection ID('s) to filter selection. If multiple, comma-separated
topics (string, optional): Public topic ID('s) to filter selection. If multiple, comma-separated
username (string, optional): Limit selection to a specific user
query (string, optional): Limit selection to photos matching a search term
orientation (string, optional): Filter by photo orientation. Valid values: landscape, portrait, squarish
content_filter (string, optional): Limit results by content safety. Valid values: low, high
featured (boolean, optional): Limit selection to featured photos

> A Model Context Protocol server that provides Unsplash photo search and retrieval capabilities. This server enables LLMs to search, retrieve, and get random photos from Unsplash's extensive collection. This is a Go implementation that offers tools like search_photos, get_photo, and random_photo.

Go Platform
License

✨ Features

Advanced Image Search: Search Unsplash's extensive photo library with filters for:
Keyword relevance
Color schemes
Orientation options
Custom sorting and pagination
Detailed Photo Information: Get comprehensive details about specific photos including EXIF data, location, and photographer information
Random Photo Selection: Get random photos with flexible filtering options
Multiple Connection Modes:
Standard I/O mode for direct integration with LLMs
Server-Sent Events (SSE) mode for web-based connections

Available Tools

search_photos - Search for photos on Unsplash
query (string, required): Search keyword
page (number, optional): Page number (1-based), default: 1
per_page (number, optional): Results per page (1-30), default: 10
order_by (string, optional): Sort method (relevant or latest), default: "relevant"
color (string, optional): Color filter (black_and_white, black, white, yellow, orange, red, purple, magenta, green, teal, blue)
orientation (string, optional): Orientation filter (landscape, portrait, squarish)

get_photo - Get detailed information about a specific photo
photoId (string, required): The photo ID to retrieve

random_photo - Get one or more random photos
count (number, optional): The number of photos to return (Default: 1; Max: 30)
collections (string, optional): Public collection ID('s) to filter selection. If multiple, comma-separated
topics (string, optional): Public topic ID('s) to filter selection. If multiple, comma-separated
username (string, optional): Limit selection to a specific user
query (string, optional): Limit selection to photos matching a search term
orientation (string, optional): Filter by photo orientation. Valid values: landscape, portrait, squarish
content_filter (string, optional): Limit results by content safety. Valid values: low, high
featured (boolean, optional): Limit selection to featured photos

Installation

Option 1: Download Pre-built Binary

Download the latest pre-built binary for your platform from the GitHub Releases page and follow the installation instructions below.

<details>
<summary><b>macOS Installation</b></summary>

macOS with Apple Silicon (M1/M2/M3):
```bash
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.