unsplash mcp server
A lightweight server that enables seamless integration with Unsplash's image library, allowing developers to search for high-quality photos with various filters directly from the Cursor editor.
A lightweight server that enables seamless integration with Unsplash's image library, allowing developers to search for high-quality photos with various filters directly from the Cursor editor.
English | 简体中文
A simple MCP server for seamless Unsplash image integration and search capabilities.
Unsplash MCP Server is used for searching rich, high-quality images. It's ideal for developers who want to integrate Unsplash functionality into their own applications.
Before installing this server, you'll need to obtain an Unsplash API Access Key:
For more details, refer to the official Unsplash API documentation.
To install Unsplash Image Integration Server for Claude Desktop automatically via Smithery:
Cursor IDE
npx -y @smithery/cli@latest install @hellokaton/unsplash-mcp-server --client cursor --key 7558c683-****-****
Windsurf
npx -y @smithery/cli@latest install @hellokaton/unsplash-mcp-server --client windsurf --key 7558c683-****-****
Cline
npx -y @smithery/cli@latest install @hellokaton/unsplash-mcp-server --client cline --key 7558c683-****-****
# Clone the repository
git clone https://github.com/hellokaton/unsplash-mcp-server.git
# Navigate to project directory
cd unsplash-mcp-server
# Create virtual environment
uv venv
# Install dependencies
uv pip install .
Cursor Editor Integration
Add the following configuration to your Cursor editor's settings.json
:
⚠️ Note: Please adjust the following configuration according to your actual installation:
uv
is not in your system PATH, use an absolute path (e.g., /path/to/uv
)./server.py
should be modified to the actual location of your server script (can use absolute path or path relative to workspace){
"mcpServers": {
"unsplash": {
"command": "uv",
"args": ["run", "--with", "fastmcp", "fastmcp", "run", "./server.py"],
"env": {
"UNSPLASH_ACCESS_KEY": "${YOUR_ACCESS_KEY}"
}
}
}
}
{
"tool": "search_photos",
"query": "mountain",
"per_page": 5,
"orientation": "landscape"
}
[
{
"description": " Search for Unsplash photos Args: query: Search keyword page: Page number (1-based) per_page: Results per page (1-30) order_by: Sort method (relevant or latest) color: Color filter (black_and_white, black, white, yellow, orange, red, purple, magenta, green, teal, blue) orientation: Orientation filter (landscape, portrait, squarish) Returns: List[UnsplashPhoto]: List of search results containing photo objects with the following properties: - id: Unique identifier for the photo - description: Optional text description of the photo - urls: Dictionary of available image URLs in different sizes - width: Original image width in pixels - height: Original image height in pixels ",
"inputSchema": {
"properties": {
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": {
"path": "smithery.yaml",
"type": "blob"
},
"title": "Color"
},
"order_by": {
"default": "relevant",
"title": "Order By",
"type": "string"
},
"orientation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": {
"path": "smithery.yaml",
"type": "blob"
},
"title": "Orientation"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"per_page": {
"default": 10,
"title": "Per Page",
"type": "integer"
},
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"title": "search_photosArguments",
"type": "object"
},
"name": "search_photos"
}
]