Skip to main content
Glama
yashdhingra0

uniquery

by yashdhingra0

UniQuery

Задавайте вопросы к вашей базе данных на простом английском — из любого MCP-клиента или из веб-интерфейса.

UniQuery подключается к базе данных Postgres или MongoDB в режиме только для чтения и предоставляет её как агента для запросов на естественном языке. У него два входа в один и тот же движок: MCP-сервер, который подключается к Claude Desktop, Claude Code, Cursor или любому другому MCP-клиенту, и веб-приложение Next.js для изучения результатов с графиками.

Интересная часть — не сам шаг преобразования естественного языка в SQL (таких инструментов много). А то, что вокруг: маскирование PII до того, как строки попадут в модель, жёсткие ограничения на количество строк и таймауты запросов, принудительный режим только для чтения на уровне коннектора, а также хранилище семантической схемы, чтобы агент со временем лучше понимал вашу схему.

Архитектура

apps/
  web/                 Next.js 16 + React 19 + Recharts UI
packages/
  core/                The engine — connectors, agent loop, guardrails, viz
    connectors/        Postgres (Neon serverless / pg) and MongoDB, read-only
    agent/             Tool-calling loop over Vercel AI Gateway / Google Gemini
    guardrails/        PII masking + row/timeout clamps
    semantic/          Schema knowledge store with SQL migrations
    viz/               Result-shape classifier that picks a chart type
  mcp-server/          MCP server exposing core over @modelcontextprotocol/sdk

Related MCP server: Company Data MCP Server

Защитные механизмы

Именно они делают это чем-то большим, чем демо:

Защитный механизм

Поведение

Только чтение

Коннекторы никогда не выполняют запись, независимо от того, что генерирует модель

Маскирование PII

Столбцы, соответствующие email, ssn, phone, dob, credit_card, cvv, passport, api_key, password и подобным, редактируются внутри инструментов агента — замаскированные значения никогда не попадают в контекст LLM. Дополнительные столбцы можно пометить вручную

Ограничение строк

Каждый запрос ограничивается диапазоном [1, 1000] строк, независимо от того, что запрашивает агент или MCP-клиент

Ограничение таймаута

Каждый запрос ограничивается диапазоном [1s, 30s]

Инструменты с валидацией Zod

Входные данные MCP-инструментов проверяются по схеме до того, как они коснутся коннектора

MCP-сервер

MCP-сервер регистрирует три инструмента:

  • connectDatabase — регистрация подключения к Postgres или MongoDB под выбранным вами connectionId

  • askQuestion — задать вопрос на естественном языке к зарегистрированному подключению; возвращает таблицу в формате markdown и предложенную визуализацию

  • плюс инструмент для вывода списка подключений, чтобы узнать, что зарегистрировано

Результаты возвращаются в виде таблиц markdown (не более 50 строк для отображения) с приложенной рекомендацией по графику — bar, line, table или none — которая определяется по форме результата, а не угадывается моделью.

Настройка в MCP-клиенте

{
  "mcpServers": {
    "uniquery": {
      "command": "node",
      "args": ["/path/to/uniquery/packages/mcp-server/dist/index.js"]
    }
  }
}

Затем в клиенте:

Подключись к моему Postgres по адресу postgres://… как analytics, затем скажи, какие пять клиентов принесли наибольшую выручку за последний квартал.

Начало работы

Требуется Node.js >= 20 и pnpm 11.

pnpm install
pnpm build

# web app
pnpm dev

# MCP server
node packages/mcp-server/dist/index.js

Скопируйте .env.example в .env.local и заполните URL вашей базы данных и ключ LLM — либо ключ Vercel AI Gateway (по умолчанию), либо ключ Google Gemini с provider: "google".

Стек

TypeScript · pnpm workspaces · Model Context Protocol SDK · Vercel AI SDK 6 · Google Gemini · Neon serverless Postgres · MongoDB · Zod · Next.js 16 · Recharts · Vitest

Статус

Рабочий прототип. Движок, защитные механизмы и MCP-сервер функциональны; веб-приложение покрывает основной поток запросов и построения графиков.

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables read-only exploration and querying of PostgreSQL or MySQL databases via MCP, with schema discovery, safe SQL validation, natural language to SQL conversion, and CSV export.
    11
    1
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables read-only access to company data across PostgreSQL, MongoDB Atlas, and flat files through MCP tools, allowing AI assistants to query and retrieve information via natural language.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that enables natural-language SQL queries across multiple databases (ClickHouse, Teradata, PostgreSQL, MySQL, SQL Server, DB2, Oracle, MongoDB) with dialect-correct SQL generation, PII masking, and security-by-construction controls.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only, guarded access to business databases via MCP. Enables natural language querying with built-in security barriers like table allowlists, PII masking, and audit logging.
    MIT