Flickr Mcp Server

by soctib

382 downloads
Not rated
GitHub

About

An MCP server that lets AI assistants see, describe, tag, and manage photos on your Flickr account. Browse photos and albums, draft titles/descriptions/tags, check stats, discover and submit to groups, read and post comments, and keep local notes — all through the Model Context P

Details

Author
soctib
Downloads
382
Categories
Other

- View and filter recent photo uploads
- Browse and manage albums and group pools
- Update photo titles, descriptions, and tags
- Retrieve per-photo and account-wide stats and activity
- Post and read comments on photos
- Store local notes in SQLite (never sent to Flickr)
- Search groups by topic and submit photos to pools

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Flickr Mcp Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Requires Node.js 18+ and a free Flickr API key. Clone the repo, run npm install && npm build, then authorize via npm run setup-auth. Configure your MCP client (e.g., Claude Desktop) by adding a flickr server entry with the absolute path to dist/index.js and environment variables FLICKR_CONSUMER_KEY, FLICKR_CONSUMER_SECRET, FLICKR_OAUTH_TOKEN, and FLICKR_OAUTH_TOKEN_SECRET.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "flickr mcp server": {
            "flickr": {
                "command": "node",
                "args": [
                    "/absolute/path/to/flickr-mcp-server/dist/index.js"
                ],
                "env": {
                    "FLICKR_CONSUMER_KEY": "your_key",
                    "FLICKR_CONSUMER_SECRET": "your_secret",
                    "FLICKR_OAUTH_TOKEN": "your_token",
                    "FLICKR_OAUTH_TOKEN_SECRET": "your_token_secret"
                }
            }
        }
    }
}

McpServers

{
    "flickr": {
        "command": "node",
        "args": [
            "/absolute/path/to/flickr-mcp-server/dist/index.js"
        ],
        "env": {
            "FLICKR_CONSUMER_KEY": "your_key",
            "FLICKR_CONSUMER_SECRET": "your_secret",
            "FLICKR_OAUTH_TOKEN": "your_token",
            "FLICKR_OAUTH_TOKEN_SECRET": "your_token_secret"
        }
    }
}

Flickr MCP Server

An MCP server that lets AI assistants see, describe, tag, and manage photos on your Flickr account. Browse photos and albums, draft titles/descriptions/tags, check stats, discover and submit to groups, read and post comments, and keep local notes — all through the Model Context Protocol.

Prerequisites

- Node.js 18+
- Flickr API key (free at flickr.com/services/apps/create/)
- An MCP-compatible client (Claude Desktop, Claude Code, etc.)

Setup

1. Install and build

git clone https://github.com/soctib/flickr-mcp-server.git
cd flickr-mcp-server
npm install
npm run build

2. Get Flickr API credentials

1. Go to https://www.flickr.com/services/apps/create/
2. Create a new app to get your API Key (consumer key) and Secret (consumer secret)

3. Authorize with Flickr

npm run setup-auth

This will:
- Prompt for your API key and secret (if not already in .env)
- Open a browser window for you to authorize the app on Flickr
- Save OAuth tokens to .env automatically

Flickr OAuth tokens don't expire, so you only need to do this once.

4. Configure your MCP client

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "flickr": {
      "command": "node",
      "args": ["/absolute/path/to/flickr-mcp-server/dist/index.js"],
      "env": {
        "FLICKR_CONSUMER_KEY": "your_key",
        "FLICKR_CONSUMER_SECRET": "your_secret",
        "FLICKR_OAUTH_TOKEN": "your_token",
        "FLICKR_OAUTH_TOKEN_SECRET": "your_token_secret"
      }
    }
  }
}

Alternatively, leave credentials in the .env file and omit the env block.

Available Tools

Photos

| Tool | Description |
|------|-------------|
| flickr_get_recent_photos | List your recent uploads with metadata. Filter by visibility (public, private, friends, family). |
| flickr_get_favorites | List your faved photos with metadata and owner names. |
| flickr_view_photo | Fetch a photo's image and full metadata. Pass up to 10 IDs to view multiple photos at medium size. |
| flickr_view_thumbs | View multiple photos as 150px square thumbnails. Pass photo IDs, or an album ID to browse visually. |
| flickr_set_metadata | Update a photo's title and/or description. |
| flickr_set_tags | Replace all tags on a photo. Multi-word tags must be quoted. |

Albums

| Tool | Description |
|------|-------------|
| flickr_list_albums | List your albums (or another user's public albums) with photo counts and visibility labels. |
| flickr_get_album | Get photos in a specific album with full metadata. |

Groups

| Tool | Description |
|------|-------------|
| flickr_list_groups | List groups you're a member of, with submission limits. |
| flickr_search_groups | Search Flickr for groups by topic. |
| flickr_get_group_recents | Browse recent photos in a group's pool to evaluate activity and fit. |
| flickr_get_photo_contexts | Get all groups and albums photos belong to. Pass photo IDs, or an album ID to check every photo at once. |
| flickr_add_to_group | Submit a photo to a group pool. Blocks private photos from being submitted. |
| flickr_remove_from_group | Remove a photo from a group pool. |

Stats & Comments

| Tool | Description |
|------|-------------|
| flickr_get_activity | Daily activity summary: total views across your account plus which photos got views, faves, and comments. |
| flickr_get_stats | View your most popular photos by views/comments/favorites, or daily stats for a specific photo (last 28 days). |
| flickr_get_comments | Read all comments on a photo. |
| flickr_add_comment | Post a comment on any photo. |

Local Notes

Notes are stored in a local SQLite database (notes.db) and never sent to Flickr. Use them for reminders, ideas, group submission plans, or any personal annotations.

| Tool | Description |
|------|-------------|
| flickr_add_note | Add a note to a photo, album, or group. |
| flickr_get_notes | Get all notes for a specific photo, album, or group. |
| flickr_delete_note | Delete a note by ID. |
| flickr_search_notes | Search all notes by text content. |

Troubleshooting

- "OAuth signature invalid" — Re-run npm run setup-auth to refresh tokens.
- "Authentication failed" — Check that all 4 credentials in .env are correct.
- Image not displaying — The server caps images at ~700KB. Very large photos fall back to text-only with a Flickr URL.
- Stats returning emptyphoto_daily mode only covers the last 28 days (Flickr limitation). Use popular mode for all-time totals.
- "Not a member" when adding to group — You must join the group on Flickr's website first.
- better-sqlite3 version mismatch — If the server crashes on startup with a NODE_MODULE_VERSION error, run npm rebuild better-sqlite3 using the same Node version that runs the server.

Development

npm run build          # Compile TypeScript
npm start              # Run the server (stdio)
npm run setup-auth     # Re-run OAuth setup

Test with MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Disclaimer

This project was vibecoded with Claude. It works, it's tested, but set your expectations accordingly.

License

MIT

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.