HybridS3 — MCP-сервер для Claude Code: S3-хранилище для агентов
Самохостящееся объектное хранилище с S3-совместимым API, обычным HTTP и MCP-интерфейсом. Пригодится, когда агенту нужно читать и писать файлы на своём сервере.
Открыть на GitHubЧто делает HybridS3
HybridS3 — это контейнер с psyb0t/hybrids3, который отдаёт три интерфейса к одним и тем же данным. boto3 и AWS SDK работают как с обычным S3, curl ходит по HTTP, а ИИ-агенты подключаются через MCP и получают описания инструментов. Метаданные лежат в SQLite, сами объекты — плоскими файлами на диске.
Бакеты задаются в config.yaml, а не создаются через API. Что прописали, то и существует: конфиг версионируется, лишние бакеты не накапливаются. У каждого бакета свои ключи, флаг public, ttl и max_file_size. Есть master_key — он работает во всех бакетах и только он умеет перечислять их все.
Контейнер ждёт конфиг в /config/config.yaml, данные в /data и слушает порт 8080, процесс идёт от UID 1000. Если ставите за nginx на подпуть, задайте path_prefix — иначе подпись AWS Sig V4 не сойдётся, потому что прокси срежет префикс, а сервер увидит другой путь. Без этого параметра сервер отдаёт маршруты от корня.
Какие задачи решает
- дать агенту хранилище файлов без облачного аккаунта
- поднять S3-совместимый бэкенд для
boto3за пару минут - раздавать загруженные файлы публично, а остальное держать под ключом
- настроить автоудаление временных объектов через
ttl - ограничить размер загрузки на бакет и не ловить гигабайтные файлы
Примеры запросов агенту
- Подключись к MCP-серверу HybridS3 и покажи, какие инструменты он даёт
- Загрузи
report.pdfв бакетuploadsчерез HybridS3 - Выведи список объектов в бакете
permanent
Как установить HybridS3
Установка
Команды запуска нет в реестре MCP — смотрите README репозитория
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о HybridS3
Как установить HybridS3 в Claude Code?
Сначала скачайте пример конфига: wget -O config.yaml https://raw.githubusercontent.com/psyb0t/docker-hybrids3/master/config.example.yaml, отредактируйте ключи и бакеты, затем запустите контейнер командой docker run -d --name hybrids3 -p 8080:8080 -v ./config.yaml:/config/config.yaml:ro -v hybrids3-data:/data psyb0t/hybrids3. Проверка — curl http://localhost:8080/health.
Что делает HybridS3?
Хранит объекты и отдаёт их по трём интерфейсам: S3-совместимому, обычному HTTP и MCP. Агент через MCP получает структурированные инструменты для работы с файлами.
Чем HybridS3 отличается от обычного S3-хранилища?
Бакеты описаны в YAML-конфиге, создать или удалить их через API нельзя. TTL-истечение встроено в сервер, отдельные lifecycle-политики и cron не нужны.