Production-ready Model Context Protocol (MCP) server for the Unsplash API — search & fetch photos, collections, topics, users, and stats, with built-in attribution and download-tracking compliance. For Claude, Cursor, and any MCP client. Unofficial.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add unsplash-server-hanoak --env UNSPLASH_ACCESS_KEY='<UNSPLASH_ACCESS_KEY>' -- npx -y @hanoak/unsplash-mcp-server~/.codex/config.toml
[mcp_servers.unsplash-server-hanoak]
command = "npx"
args = ["-y", "@hanoak/unsplash-mcp-server"]
env = { UNSPLASH_ACCESS_KEY = "<UNSPLASH_ACCESS_KEY>" }
# codex mcp add unsplash-server-hanoak --env UNSPLASH_ACCESS_KEY='<UNSPLASH_ACCESS_KEY>' -- npx -y @hanoak/unsplash-mcp-server~/.cursor/mcp.json
{
"mcpServers": {
"unsplash-server-hanoak": {
"command": "npx",
"args": [
"-y",
"@hanoak/unsplash-mcp-server"
],
"env": {
"UNSPLASH_ACCESS_KEY": "<UNSPLASH_ACCESS_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"unsplash-server-hanoak": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hanoak/unsplash-mcp-server"
],
"env": {
"UNSPLASH_ACCESS_KEY": "<UNSPLASH_ACCESS_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"unsplash-server-hanoak": {
"command": "npx",
"args": [
"-y",
"@hanoak/unsplash-mcp-server"
],
"env": {
"UNSPLASH_ACCESS_KEY": "<UNSPLASH_ACCESS_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"unsplash-server-hanoak": {
"command": "npx",
"args": [
"-y",
"@hanoak/unsplash-mcp-server"
],
"env": {
"UNSPLASH_ACCESS_KEY": "<UNSPLASH_ACCESS_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"unsplash-server-hanoak": {
"command": "npx",
"args": [
"-y",
"@hanoak/unsplash-mcp-server"
],
"env": {
"UNSPLASH_ACCESS_KEY": "<UNSPLASH_ACCESS_KEY>"
}
}
}
}Environment variables
UNSPLASH_ACCESS_KEY
Replace the placeholders with your own credentials and keep them out of version control.