Skip to main content
Glama
kosovadaria

DaraCloud Metabase MCP

by kosovadaria

DaraCloud Metabase MCP

Демонстрационный MCP-сервер для аналитики синтетической IaaS-базы DaraCloud через API Metabase.

Проект создан для докладов и обучения. Все названия, сущности и данные вымышлены и не содержат информации реальной инфраструктуры.

Архитектура

Hermes / другой MCP-клиент
          |
          | Streamable HTTP + Bearer token
          v
DaraCloud Metabase MCP
          |
          | Metabase API + X-API-Key
          v
       Metabase
          |
          v
PostgreSQL / daracloud_demo

MCP-сервер не подключается к PostgreSQL напрямую и не хранит учетные данные базы данных.

Related MCP server: sql-explorer-mcp

Инструменты MCP

  • list_tables — список таблиц демонстрационной схемы.

  • describe_table — колонки и типы данных выбранной таблицы.

  • run_sql — один read-only запрос SELECT или WITH ... SELECT, результат ограничивается по числу строк.

Изменяющие SQL-команды запрещены дополнительной проверкой на уровне сервера. Для полноценной защиты подключенная к Metabase учетная запись базы данных также должна оставаться read-only.

Быстрый запуск

Требования: Linux, Python 3.11+ и настроенный Metabase API key.

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
cp .env.example .env

Заполните .env, не добавляя его в Git, затем запустите:

set -a
. ./.env
set +a
.venv/bin/python src/server.py

По умолчанию сервер слушает 127.0.0.1:8000, а MCP endpoint доступен по пути /mcp.

Переменные окружения

Переменная

Назначение

METABASE_URL

Базовый URL Metabase без завершающего /

METABASE_API_KEY

API key Metabase для выполнения запросов

METABASE_DATABASE_ID

Числовой ID базы в Metabase

METABASE_SCHEMA

Разрешенная схема, по умолчанию daracloud_demo

MCP_AUTH_TOKEN

Отдельный bearer token для входящих MCP-запросов

MCP_PUBLIC_URL

Публичный HTTPS URL MCP-сервера

MCP_HOST

Локальный адрес прослушивания

MCP_PORT

Локальный порт прослушивания

QUERY_TIMEOUT_SECONDS

Таймаут запроса к Metabase

MAX_ALLOWED_ROWS

Максимально допустимый лимит результата

Развертывание

В каталоге deploy находятся примеры unit-файла systemd и конфигурации Caddy. Перед использованием замените домены и при необходимости пути.

Для Hermes пример подключения находится в examples/hermes-config.yaml.

Демонстрационные данные

Схема и дамп синтетической базы: kosovadaria/daracloud-demo.

Безопасность

  • Не коммитьте .env, API keys и bearer tokens.

  • Используйте разные секреты для Metabase API и входящей MCP-аутентификации.

  • Публикуйте сервер только через HTTPS reverse proxy.

  • Оставляйте пользователя базы данных в Metabase с правами только на чтение.

  • Это учебный проект, а не универсальный SQL firewall для недоверенных пользователей.

Лицензия

MIT.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A versatile MCP server that connects to multiple relational databases (MySQL, PostgreSQL, Oracle, SQL Server, SQLite) and enables secure read-only SQL query execution and metadata access.
    4
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Read-only MCP server for SQL databases (SQL Server, Postgres, SQLite) with multi-server support and three-layer safety using AST validation and linting.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server that enables database operations, schema management, and statistics via natural language through SQL queries and resources.
    21 npm
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Custom MCP server connected to a read-only SQLite database, exposing a schema resource and a query tool for safe data retrieval.
    -