CCPhoto
CCPhoto
Свяжите камеру вашего телефона с Claude Code по локальной сети.
CCPhoto — это MCP-сервер, который позволяет фотографировать на телефоне и отправлять снимки напрямую в Claude Code. Наведите телефон на плату, маркерную доску, этикетку — на что угодно — и Claude увидит это мгновенно. Устанавливать приложение не нужно: камера браузера вашего телефона сделает всё сама.
+----------+ WiFi +-----------+ MCP +-------------+
| Phone | photos, voice, | CCPhoto | image/text | Claude |
| Camera | mode switches | Server | data | Code |
| + Mic | <--------------- | (local) | <--------------- | |
+----------+ TTS, guidance +-----------+ send_to_phone +-------------+Быстрый старт
npx ccphoto --setup # One-time: register CCPhoto as an MCP serverЗатем в Claude Code просто скажите «сделай фото» — остальное Claude сделает сам.
Related MCP server: phone-mcp
Как это работает
Claude вызывает инструмент MCP
capture_photo.В терминале появляется QR-код.
Отсканируйте его телефоном — в браузере откроется страница камеры.
Сделайте фото — Claude получит изображение напрямую.
Устанавливать приложение не нужно. Доступ к встроенной камере телефона осуществляется через HTML-атрибут <input capture>.
Режим постоянной работы
Сервер запускается при первом вызове capture_photo и продолжает работать в течение всей сессии. Ваш телефон остаётся подключённым — повторно сканировать QR-код не нужно. Делайте сколько угодно фотографий и запрашивайте любую из них через Claude.
Уведомления о запросе фото
Если телефон уже подключён, а Claude снова вызывает capture_photo, телефон получает push-уведомление через SSE. Кнопка съёмки начинает пульсировать, сигнализируя, что Claude ждёт новое фото. Просто нажмите и снимайте.
Двунаправленный обмен сообщениями
Claude может отправлять контент на ваш телефон с помощью инструмента send_to_phone. Текст, Markdown и изображения появляются в сворачиваемой панели на телефоне. Это превращает телефон в справочный экран: Claude может показывать инструкции по подключению, схемы распиновки или фрагменты кода, пока вы работаете обеими руками.
Аннотации к фотографиям
После съёмки появляется экран аннотаций, где можно рисовать на изображении перед отправкой. Используйте цветные ручки (красную, синюю, зелёную, белую), чтобы обводить компоненты, рисовать стрелки или выделять важные области. Нажмите «Отправить», чтобы загрузить размеченное изображение, или «Пропустить», чтобы отправить исходное фото без аннотаций.
Видеоассистент в реальном времени
Запустите передачу видео с камеры телефона почти в реальном времени. Claude наблюдает за прямой трансляцией (один кадр каждые 3 секунды) и даёт инструкции в реальном времени — направьте камеру туда, куда просит Claude, и получайте указания на экране телефона.
Требуется HTTPS (для доступа к камере). В Chrome на Android один раз примите предупреждение о сертификате. Сейчас поддерживаются только Android/Chrome; поддержка iOS планируется.
Голосовое взаимодействие
Нажмите кнопку микрофона на телефоне, чтобы говорить с Claude. Речь распознаётся с помощью встроенного в браузер API распознавания речи и отправляется в виде текста. Claude может ответить голосовым сообщением, используя send_to_phone с параметром speak: true, — телефон озвучит ответ через синтез речи.
Это открывает возможность работы без рук: задайте вопрос, держа в руках паяльник, и услышьте ответ, не глядя на экран. Кнопка микрофона появляется только в браузерах с поддержкой распознавания речи (Chrome на Android).
Генеративный UI
Claude может создавать на вашем телефоне насыщенный контекстный UI на основе того, что видит. Наведите камеру на товар, деталь, рецепт или что угодно — Claude проанализирует объект и отправит на экран телефона настраиваемый интерактивный интерфейс.
12 типов ком понентов: Card, Text, Image, Metric, MetricGrid, Checklist, StepByStep, Alert, Table, Timer, Badge и Divider. Clude собирает их в контекстные макеты — карточку по уходу за растением с чек-листом полива, таблицу ком понентов сх емы с диаграммами распиновки или пошаговое руководство по ремонту с таймерами.
Используйте send_to_phone с параметром ui_spec, чтобы создать собственный интерфейс.
Установка
npx (рекомендуется, без установки)
npx ccphoto --setupГлобальная установка
npm install -g ccphoto
ccphoto --setupИз исходного кода
git clone https://github.com/stepankaiser/ccphoto.git
cd ccphoto
npm install
npm run build
node dist/index.js --setupЕсли вы предпочитаете зарегистрировать MCP-сервер вручную вместо использования --setup:
claude mcp add ccphoto -- npx ccphoto --mcpСправочник инструментов MCP
Инструмент | Описание | Параметры |
| Запускает сервер и отображает QR-код. Если телефо н уже подключён, он вместо этого получает push-уведомление. | -- |
| Блокирует выполнение, пока не будет загружено фто или не истечёт тайм-аут. Вызывайте сразу после |
|
| Возвращает последнее фто или конкретное фто по имени файла. |
|
| Выводит список всех сделанных фтографий с именами файлов, временными метками и размерами. | -- |
| Отправляет на экран телефона текст, изобраения или насыщенный генеативный UI. Телефо н становится справочным экраном для инструкций, диагрмм или распиновок. |
|
| Запускает прямой видеопоток с камеры телефона. Создаёт HTTPS-сертификат и возвращает QR-код. | -- |
| Получает последний кадр из прямого видеопотока с меткой времени актуальности. | -- |
Автономный режим CLI
CCPhoto также может работать автономно, без Claude Code:
npx ccphoto # Start with defaults
npx ccphoto --port 4000 --output-dir ./photos # Custom port and directoryQR-код выводится в терминал. Отсканируйте его, делайте фотографии, и они будут сохраняться на диск. Сервер продолжает работать, позволяя делать несколько снимков.
Параметры CLI
Параметр | Описание | По умолчанию |
| Регистрирует CCPhoto как MCP-сервер в Claude Code | -- |
| Запуск в режиме MCP-сервера (используется внутри Claude Code) | -- |
| Порт HTTP-сервера |
|
| Каталог для сохранения фотографий |
|
| Показать справку | -- |
Конфигурация
Переменная окружения | Описание | По умолчанию |
| Переопределяет каталог хранения фотографий по умолчанию |
|
Безопасность
Токен сессии — Для каждого сеанса работы сервера генерируется криптографически случайный 32-символьный шестнадцатеричный токен. Каждый запрос должен содержать этот токен.
Устойчивое к временным атакам сравнение — Для проверки токена используется
crypto.timingSafeEual, что предотвращает атаки по времени.Только локальная сеть — Сервер привязывается к IP-адресу вашей локальной сети. Никакие данные не покидаю т вашу сеть.
Без внешних сервисов — Фотографии передаются напрямую между вашим телефоном и сервером по HTTP в вашей локальной сети. Ничего не загружается в облако.
Устранение неполадок
Не удаётся определить IP-адрес локальной сети
Убедитесь, что ком пьютер подключён к Wi-Fi (в некоторых конфигурациях одного Ethernet недостаточно). CCPhoto нужен IP-адрес локальной сети, доступный с вашего телефона.
QR-код не сканируется
Попробуйте увеличить размер шрифта в терминале или уменьшить его ширину, чтобы QR-код отображался с разрешением, пригодным для сканирования. Вы также можете скопировать URL, напечатанный под QR-кодом, и ввести его вручную в браузере телефона.
Камера телефона не открывается
Для работы камеры в некоторых браузерах требуется HTTPS, но большинство мобильных браузеров разрешают её использование по обычному HTTP для адресов локальной сети. Если браузер блокирует доступ к камере, попробуйте Safari (iOS) или Chrome (Android).
Не удаётся загрузить фто
Убедитесь, что телефо н и ком пьютер находятся в одной сети Wi-Fi. Корпоративные сети с изоляцией клиентов могут блокировать трафик между устройствами. Попробуйте вместо этого личную точку доступа или дома шнюю сеть.
Разработка
npm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Watch mode (recompile on change)
npm test # Run the test suite (94 tests)Для тестов используется встроенный в Node.js тестовый раннер; для выполнения TypeScript требуется dev-зависимость tsx.
Структура проекта:
src/
index.ts CLI entry point and arg parsing
mcp.ts MCP server with tool definitions
server.ts HTTP server, SSE, upload handling
mobile-page.ts Self-contained HTML for the phone camera page
storage.ts Photo file management
network.ts Local IP detection
token.ts Session token generation and validation
types.ts Shared TypeScript interfacesДорожная карта
Реальный домен + сертификаты Let's Encrypt — Ипользование зарегистрированного домена с действительными сертификатами для по лного отсутствия предупреждений браузера на любых устройствах, включая Safari на iOS.
Поддержка прямого видео на iOS — Сейчас прямой видеопоток работает на Android/Chrome. Для Safari на iOS требуются доверенные сертификаты.
AR-наложения на видеопоток — Рисование аннотаций прямо на живом видео с камеры в реальном времени.
Поддержка нескольких камер — Одновременное подключение нескольких телефонов для разных углов обзора.
WebRTC-трансляция — Замена HTTP-опроса кадров на WebRTC, когда снизится задержка обработки изобраений в Claude.
Участие в разработке
Вклад приветствуется.
Сделайте форк репозитория
Создайте ветку функ ции (
git checkout -b my-feature)Внесите изменения
Запустите
npm test, чтобы убедиться, что ни чего не сломаноСохраните изменения (
git commit -m "Add my feature")Отправьте изменения в свою ветку (
git push origin my-feature)Откройте pull request
Сообщая об ошибке, пожалуйста, укажите версию Node.js, операционную систему и шаги для воспроизведения пробле мы.
Лицензия
This server cannot be deployed
Maintenance
Related MCP Connectors
Turns a phone into a camera+Bluetooth remote so AI assistants can see and control any PC.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
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.
Run Instagram automation on your own real phones from Claude, Cursor or any AI agent.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Claude Code sessions on a PC to access iPhone data such as photos, video, location, contacts, calendar, and clipboard over Tailscale, and supports plugin-based browser automations for logged-in services.MIT
- AlicenseNot gradedqualityBmaintenanceEnables desktop agents such as Claude Code and Codex to control an Android phone as a long-lived action endpoint, pairing over outbound WebSocket and exposing phone capabilities as MCP tools with local pause and revocation.MIT
- AlicenseNot gradedqualityBmaintenanceEnables voice-driven control of coding agents via Claude on your phone, allowing status checks, stand-ups, sending prompts, and receiving push notifications when agents finish or need decisions.MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude or any MCP agent to see and operate a real Android phone over adb, with fast screen reads, tap/type/swipe actions, app launching, deep links, and brand-aware setup guidance, all without admin rights or an Android SDK.MIT