flickr-mcp

flickr-mcp

Enables Claude to browse your Flickr photostream, retrieve direct image URLs, upload photos, and manage albums via the Model Context Protocol.

Category
Visit Server

README

Flickr MCP

English | 繁體中文

Give Claude direct access to your Flickr — browse your photostream, pull direct image URLs for embedding, upload, and manage albums. A thin Model Context Protocol wrapper around Flickr's official API (OAuth 1.0a signed, read + write).

Status: 🟢 read path verified (6 read tools green against a real ~1500-photo account). Write tools (upload / albums) are code-complete but not yet live-tested — see Notes.

Tools

Read

  • whoami — verify auth succeeded (returns the logged-in user id / name)
  • list_albums — list your albums (photosets)
  • list_album_photos — list photos in an album (each with a ready-to-use 1024px URL)
  • search_photos — search (defaults to your own photos only)
  • get_photo_info — full metadata for one photo (title / description / tags / taken date / visibility / page URL)
  • get_photo_sizes — every available size with its direct source URL (the reliable source for embed URLs)

Write

  • upload_photo — upload a local image (private by default, nothing goes public by accident)
  • create_album — create an album (Flickr requires an existing photo as the cover)
  • add_photo_to_album — add a photo to an album
  • set_photo_meta — update a photo's title / description

Install

git clone https://github.com/vulture-s/flickr-mcp.git
cd flickr-mcp
python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Get credentials (four strings)

  1. Create an app at https://www.flickr.com/services/apps/create/ (non-commercial is fine) and copy its Key and Secret.
  2. Exchange them for an access token:
    export FLICKR_API_KEY=your_key
    export FLICKR_API_SECRET=your_secret
    python authorize.py
    
    Open the printed URL → approve → paste the 9-digit code Flickr shows back into the terminal. The script prints the four FLICKR_* variables.

Requests write permission (covers read + upload + album management). The script never writes to disk — you paste the tokens into your config yourself.

Add to Claude Code

Use claude mcp add, or add to your MCP config JSON:

{
  "mcpServers": {
    "flickr": {
      "command": "python",
      "args": ["-m", "flickr_mcp.server"],
      "cwd": "/absolute/path/to/flickr-mcp",
      "env": {
        "FLICKR_API_KEY": "...",
        "FLICKR_API_SECRET": "...",
        "FLICKR_OAUTH_TOKEN": "...",
        "FLICKR_OAUTH_TOKEN_SECRET": "..."
      }
    }
  }
}

Once it's connected, ask Claude to run whoami to confirm auth works.

Typical embedding workflow

  1. list_albums → find the album_id you want
  2. list_album_photos or get_photo_sizes → get each photo's direct URL
  3. Drop the URLs into your own HTML/CSS (images live on Flickr, you control the look)

Notes

  • Upload defaults to private: upload_photo's is_public defaults to False; you must explicitly set it to go public.
  • Credentials never touch git: .env is gitignored; only .env.example is tracked. Prefer passing the four vars via your MCP config's env block.
  • write perms exclude deletion: Flickr's write scope covers upload and album management but not deleting photos — a test upload can only be removed from the Flickr website. Think before you upload.
  • The OAuth token is long-lived; you won't need to re-run authorize.py unless you revoke it in Flickr's account settings.

License

MIT — see LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured