Google Photos MCP Server
MCP-сервер Google Photos
Сервер протокола контекста модели (MCP) для интеграции с Google Photos, позволяющий Claude, Gemini и другим ИИ-ассистентам читать, записывать и выбирать фотографии из вашей библиотеки Google Photos.
✅ Поддержка Picker API (март 2025 г. и позже)
Этот сервер реализует Google Photos Picker API, обеспечивая полный доступ к библиотеке даже после прекращения поддержки некоторых областей (scopes) Library API 31 марта 2025 года.
Возможность | Статус | API |
Просмотр всей библиотеки фото | ✅ | Picker API |
Поиск фото по тексту/дате/категории | ✅ | Library API |
Создание альбомов и загрузка фото | ✅ | Library API |
Доступ к контенту, созданному приложением | ✅ | Library API |
Как работает Picker API
Вызовите
create_picker_session— вернется URL, который пользователь откроет в браузереПользователь выбирает фотографии из своей полной библиотеки
Вызовите
poll_picker_session— когдаmediaItemsSetстанет true, выбранные фотографии будут возвращены
Related MCP server: CoreViz MCP
🛡️ Уведомление о безопасности: CORS удален
Промежуточное ПО CORS было удалено в целях безопасности (предотвращает drive-by атаки на localhost).
✅ Режим STDIO (Claude Desktop): работает в обычном режиме
✅ Streamable HTTP (Cursor, сервер-сервер): работает в обычном режиме
❌ Браузерный AJAX: не поддерживается (преднамеренно)
Функции
Операции чтения
Поиск фото по тексту, дате, местоположению, категории, избранному
Фильтрация по типу медиа (фото/видео), диапазонам дат, статусу архивации
Получение сведений о фото, включая изображения в формате base64
Список альбомов и их содержимого
Описание доступных возможностей фильтрации
Операции записи
Создание альбомов и загрузка фото
Пакетная загрузка с помощью
create_album_with_media(до 50 файлов)Добавление текстовых и гео-данных в альбомы
Установка обложек альбомов
Операции Picker
Создание сессий выбора для доступа к полной библиотеке
Опрос сессий и получение выбранных медиа-элементов
Инфраструктура
⚡ Потоковый HTTP-транспорт (спецификация MCP 2025-06-18)
🔗 HTTPS Keep-Alive с пулом соединений
🔒 Хранение токенов в связке ключей ОС
📊 Управление квотами с автоматическим отслеживанием
🔄 Автоматическое обновление токенов
Предварительные требования
Node.js 22.22+
Проект Google Cloud с включенным Photos Library API
Учетные данные OAuth 2.0 (тип «Веб-приложение»)
Настройка
1. Настройка Google Cloud
Перейдите в Google Cloud Console
Создайте новый проект (или выберите существующий)
Включите Photos Library API
Создайте учетные данные OAuth 2.0 (Веб-приложение)
Добавьте
http://localhost:3000/auth/callbackв качестве разрешенного URI перенаправленияЗапишите свой Client ID и Client Secret
2. Установка
git clone https://github.com/savethepolarbears/google-photos-mcp.git
cd google-photos-mcp
npm install3. Конфигурация
cp .env.example .envОтредактируйте .env:
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_REDIRECT_URI=http://localhost:3000/auth/callback
PORT=3000
NODE_ENV=development4. Сборка и запуск
npm run build # Compile TypeScript
npm start # HTTP mode (for auth & Cursor)
npm run stdio # STDIO mode (for Claude Desktop)
npm run dev # Dev mode with live reload5. Аутентификация
Запустите в режиме HTTP:
npm startПосетите
http://localhost:3000/authв браузереЗавершите процесс Google OAuth
Токены автоматически сохраняются в связке ключей ОС
Примечание: Аутентификация должна быть сначала завершена в режиме HTTP. После этого переключитесь в режим STDIO для Claude Desktop.
Динамический порт
PORT=3001 npm start
# Also update GOOGLE_REDIRECT_URI in .env to matchКонфигурация клиента
Claude Desktop (STDIO)
{
"mcpServers": {
"google-photos": {
"command": "node",
"args": ["/path/to/google-photos-mcp/dist/index.js", "--stdio"],
"env": {
"GOOGLE_CLIENT_ID": "your_client_id",
"GOOGLE_CLIENT_SECRET": "your_client_secret",
"GOOGLE_REDIRECT_URI": "http://localhost:3000/auth/callback"
}
}
}
}Cursor IDE
STDIO (рекомендуется):
Тип: Command
Команда:
node /path/to/google-photos-mcp/dist/index.js --stdio
HTTP:
Тип: URL
URL:
http://localhost:3000/mcp
Smithery
# Claude Desktop
npx -y @smithery/cli install google-photos-mcp --client claude
# Cursor IDE
npx -y @smithery/cli install google-photos-mcp --client cursorMCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js # HTTP
npx @modelcontextprotocol/inspector node dist/index.js --stdio # STDIOДоступные инструменты (19)
Поиск и просмотр
Инструмент | Описание |
| Текстовый поиск фото |
| Поиск по названию места |
| Фильтр по датам, категориям, типу медиа, избранному, архиву |
| Получение деталей фото (опционально base64) |
| Список всех альбомов |
| Получение деталей альбома |
| Список фото в альбоме |
| Список всех медиа-элементов |
| JSON-справочник всех опций фильтрации |
Запись и управление
Инструмент | Описание |
| Создание нового альбома |
| Загрузка локального файла |
| Добавление существующих элементов в альбом (макс. 50) |
| Создание альбома + загрузка файлов за один вызов (макс. 50) |
| Добавление текстовых или гео-данных |
| Установка обложки альбома |
Picker API
Инструмент | Описание |
| Запуск сессии Picker для доступа к полной библиотеке |
| Проверка статуса сессии и получение выбранных фото |
Аутентификация
Инструмент | Описание |
| Проверка статуса аутентификации |
| Запуск процесса OAuth через временный локальный сервер |
Примеры запросов
"Show me photos from my trip to Paris"
"Find photos of my dog from 2024"
"List my photo albums"
"Upload these vacation photos to a new album called 'Summer 2025'"
"Search for landscape photos from last year, ordered newest first"
"Let me pick some photos from my library" (triggers Picker API)Данные о местоположении
Данные о местоположении являются приблизительными, извлекаются из описаний фотографий с помощью геокодирования OpenStreetMap/Nominatim. При наличии включают широту/долготу, город, регион, страну.
Развертывание / релиз
Этот проект является сервером протокола контекста модели (MCP), предназначенным для локального запуска вместе с ИИ-клиентами, такими как Claude Desktop или Cursor. Удаленное развертывание или процесс релиза не требуются, кроме поддержания актуальности вашей локальной копии или установки NPM.
Устранение неполадок
Версия Node: Убедитесь, что вы используете Node.js 22.22+, так как более старые версии не поддерживаются.
Аутентификация: Если вы столкнулись с ошибками
GOOGLE_CLIENT_ID is not setили аутентификация не удалась, проверьте наличие файла.envв корневом каталоге и правильность учетных данных Google Cloud. Не забудьте запуститьnpm start(режим HTTP) для аутентификации перед переключением в режим STDIO.Проблемы с квотами: Применяются ограничения API Google Photos. Убедитесь, что вы не превышаете лимит в 10 000 запросов в день. Сервер отслеживает это через
quotaManager.Ошибки CORS: Сервер намеренно отключает CORS для предотвращения drive-by атак. Не пытайтесь вызывать сервер напрямую из AJAX-запросов браузера.
Разработка
Структура проекта
src/
├── index.ts # HTTP entry point
├── dxt-server.ts # STDIO/DXT entry point
├── mcp/core.ts # All tool handlers (19 tools)
├── api/
│ ├── client.ts # REST client (Library + Picker)
│ ├── photos.ts # Facade module (re-exports)
│ ├── types.ts # TypeScript interfaces
│ └── repositories/ # Low-level API calls
├── auth/ # OAuth, tokens, keychain
├── schemas/ # Zod validation schemas
├── utils/ # Config, logging, quota, retry
└── views/ # HTML templatesТестирование
npm test # All tests (Vitest)
npm run test:watch # Interactive TDD
npm run test:coverage # Coverage report
npm run test:security # Security suite onlyПроверки качества
Все три должны быть пройдены перед слиянием:
npx tsc --noEmit # Type check
npm run lint # ESLint
npm test # TestsЛицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Holiday photo MCP server: list and fetch personal holiday photos inline in Claude chat.
Geolocate Me turns your phone into location context for any AI assistant. Install the iOS or Android app, connect once with OAuth, and your GPS is queryable in natural language. Ask where you are, where you parked, where you were yesterday at 3pm, or how long you were at the office — the assistant calls the tool and answers with a real street address. https://geolocateme.app
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI assistants to query and export from the macOS Apple Photos library using natural language, backed by osxphotos.21154 npm22MIT

CoreViz MCPofficial
AlicenseNot gradedqualityDmaintenanceExposes a visual library with semantic search, tagging, editing, and management of photos as tools for AI agents like Claude Code.8 npm48MIT- FlicenseNot gradedqualityBmaintenanceEnables users to search and retrieve photos from a self-hosted Immich photo library via natural language, supporting CLIP-based semantic search, metadata filtering, album browsing, and share link creation.-
- AlicenseAqualityAmaintenanceEnables AI agents to search, inspect, organize, and export photos from a local Apple Photos library using natural language, including scene labels, text, faces, places, and albums.1331 npmMIT