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
Search photos and video moments by visual meaning, people, dates, and folders across local libraries, Apple Photos, and OneDrive. Manage collections, groups, favorites, people, and duplicate review. Synced metadata remains searchable while the desktop is offline; local and Apple Photos media access needs the owning device online with remote access enabled. OneDrive media can be accessed directly from the cloud. OAuth or Bearer API keys. Paid Cloud Access required; hosted visual search uses prepaid credits. Text-in-image search is semantic matching, not guaranteed exact OCR. Setup: https://organizewith.ai/en/guides/connect-ai-assistants
Persistent memory, hybrid search and a goal graph for AI agents, over stdio or remote HTTP.
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Image and video AI tools and your own pipelines, run from any AI assistant.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI assistants to query and export from the macOS Apple Photos library using natural language, backed by osxphotos.21959 npm43MIT

CoreViz MCPofficial
AlicenseNot gradedqualityDmaintenanceExposes a visual library with semantic search, tagging, editing, and management of photos as tools for AI agents like Claude Code.13 npm49MIT- 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.1337 npm1MIT