ertad-family/liquid

ertad-family/liquid

от ertad-family
Подключает AI-агентов к любым API, БД, IoT и промышленным системам без написания коннекторов - сам определяет интерфейс, нормализует данные и самовосстанавливается при изменениях схемы.

Liquid

Connect your AI agent to anything — with no connector to write or maintain.

Point Liquid at a URL or a database and it works out the interface for you: discovers its shape, maps it to the fields you asked for, and handles auth, pagination and normalization — typed records, no client code. When the upstream drifts, it re-maps and keeps going. The same small API — fetch · query · write · sense — reaches web APIs, databases, other agents (MCP/A2A), email, and even IoT and industrial systems (MQTT, Modbus, OPC UA, BACnet). An LLM does the learning at setup (and on drift); the data path itself makes no model call.

PyPI License Python


What an agent can reach through Liquid

One agent-facing API (fetch · query · write · sense) over everything an agent might need to touch — Liquid figures out how to talk to it so the agent doesn't have to. It's the agent's senses and hands: fetch/query probe, sense perceives a live event stream, write acts on the world.

  • Web APIs & messaging — REST/JSON, GraphQL, SOAP/WSDL, gRPC, WebSocket, SSE/NDJSON streams, MQTT (IoT pub/sub — subscribe to sense, publish to act)
  • Email — IMAP/SMTP (any provider, app-password or OAuth2 XOAUTH2) and the Gmail API (OAuth2): read a mailbox, sense new mail as it arrives, and send
  • Industrial / OT — Modbus (PLCs, sensors) and OPC UA (Industry-4.0 nodes, native subscriptions) for the factory floor; BACnet for buildings (HVAC/BMS) — read, write, and sense
  • Android devices — phones, TV boxes, kiosks via ADB: sense logcat, read shell, act with input/am
  • Other agents & tools — any MCP server, A2A agents, ChatGPT-plugin manifests
  • Databases — Postgres (+ pgvector), MySQL/MariaDB, SQLite, DuckDB, SQL Server, Neo4j (graph), MongoDB (documents), Redis (key-value)
  • People, places & things — a human, a home, or a car as a node via connectors: Telegram (perceive messages, send replies), Home Assistant (perceive a whole smart home's state changes, act via call_service — lights, locks, media), and Smartcar (perceive a connected vehicle across ~30 brands — location/battery/fuel — and act: lock/unlock, charge)
liquid_connectидемпотентныйвнешний мир

Однократная настройка для API. Обнаруживает API по `url`, использует LLM для сопоставления его ответов с вашей `target_model` и сохраняет переиспользуемый адаптер; возвращает `adapter_id`, который затем передаёте в liquid_fetch / liquid_query / liquid_estimate. Побочные эффекты: выполняет исходящие HTTP(S)-запросы к `url`, вызывает настроенную LLM (требуется API-ключ) и сохраняет адаптер вместе с учётными данными в ~/.liquid. Идемпотентен: повторное подключение с теми же url и target_model использует существующий адаптер, а не создаёт дубликат. Используйте один раз на каждый API. Для быстрого просмотра без сохранения используйте liquid_discover; для чтения данных из уже подключённого API — liquid_fetch.

Connect to an API (one-time setup)

Однократная настройка для API. Обнаруживает API по `url`, использует LLM для сопоставления его ответов с вашей `target_model` и сохраняет переиспользуемый адаптер; возвращает `adapter_id`, который затем передаёте в liquid_fetch / liquid_query / liquid_estimate. Побочные эффекты: выполняет исходящие HTTP(S)-запросы к `url`, вызывает настроенную LLM (требуется API-ключ) и сохраняет адаптер вместе с учётными данными в ~/.liquid. Идемпотентен: повторное подключение с теми же url и target_model использует существующий адаптер, а не создаёт дубликат. Используйте один раз на каждый API. Для быстрого просмотра без сохранения используйте liquid_discover; для чтения данных из уже подключённого API — liquid_fetch.

Параметры

  • urlstringобязательный

    Base URL or a specific endpoint of the API (e.g. https://api.example.com or https://api.example.com/v1/users). Also accepts a GraphQL endpoint, a WSDL URL, or grpc:// / wss:// targets.

  • target_modelobjectобязательный

    The record shape you want back: a flat map of field name -> type, e.g. {"name": "str", "price": "float", "in_stock": "bool"}. Liquid maps the API's raw response onto exactly these fields; everything else is dropped.

  • credentialsobject

    Optional secrets for an auth-walled API, e.g. {"api_key": "..."}, {"token": "..."}, or {"username": "...", "password": "..."}. Stored encrypted under ~/.liquid and applied automatically on every later fetch. Omit for public APIs.

liquid_discoverтолько чтениеидемпотентныйвнешний мир

Проверяет структуру API: имя сервиса, метод обнаружения, тип аутентификации и список эндпоинтов — без создания или сохранения адаптера. Побочные эффекты: выполняет исходящие HTTP(S)-запросы к `url` для разведки и может вызывать настроенную LLM для API, которые не публикуют машиночитаемую спецификацию (эвристика REST). Только чтение: ничего не сохраняется. Используйте это, чтобы предварительно изучить незнакомое API; когда будете готовы реально читать данные, вызывайте liquid_connect — он обнаруживает, *и* отображает, *и* сохраняет переиспользуемый адаптер.

Inspect an API without saving an adapter

Проверяет структуру API: имя сервиса, метод обнаружения, тип аутентификации и список эндпоинтов — без создания или сохранения адаптера. Побочные эффекты: выполняет исходящие HTTP(S)-запросы к `url` для разведки и может вызывать настроенную LLM для API, которые не публикуют машиночитаемую спецификацию (эвристика REST). Только чтение: ничего не сохраняется. Используйте это, чтобы предварительно изучить незнакомое API; когда будете готовы реально читать данные, вызывайте liquid_connect — он обнаруживает, *и* отображает, *и* сохраняет переиспользуемый адаптер.

Параметры

  • urlstringобязательный

    Base URL of the API to inspect (same forms as liquid_connect's url).

  • credentialsobject

    Optional secrets for an auth-walled API, e.g. {"api_key": "..."}, {"token": "..."}, or {"username": "...", "password": "..."}. Stored encrypted under ~/.liquid and applied automatically on every later fetch. Omit for public APIs.

liquid_estimateтолько чтениеидемпотентный

Предварительная оценка для fetch — прогнозируемое количество элементов, байт, токенов, кредитов и задержка, каждый параметр с указанием уверенности и источника — без выполнения каких-либо HTTP-вызовов или вызовов LLM. Только чтение и бесплатно. Возвращает {estimate: {...}}. Проверьте это перед потенциально большим liquid_fetch, чтобы решить, стоит ли сначала сузить выборку с помощью liquid_query (фильтр/агрегация). Требуется adapter_id от liquid_connect.

Estimate a fetch (no call)

Предварительная оценка для fetch — прогнозируемое количество элементов, байт, токенов, кредитов и задержка, каждый параметр с указанием уверенности и источника — без выполнения каких-либо HTTP-вызовов или вызовов LLM. Только чтение и бесплатно. Возвращает {estimate: {...}}. Проверьте это перед потенциально большим liquid_fetch, чтобы решить, стоит ли сначала сузить выборку с помощью liquid_query (фильтр/агрегация). Требуется adapter_id от liquid_connect.

Параметры

  • adapter_idstringобязательный

    An adapter id returned by liquid_connect (or listed by liquid_list_adapters).

  • endpointstring

    Optional endpoint path to act on (e.g. "/users"); defaults to the adapter's primary endpoint. Use a path shown by liquid_connect / liquid_list_adapters.

liquid_fetchтолько чтениеидемпотентныйвнешний мир

Извлекает записи через подключенный адаптер, сопоставленные с `target_model`, который вы задали при подключении — детерминированно, без вызова LLM. Побочные эффекты: отправляет исходящий HTTP(S)-запрос только на чтение к подключенному API, используя сохраненные учетные данные; подчиняется лимитам частоты запросов этого API (Liquid заранее применяет троттлинг и возвращает ошибки 429 с подсказками для повторной попытки). Возвращает `{records, data: [до 100 сопоставленных записей], _meta}`. Требуется `adapter_id` из `liquid_connect`. Используйте это для получения полных записей; для фильтрации/агрегации на стороне сервера и получения меньшего ответа используйте вместо этого `liquid_query`; чтобы оценить размер выгрузки до её выполнения, сначала вызовите `liquid_estimate`.

Fetch records through an adapter

Извлекает записи через подключенный адаптер, сопоставленные с `target_model`, который вы задали при подключении — детерминированно, без вызова LLM. Побочные эффекты: отправляет исходящий HTTP(S)-запрос только на чтение к подключенному API, используя сохраненные учетные данные; подчиняется лимитам частоты запросов этого API (Liquid заранее применяет троттлинг и возвращает ошибки 429 с подсказками для повторной попытки). Возвращает `{records, data: [до 100 сопоставленных записей], _meta}`. Требуется `adapter_id` из `liquid_connect`. Используйте это для получения полных записей; для фильтрации/агрегации на стороне сервера и получения меньшего ответа используйте вместо этого `liquid_query`; чтобы оценить размер выгрузки до её выполнения, сначала вызовите `liquid_estimate`.

Параметры

  • adapter_idstringобязательный

    An adapter id returned by liquid_connect (or listed by liquid_list_adapters).

  • endpointstring

    Optional endpoint path to act on (e.g. "/users"); defaults to the adapter's primary endpoint. Use a path shown by liquid_connect / liquid_list_adapters.

liquid_list_adaptersтолько чтениеидемпотентный

Перечислить адаптеры, уже подключенные на этой машине (читать из ~/.liquid) — только чтение, без сетевых вызовов, без LLM. Каждая запись содержит adapter_id, название сервиса, source url и пути эндпоинтов. Вызывайте это, чтобы найти adapter_id для liquid_fetch / liquid_query / liquid_estimate, или чтобы проверить, подключено ли уже API, перед вызовом liquid_connect.

List connected adapters

Перечислить адаптеры, уже подключенные на этой машине (читать из ~/.liquid) — только чтение, без сетевых вызовов, без LLM. Каждая запись содержит adapter_id, название сервиса, source url и пути эндпоинтов. Вызывайте это, чтобы найти adapter_id для liquid_fetch / liquid_query / liquid_estimate, или чтобы проверить, подключено ли уже API, перед вызовом liquid_connect.

Параметры

Без параметров.

liquid_queryтолько чтениеидемпотентныйвнешний мир

Выполняет поиск или агрегацию на стороне сервера через адаптер и возвращает только ответ, без полного набора данных — детерминированно, без вызова LLM, только чтение. Два режима: через group_by/agg для агрегации (количество, суммы и т.д.) или через where/fields/limit для фильтрации и проекции. Побочные эффекты: исходящий HTTP(S) запрос на чтение к подключённому API, с ограничением частоты, как у liquid_fetch. Возвращает результаты поиска {records, data, _meta} или агрегацию {result, _meta}. Используйте этот инструмент вместо liquid_fetch, когда нужно только отфильтрованное подмножество, количество или сводка — он возвращает гораздо меньше токенов.

Search or aggregate through an adapter

Выполняет поиск или агрегацию на стороне сервера через адаптер и возвращает только ответ, без полного набора данных — детерминированно, без вызова LLM, только чтение. Два режима: через group_by/agg для агрегации (количество, суммы и т.д.) или через where/fields/limit для фильтрации и проекции. Побочные эффекты: исходящий HTTP(S) запрос на чтение к подключённому API, с ограничением частоты, как у liquid_fetch. Возвращает результаты поиска {records, data, _meta} или агрегацию {result, _meta}. Используйте этот инструмент вместо liquid_fetch, когда нужно только отфильтрованное подмножество, количество или сводка — он возвращает гораздо меньше токенов.

Параметры

  • adapter_idstringобязательный

    An adapter id returned by liquid_connect (or listed by liquid_list_adapters).

  • endpointstring

    Optional endpoint path to act on (e.g. "/users"); defaults to the adapter's primary endpoint. Use a path shown by liquid_connect / liquid_list_adapters.

  • whereobject

    Search-mode filter as field -> value (or field -> {op: value}), e.g. {"status": "active", "price": {"gt": 100}}. Keys are target_model fields.

  • fieldsstring[]

    Search-mode projection: target_model field names to return, e.g. ["name", "price"]. Omit for all fields.

  • limitinteger

    Search-mode max records to return (default 100).

  • group_bystring

    Aggregate-mode: target_model field to group by, e.g. "category".

  • aggobject

    Aggregate-mode: aggregations per group as field -> op, e.g. {"price": "sum", "id": "count"}. Provide together with group_by.

liquid_senseтолько чтениевнешний мир

Узнай, что произошло в мире с момента последней проверки: опрашивай endpoint на предмет событий, произошедших после `cursor` - новые строки в БД, опубликованные сообщения и т.д. Возвращает пакет событий (каждое с `modality`, `payload` и `cursor`) плюс `next_cursor`, чтобы продолжить с него. Это читающая сторона чувств агента - вызывай его повторно, передавая последний `next_cursor`, чтобы оставаться в курсе изменений, не пересматривая старые события. Ограничен `max_events` / `max_seconds`, поэтому всегда возвращает результат быстро. Где liquid_fetch - однократное получение текущего состояния, liquid_sense воспринимает, что изменилось с последней проверки. Требует adapter_id от liquid_connect. Поддерживают только endpoints, способные к восприятию (таблицы SQL, каналы Redis, WebSocket, потоки SSE/NDJSON, уведомления MCP, MQTT, Modbus, OPC UA, BACnet, ADB logcat); остальные возвращают ошибку. Только для чтения - он воспринимает, он ничего не меняет.

Check the agent's senses (poll for new events)

Узнай, что произошло в мире с момента последней проверки: опрашивай endpoint на предмет событий, произошедших после `cursor` - новые строки в БД, опубликованные сообщения и т.д. Возвращает пакет событий (каждое с `modality`, `payload` и `cursor`) плюс `next_cursor`, чтобы продолжить с него. Это читающая сторона чувств агента - вызывай его повторно, передавая последний `next_cursor`, чтобы оставаться в курсе изменений, не пересматривая старые события. Ограничен `max_events` / `max_seconds`, поэтому всегда возвращает результат быстро. Где liquid_fetch - однократное получение текущего состояния, liquid_sense воспринимает, что изменилось с последней проверки. Требует adapter_id от liquid_connect. Поддерживают только endpoints, способные к восприятию (таблицы SQL, каналы Redis, WebSocket, потоки SSE/NDJSON, уведомления MCP, MQTT, Modbus, OPC UA, BACnet, ADB logcat); остальные возвращают ошибку. Только для чтения - он воспринимает, он ничего не меняет.

Параметры

  • adapter_idstringобязательный

    An adapter id returned by liquid_connect (or listed by liquid_list_adapters).

  • endpointstring

    Optional endpoint path to act on (e.g. "/users"); defaults to the adapter's primary endpoint. Use a path shown by liquid_connect / liquid_list_adapters.

  • cursorstring

    Resume token from a previous call's next_cursor; omit to start from now.

  • max_eventsnumber

    Max events to return this call (default 50).

  • max_secondsnumber

    Max seconds to wait for events before returning (default 5).

Другие проверенные MCP-сервера

ClickHouse/mcp-clickhouse

ClickHouse/mcp-clickhouse

официальный

MCP сервер для работы с ClickHouse: выполняет SQL-запросы, перечисляет базы и таблицы с пагинацией. Поддерживает chDB для быстрых встраиваемых запросов без ETL. Полезен разработчикам и аналитикам для интеграции ClickHouse в AI-инструменты через MCP.

Python826
getmockd/mockd

getmockd/mockd

официальный

Mockd — универсальный инструмент для создания моков HTTP, gRPC, GraphQL, WebSocket, MQTT, SSE и SOAP. Один бинарник без зависимостей. Встроенный MCP-сервер позволяет AI-агентам управлять моками, им...

Go132
heurist-network/heurist-mesh-mcp-server

heurist-network/heurist-mesh-mcp-server

официальный

Сервер MCP на базе Heurist Mesh для Web3-аналитики: 30+ AI-агентов для анализа трендов, токенов и кошельков. Интегрируется с Claude, Cursor, оптимизирован для AI. Полезен разработчикам и трейдерам.

Python66
TencentCloudBase/CloudBase-AI-ToolKit

TencentCloudBase/CloudBase-AI-ToolKit

официальный

MCP-сервер CloudBase соединяет AI IDE с облачной инфраструктурой Tencent Cloud, позволяя разработчикам развёртывать приложения одной командой. Он заполняет разрыв между генерацией кода и деплоем, автоматизируя настройку функций, баз данных и хостинга. Полезен для AI-программистов, которые хотят у...

TypeScript1059
vectorize-io/hindsight

vectorize-io/hindsight

официальный

MCP сервер Hindsight наделяет AI-агентов долговременной памятью — они учатся на опыте, а не просто запоминают диалоги. Использует биомиметические структуры данных для извлечения фактов и ментальных моделей, превосходя по точности RAG и графы знаний. Подходит для персонализации чат-ботов и создани...

Python18555
jsdelivr/globalping-mcp-server

jsdelivr/globalping-mcp-server

официальный

Globalping MCP Server даёт AI-ассистентам доступ к глобальной сети проб для выполнения сетевых тестов (ping, traceroute, DNS, HTTP) из тысяч точек мира. Идеально для диагностики сети и сравнения пр...

TypeScript62
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин