Flickr照片管理服务器

一个通过自然语言连接AI助手与Flickr API的MCP服务器,用于管理相册、标记照片和组织Flickr图库。

  • by chochinlu
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 chochinlu/flickr-mcp-server

使用说明

Flickr MCP服务器

将人工智能助手连接到Flickr API的MCP(模型上下文协议)服务器。通过自然语言管理相册、标记照片和组织Flickr库。

特性

27工具 涵盖照片、相册、群组和社交管理:

照片工具

工具 描述 读/写
flickr_search_photos 按关键字、标签、日期范围搜索照片 阅读
flickr_get_photo_info 获取详细的照片元数据 阅读
flickr_get_photo_sizes 获取所有可用尺寸的图像URL 阅读
flickr_get_exif 获取照片的相机和EXIF元数据 阅读
flickr_get_explore 从Flickr获取照片探索(有趣) 阅读
flickr_list_my_photos 列出您自己的照片(包括私人照片) 阅读
flickr_get_not_in_set 列出不在任何相册中的照片 阅读
flickr_set_photo_tags 替换照片上的所有标签 写入
flickr_add_photo_tags 为照片添加标签 写
flickr_set_photo_meta 更新照片标题和描述 写
flickr_set_photo_license 设置照片许可证(保留所有权利,CC等) 写入
flickr_set_photo_perms 设置照片可见性和权限 写入
flickr_add_favorite 将照片添加到收藏夹(如) 写
flickr_remove_favorite 从收藏夹中删除照片(与其他照片不同) 写
flickr_add_comment 在照片上发表评论 写

相册工具

工具 描述 读/写
flickr_list_albums 列出所有相册 阅读
flickr_get_album_photos 在相册中列出照片 阅读
flickr_create_album 创建新相册 编写
flickr_add_photo_to_album 将照片添加到相册 写入
flickr_remove_photo_from_album 从相册中删除照片 写入
flickr_edit_album_meta 更新相册标题和描述 编写

组工具

工具 描述 读/写
flickr_list_my_groups 列出您已加入的所有组 阅读
flickr_search_groups 按关键字搜索组 阅读
flickr_add_photo_to_group 向群池提交照片 撰写
flickr_leave_group 离开群组 删除

联系工具

工具 描述 读/写
flickr_follow_user 关注用户(添加为联系人) 写
flickr_unfollow_user 取消关注用户(删除联系人) 写入

所有列表/搜索工具返回 缩略图和中图片URL 用于人工智能驱动的视觉分析。

先决条件

设置

1.克隆并安装

git clone https://github.com/chochinlu/flickr-mcp-server.git
cd flickr-mcp-server
npm install

2.获取Flickr API密钥

  1. 首选 Flickr应用花园
  2. 创建一个新应用程序来获取您的 API密钥 和 API秘密
  3. 创建一个 .env 文件:
cp .env.example .env
  1. 填写 FLICKR_API_KEY 和 FLICKR_API_SECRET 在 .env

3.使用OAuth进行身份验证

运行交互式安装脚本:

npm run oauth-setup

这将:

  1. 生成授权URL
  2. 在浏览器中打开Flickr以授予访问权限
  3. 要求您输入验证码
  4. 将OAuth令牌保存到 .env

Flickr OAuth令牌 永不过期 --你只需要做一次。

4.建造

npm run build

5.配置您的MCP客户端

克劳德代码

添加到您的项目 .mcp.json:

{
  "mcpServers": {
    "flickr": {
      "command": "node",
      "args": ["/absolute/path/to/flickr-mcp-server/dist/index.js"]
    }
  }
}

克劳德桌面版

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "flickr": {
      "command": "node",
      "args": ["/absolute/path/to/flickr-mcp-server/dist/index.js"]
    }
  }
}

用法示例

连接后,您可以向您的AI助手询问以下问题:

  • “列出我的所有Flickr相册”
  • “显示不在任何相册中的照片”
  • “搜索标记为的照片 travel"
  • “添加标签 tokyo, japan, 2024 转到照片12345678“
  • “创建一个名为“东京之旅”的新相册,封面为照片12345678”
  • “将这些照片移至东京之旅相册”
  • “列出我加入的所有组”
  • “将此照片提交给街头摄影组”
  • “保留所有照片少于100张的非活动组”
  • “喜欢这张照片,跟着摄影师”
  • “将此照片添加到我的收藏夹”

项目结构

src/
  index.ts              # MCP server entry point (stdio transport)
  config.ts             # Environment variable validation (Zod)
  flickr-client.ts      # Flickr API client with rate limiting
  tools/
    photos.ts           # Photo management tools (incl. favorites)
    albums.ts           # Album management tools
    groups.ts           # Group management tools
    contacts.ts         # Contact/follow tools
  auth/
    oauth-setup.ts      # One-time OAuth setup CLI
scripts/
  batch-set-license.ts  # Batch update all photos to a specified license

API费率限制

  • Flickr允许 3600次请求/小时 (约1个要求/秒)
  • 客户端强制要求请求之间的最小间隔为1秒
  • 列表端点返回最多为 每页500条 支持分页

许可证

麻省理工学院


Flickr MCP Server(正体中文)

一个MCP(Model Context Protocol)服务器,让AI助手能透过Flickr API管理你的相簿、标记照片、整理照片库。

功能

26个工具,涵盖照片、相簿、群组与社交管理:

照片工具

工具 功能 读/写
flickr_search_photos 依关键字、标签、日期范围搜寻照片 读
flickr_get_photo_info 取得照片详细信息 读
flickr_get_photo_sizes 取得照片各尺寸的图片URL 读
flickr_get_exif 取得照片的相机与EXIF信息 读
flickr_get_explore 取得Flickr Explore精选照片 读
flickr_list_my_photos 列出自己的照片(含私人照片) 读
flickr_get_not_in_set 列出未归入任何相簿的照片 读
flickr_set_photo_tags 设定照片标签(覆盖原有标签) 写
flickr_add_photo_tags 新增标签(不覆盖) 写
flickr_set_photo_meta 更新照片标题与描述 写
flickr_set_photo_license 设定照片授权条款(All Rights Reserved、CC等) 写
flickr_set_photo_perms 设定照片可见性与权限(公开/私人) 写
flickr_add_favorite 将照片加入最爱(按赞) 写
flickr_remove_favorite 从最爱移除照片(取消按赞) 写
flickr_add_comment 在照片下发布留言 写

相簿工具

工具 功能 读/写
flickr_list_albums 列出所有相簿 读
flickr_get_album_photos 列出相簿内照片 读
flickr_create_album 建立新相簿 写
flickr_add_photo_to_album 将照片加入相簿 写
flickr_remove_photo_from_album 从相簿移除照片 写
flickr_edit_album_meta 修改相簿标题与描述 写

群組工具

工具 功能 读/写
flickr_list_my_groups 列出已加入的所有群组 读
flickr_search_groups 依关键字搜寻群组 读
flickr_add_photo_to_group 将照片投稿到群组 写
flickr_leave_group 退出群组 删除

联络人工具

工具 功能 读/写
flickr_follow_user 追踪使用者(加入联络人) 写
flickr_unfollow_user 取消追踪(移除联络人) 写

所有列表/搜寻工具都会回传缩图与中等尺寸图片URL,方便AI进行视觉分析。

前置需求

  • Node.js>=18
  • Flickr帐号
  • Flickr API密钥(在此申请)

安装设定

1.下载并安装

git clone https://github.com/chochinlu/flickr-mcp-server.git
cd flickr-mcp-server
npm install

2.取得Flickr API密钥

  1. 前往 Flickr应用花园 建立应用程序
  2. 取得 API密钥 与 API秘密
  3. 建立 .env 档案:
cp .env.example .env
  1. 在 .env 中填入 FLICKR_API_KEY 和 FLICKR_API_SECRET

3. OAuth认证

执行互动式设定脚本:

npm run oauth-setup

脚本会引导你:

  1. 产生授权URL
  2. 在浏览器中开启Flickr进行授权
  3. 输入页面上显示的验证码
  4. 自动将OAuth token存入 .env

Flickr 的 OAuth token 永不过期,只需设定一次。

4.编译

npm run build

5.设定MCP客户端

克劳德代码

在项目的 .mcp.json 中加入:

{
  "mcpServers": {
    "flickr": {
      "command": "node",
      "args": ["/absolute/path/to/flickr-mcp-server/dist/index.js"]
    }
  }
}

克劳德桌面版

在 claude_desktop_config.json 中加入:

{
  "mcpServers": {
    "flickr": {
      "command": "node",
      "args": ["/absolute/path/to/flickr-mcp-server/dist/index.js"]
    }
  }
}

使用示例

联机后,你可以用自然语言请AI助手帮你:

  • 「列出我所有的 Flickr 相簿」
  • 「找出没有归入任何相簿的照片」
  • 「搜寻标记了 travel 的照片」
  • 「帮照片12345678加上 tokyo、japan、2024 标签」
  • 「建立一个叫『东京之旅』的新相簿,用照片12345678当封面」
  • 「把这些照片移到东京之旅相簿」
  • 「列出我加入的所有群組」
  • 「把这张照片投稿到街拍群组」
  • 「退出所有照片数不到100的不活跃群组」
  • 「帮我对这张照片按赞,然后追踪这个摄影师」
  • 「把这张照片加入我的最爱」

API 限制

  • Flickr允许每小时 3,600次请求(约每秒1次)
  • Client内置1秒最小间隔的速率限制
  • 列表类API每页最多 500笔,支持分页