Главная · MCP-серверы · Orionbelt Analytics

Orionbelt AnalyticsOrionBelt Analytics

ralfbecher/orionbelt-analytics

MCP-сервер OrionBelt (аналитика).

Установка

claude mcp add orionbelt-analytics http://localhost:9000/mcp LibreChat Set MCP_TRANSPORT=sse in .env, restart the server, then add to librechat.yaml: mcpServers: OrionBelt-Analytics: url: "http://host.docker.intern

OrionBelt Analytics

Онтологический MCP-сервер для удобной работы с Text-2-SQL.

OrionBelt Analytics — MCP-сервер, который анализирует схемы реляционных баз данных и генерирует RDF/OWL-онтологии со встроенными SQL-маппингами. Предоставляет Text-to-SQL с учётом связей между таблицами и автоматической защитой от fan-trap, GraphRAG для интеллектуального обнаружения схемы и интерактивные графики — всё доступно через любой MCP-совместимый AI-клиент.

Экосистема OrionBelt

ПроектНазначение
OrionBelt Analytics (этот)Анализ схем, генерация онтологий, GraphRAG, Text-to-SQL
OrionBelt Semantic LayerДекларативные YAML-модели, компилируемые в диалект-специфичный SQL без fan-trap
OrionBelt Ontology BuilderВизуальный редактор OWL-онтологий с рассуждением и графической визуализацией (live demo)
OrionBelt ChatAI-чат для Analytics + Semantic Layer (Chainlit, несколько LLM-провайдеров)

Запустите Analytics и Semantic Layer параллельно в Claude Desktop для схемно-осознанной генерации онтологий и гарантированно корректной компиляции SQL.

Архитектура

  • 8 коннекторов к базам данных — PostgreSQL, MySQL, Snowflake, ClickHouse, Dremio, BigQuery, DuckDB/MotherDuck, Databricks SQL
  • Генерация RDF/OWL-онтологий с SQL-аннотациями в пространстве имён oba: и маппингами W3C R2RML
  • GraphRAG — обход графа (до 12 переходов) + векторные эмбеддинги ChromaDB для семантического обнаружения схемы
  • Интерфейс SPARQL 1.1 через постоянное RDF-хранилище Oxigraph
  • Валидация OBQC — детерминированные SQL-проверки на соответствие онтологии (существование таблиц/столбцов, корректность JOIN, несоответствие типов, fan-trap)
  • Интерактивные графики — Plotly-диаграммы с MCP-UI рендерингом в Claude Desktop
  • Поддержка нескольких схем — одновременный анализ нескольких схем; состояние онтологии и GraphRAG изолировано для каждой схемы
  • Сохранение рабочего пространства — повторное подключение к той же базе данных с восстановлением предыдущей сессии
  • MCP sampling — если клиент поддерживает sampling (например, OrionBelt Chat), suggest_semantic_names запрашивает у хост-LLM предложения по переименованию криптических идентификаторов через sampling/createMessage. Клиенты без sampling (например, Claude Desktop) автоматически переходят к ручному пути

OBQC — Ontology-Based Query Check

Ключевое отличие OrionBelt — OBQC (Ontology-Based Query Check): детерминированный, основанный на правилах SQL-валидатор, перехватывающий ошибки до того, как запросы достигают базы данных. В отличие от подходов, полагающихся только на LLM, OBQC сверяет каждый сгенерированный SQL-оператор с загруженной RDF/OWL-онтологией, обеспечивая структурную корректность.

Что проверяет OBQC:

ПроверкаЧто обнаруживает
Существование таблицСсылки на таблицы, отсутствующие в схеме
Существование столбцовСсылки на несуществующие столбцы, неоднозначные неквалифицированные столбцы
Корректность JOINОтсутствующие условия JOIN (декартовы произведения), столбцы JOIN, не совпадающие с объявленными внешними ключами
Совместимость типовСравнения WHERE/ON между несовместимыми типами (например, строка и целое число)
Корректность агрегацииСтолбцы SELECT, отсутствующие в GROUP BY при использовании агрегатов
Обнаружение fan-trapАгрегации через несколько связей «один ко многим», которые молча умножают результаты

Принцип работы:

  1. generate_ontology или load_my_ontology создаёт/загружает онтологию с аннотациями в пространстве имён oba:, связывающими классы и свойства OWL с реальными таблицами, столбцами, типами и внешними ключами.
  2. При вызове execute_sql_query OBQC парсит SQL с помощью sqlglot и проверяет каждую таблицу, столбец, JOIN и агрегацию на соответствие схемной модели онтологии.
  3. Проблемы возвращаются с уровнями серьёзности (error, warning, info) вместе с результатами запроса, чтобы LLM мог исправиться до того, как пользователь увидит неверные данные.

OBQC полностью детерминирован — никаких вызовов LLM, никакого вероятностного рассуждения. Действует как страховочная сеть, дополняя генерацию SQL от LLM жёсткими структурными гарантиями. Ошибки блокируют выполнение запроса; предупреждения прикладываются к ответу для обработки LLM.

Быстрый старт

1. Установка

git clone https://github.com/ralforion/orionbelt-analytics
cd orionbelt-analytics
uv sync

Требуются Python 3.13+ и uv.

2. Настройка

cp .env.template .env

Отредактируйте .env, указав учётные данные базы данных. Как минимум укажите переменные для одной БД (например, POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DATABASE, POSTGRES_USERNAME, POSTGRES_PASSWORD).

3. Запуск

uv run server.py

Сервер стартует на http://localhost:9000 (HTTP transport, порт настраивается через MCP_SERVER_PORT).

Подключение AI-клиента

Claude Desktop

Запустите сервер, затем добавьте в claude_desktop_config.json:

{
  "mcpServers": {
    "OrionBelt-Analytics": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:9000/mcp",
        "--transport",
        "http-only"
      ]
    }
  }
}

Claude Code

claude mcp add orionbelt-analytics http://localhost:9000/mcp

LibreChat

Установите MCP_TRANSPORT=sse в .env, перезапустите сервер, затем добавьте в librechat.yaml:

mcpServers:
  OrionBelt-Analytics:
    url: "http://host.docker.internal:9000/sse"
    timeout: 60000
    startup: true

Другие фреймворки

OrionBelt работает с LangChain, OpenAI Agents SDK, CrewAI, Google ADK, Vercel AI SDK, n8n и ChatGPT Custom GPTs.

Инструменты

OrionBelt предоставляет 26 MCP-инструментов, сгруппированных по категориям:

Подключение и схема

ИнструментОписание
connect_databaseПодключение к любой поддерживаемой БД по учётным данным из .env
list_schemasСписок доступных схем в подключённой БД
reset_cacheОчистка кэша схемы и онтологии для текущей сессии
discover_schemaАнализ структуры схемы с автоматической генерацией GraphRAG + онтологии
get_table_detailsПодробная информация о столбцах, ключах и ограничениях для конкретной таблицы
cleanup_workspaceУдаление всех файлов рабочего пространства для текущего подключения

Онтология и семантика

ИнструментОписание
generate_ontologyГенерация RDF/OWL-онтологии из схемы с аннотациями SQL-маппингов
suggest_semantic_namesОбнаружение аббревиатур и криптических имён для удобного переименования
apply_semantic_namesПрименение предложенных LLM семантических имён и описаний к онтологии
load_my_ontologyЗагрузка пользовательского файла онтологии .ttl из папки импорта
download_artifactСкачивание онтологии или R2RML-маппинга как Turtle-файла

Запросы и визуализация

ИнструментОписание
sample_table_dataПредпросмотр данных таблицы с ограничением строк и защитой от инъекций
execute_sql_queryВыполнение SQL с валидацией OBQC, проверками безопасности и обнаружением fan-trap
generate_chartГенерация Plotly-диаграмм (bar, line, scatter, heatmap) с MCP-UI рендерингом

GraphRAG

ИнструментОписание
graphrag_searchСемантический поиск + обзор схемы (автоинициализируется через discover_schema)
graphrag_query_contextОптимизированный контекст для генерации SQL (снижение токенов на 85–95%)
graphrag_find_join_pathОбнаружение путей JOIN между таблицами через обход графа
reachable_fromТаблицы-измерения, доступные из опорного зерна (замыкание «многие к одному»)
measurable_fromТаблицы-меры, доступные из опорного зерна (замыкание «один ко многим»)
plan_composite_queryРекомендации по безопасному от fan-trap разложению Composite Fact Layer (UNION ALL)

SPARQL и RDF

ИнструментОписание
store_ontology_in_rdfСохранение онтологии в Oxigraph для доступа через SPARQL
query_sparqlВыполнение SPARQL-запросов (SELECT, ASK, CONSTRUCT — определяется автоматически)
add_rdf_knowledgeДобавление пользовательских метаданных-триплетов в RDF-хранилище

Семантические модели

ИнструментОписание
save_semantic_modelСохранение семантической модели (например, OBML YAML) в рабочем пространстве
get_semantic_modelПолучение сохранённой семантической модели по имени
list_semantic_modelsСписок всех сохранённых семантических моделей для текущего подключения

Типичные рабочие процессы

Полная аналитическая сессия:

connect_database("postgresql") -> discover_schema("public") -> generate_ontology() -> execute_sql_query(...)

Быстрое исследование данных:

connect_database("duckdb") -> list_schemas() -> sample_table_data("events")

Запрос с визуализацией:

execute_sql_query(query) -> generate_chart(data, "bar", ...)

execute_sql_query выполняет валидацию OBQC, проверки безопасности и обнаружение fan-trap перед выполнением — отдельный шаг валидации не нужен.

Возобновление предыдущей сессии (автовосстановление рабочего пространства):

connect_database("postgresql") -> execute_sql_query(...)

Документация

ДокументСодержание
Tools ReferenceПолная документация параметров, возвращаемые значения и примеры использования
ConfigurationПеременные окружения, настройка транспорта, устранение неполадок
GraphRAGГрафовая аналитика схемы и рабочий процесс OBML
OBQCПравила валидации, уровни серьёзности, блокирующее поведение
Fan-Trap PreventionПроблема fan-trap, обнаружение и безопасные SQL-паттерны
IntegrationsLangChain, OpenAI, CrewAI, Google ADK, Vercel, n8n, ChatGPT

Лицензия

Copyright 2025–2026 RALFORION d.o.o.

Лицензирован по Business Source License 1.1. Лицензируемый продукт перейдёт под Apache License 2.0 с 2030-03-16.

По вопросам коммерческого лицензирования: licensing@ralforion.com