RESTHeart — Agent-Ready Backend для MongoDB
RESTHeart — это готовый к работе с AI-агентами бэкенд для MongoDB. Он предоставляет нативный MCP-сервер (Model Context Protocol), а также полноценные REST, GraphQL и WebSocket API. Благодаря этому AI-агенты (Claude, Claude Code, Cursor, VS Code) и разработчики могут читать и писать данные в MongoDB без написания кастомного интеграционного кода.
Возможности
- MCP-сервер — нативный протокол для AI-клиентов. Подключение к MongoDB в одну строку конфигурации.
- REST API — полный CRUD, агрегации, фильтрация, сортировка, пагинация.
- GraphQL — схемо-ориентированное отображение на MongoDB-запросы.
- WebSocket — real-time стримы изменений и синхронизация данных.
- SSE (Server-Sent Events) — для живых дашбордов, IoT-потоков и событий.
- Аутентификация и авторизация — JWT, OAuth2, LDAP, пользователи на основе MongoDB, ACL-правила.
- Система плагинов — расширение на Java, Kotlin, JavaScript или TypeScript для кастомной бизнес-логики.
Быстрый старт
Запуск через Docker Compose
curl https://raw.githubusercontent.com/SoftInstigate/restheart/master/docker-compose.yml \
--output docker-compose.yml && docker compose up --attach restheart
Проверка:
curl http://localhost:8080/ping
Учётные данные по умолчанию: admin / secret (обязательно смените в production).
Больше вариантов запуска: документация.
Подключение AI-агентов через MCP
RESTHeart поставляется с Sophia — нативным MCP-сервером. Любой MCP-совместимый клиент может подключиться напрямую.
Публичные demo-эндпоинты (без аутентификации):
https://sophia-api.restheart.com/mcp/restheart/ — база знаний документации RESTHeart
https://sophia-api.restheart.com/mcp/cloud/ — база знаний RESTHeart Cloud
Подключение Claude Code
claude mcp add --transport http sophia-restheart https://sophia-api.restheart.com/mcp/restheart
claude mcp add --transport http sophia-cloud https://sophia-api.restheart.com/mcp/cloud
Подключение Claude Desktop
Настройки → Connectors → Add custom connector → вставьте URL контекста.
Подключение Streamable HTTP клиентов (добавить в MCP settings)
{
"sophia": {
"type": "http",
"url": "https://sophia-api.restheart.com/mcp/restheart/"
}
}
Подключение stdio клиентов (VS Code, Zed — требуется Node.js 18+)
{
"sophia": {
"command": "npx",
"args": ["mcp-remote", "https://sophia-api.restheart.com/mcp/restheart/"]
}
}
Для приватных инстансов замените URL на свой и добавьте аутентификацию. Подробнее: документация MCP.
Пример: запрос к MongoDB через HTTP
const url = encodeURI('https://demo.restheart.org/messages?filter={"from":"Bob"}&pagesize=1');
fetch(url)
.then(response => response.json())
.then(json => console.log(JSON.stringify(json, null, 2)));
Никаких Express-роутов, Mongoose-схем или middleware.
Сценарии использования
- Бэкенд для AI-агентов — production-grade MongoDB через MCP без кастомного кода.
- API без шаблонного кода — пропустите CRUD, фокусируйтесь на бизнес-логике.
- Мобильные и веб-бэкенды — REST/GraphQL API мгновенно.
- Real-time приложения — WebSocket и SSE для чатов, уведомлений, дашбордов.
- IoT-бэкенды — сбор данных с устройств через MQTT (скоро).
- Замена MongoDB Data API — self-hosted альтернатива устаревшему Atlas Data API (гайд по миграции).
- Модернизация легаси — добавление современных API к существующим MongoDB.
- PostgreSQL через MongoDB API — используйте FerretDB (туториал).
Расширение через плагины
Пишите кастомную логику только когда нужно. RESTHeart берёт на себя всё остальное.
Java-плагин
@RegisterPlugin(name = "greetings")
public class GreeterService implements JsonService {
@Override
public void handle(JsonRequest req, JsonResponse res) {
res.setContent(object()
.put("message", "Hello World!")
.put("timestamp", Instant.now()));
}
}
JavaScript-плагин
export const options = {
name: "greetings",
uri: "/greetings"
}
export function handle(request, response) {
response.setContent(JSON.stringify({
message: 'Hello World!',
timestamp: new Date().toISOString()
}));
response.setContentTypeAsJson();
}
Типы плагинов:
- Services — кастомные REST-эндпоинты
- Interceptors — модификация запросов и ответов, валидация
- Initializers — код при старте
- Providers — dependency injection
Подробнее: документация по плагинам.
Для быстрой разработки используйте restheart-cli — scaffolding, тестирование, hot-reload.
Деплой
Docker
docker pull softinstigate/restheart:latest
docker run -p 8080:8080 \
-v ./restheart.yml:/opt/restheart/etc/restheart.yml \
softinstigate/restheart
Kubernetes
Безсостояниевая архитектура поддерживает горизонтальное масштабирование. Настройка через ConfigMaps и Secrets.
Нативные исполняемые файлы
Предсобранные бинарники для macOS, Linux и Windows — быстрый запуск и меньшее потребление памяти. Ссылки: native-executables.md.
RESTHeart Cloud
Полностью управляемый сервис: cloud.restheart.com
- Мгновенное развёртывание
- Автоматическое масштабирование
- Бесплатный тариф
- Премиум-плагины (Webhooks, Sophia AI, Facet)
Совместимость с базами данных
| База данных |
Уровень поддержки |
Примечания |
| MongoDB |
Полная |
Все версии 3.6+ |
| MongoDB Atlas |
Полная |
Нативная поддержка облака |
| Percona Server |
Полная |
Замена MongoDB |
| FerretDB |
Частичная |
PostgreSQL-бэкенд (туториал) |
| AWS DocumentDB |
Частичная |
Большинство функций работает |
| Azure Cosmos DB |
Частичная |
Слой совместимости с MongoDB API |
Сообщество и поддержка
Лицензия
Ядро RESTHeart распространяется под GNU AGPL v3.
SDK плагинов (restheart-commons, артефакт Maven org.restheart:restheart-commons) — под Apache License 2.0. Плагины, зависящие только от restheart-commons, не подпадают под AGPL и могут распространяться под любой лицензией, включая проприетарные. Это аналогично подходу MongoDB: сервер — AGPL, драйверы и SDK — Apache 2.0.
Подробнее: PLUGIN_EXCEPTION.
Коммерческая лицензия доступна для случаев, когда нужно модифицировать ядро RESTHeart без открытия изменений: restheart.com/on-premises.
Создано с ❤️ SoftInstigate | GitHub | Сайт | Cloud
Комментарии
Комментариев пока нет. Будьте первым.