Skip to main content
Glama
HumanSamadian

Data Nexus MCP

Data Nexus MCP

Модульная безопасная платформа для подключения к SQL и NoSQL базам данных через REST API, MCP (Model Context Protocol) и веб-интерфейс на Vue.js.

Архитектура

┌─────────────┐     ┌──────────────┐     ┌─────────────────┐
│   Web UI    │────▶│  REST API    │────▶│ core-db-command │
│  (Vue.js)   │     │  (FastAPI)   │     │  (Python lib)   │
└─────────────┘     └──────┬───────┘     └────────┬────────┘
                           │                       │
                    ┌──────▼───────┐               │
                    │  MCP Server  │───────────────┘
                    └──────┬───────┘
                           │
                    ┌──────▼───────┐
                    │  MCP Client  │──▶ AI Agents / LLMs
                    └──────────────┘

Модули

Модуль

Пакет

Описание

core-db-command

core_db_command/

Плагинная библиотека на Python для всех драйверов баз данных

rest-api-command

rest_api_command/

Уровень REST на FastAPI с аутентификацией OAuth2/LDAP/basic

mcp-server

mcp_server/

Инструменты MCP: query_database, get_schema, list_tables, describe_table, execute_sql

mcp-client

mcp_client/

Мост MCP-клиента для интеграции с агентами

web-ui

web-ui/

Студия запросов на Vue 3 + Pinia + Monaco Editor

config

config/

Определения подключений в YAML с подстановкой ${ENV}

Related MCP server: Database MCP Server

Поддерживаемые типы баз данных

Реестр драйверов поддерживает более 50 типов баз данных в 13 категориях:

  • Реляционные: PostgreSQL, MySQL, MSSQL, Oracle, CockroachDB, TiDB, YugabyteDB, TimescaleDB, pgvector

  • Документные: MongoDB, DocumentDB, Firestore, Couchbase (заглушка)

  • Ключ-значение: Redis, DynamoDB, Memcached/etcd/RocksDB (заглушка)

  • Ширококолоночные: Cassandra, ScyllaDB, Bigtable/HBase (заглушка)

  • Графовые: Neo4j, Neptune/JanusGraph/ArangoDB (заглушка)

  • Временные ряды: InfluxDB, ClickHouse, Prometheus/QuestDB (заглушка)

  • Векторные: Qdrant, Weaviate, Milvus, Pinecone

  • Поисковые: Elasticsearch, OpenSearch, Splunk/Solr (заглушка)

  • Хранилища: BigQuery, Snowflake, Redshift/Databricks (заглушка)

  • Мультимодельные: Cosmos DB, OrientDB (заглушка)

  • Встраиваемые: SQLite, DuckDB, Realm/LMDB (заглушка)

  • Реестровые: QLDB/BigchainDB (заглушка)

  • NewSQL: Spanner (заглушка)

Полностью реализованные драйверы включают PostgreSQL, MySQL, MSSQL, Oracle, MongoDB, Redis, SQLite, DuckDB, Elasticsearch, ClickHouse, Neo4j, InfluxDB, Cassandra, DynamoDB, BigQuery, Snowflake, Qdrant, Weaviate, Milvus, Pinecone, Cosmos DB и Firestore. Драйверы-заглушки зарегистрированы и расширяемы.

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

Предварительные требования

  • Python 3.11+

  • Node.js 20+ (для разработки веб-интерфейса)

  • Docker и Docker Compose (опционально)

1. Установка зависимостей Python

cp .env.example .env
pip install -e ".[dev]"

2. Настройка подключений

Отредактируйте config/connections.yaml и задайте секреты через переменные окружения:

connections:
  - name: postgres_prod
    type: postgresql
    host: localhost
    port: 5432
    database: mydb
    user: readonly_user
    password: ${PG_PASSWORD}

3. Запуск REST API

db-rest-api
# or: uvicorn rest_api_command.app:app --reload

Документация API: http://localhost:8000/docs

4. Запуск веб-интерфейса (разработка)

cd web-ui
cp .env.example .env
npm install
npm run dev

Откройте http://localhost:5173 — учетные данные по умолчанию: admin / changeme

5. Запуск с Docker Compose

docker compose up -d

Сервисы:

Конечные точки REST API

Метод

Путь

Описание

GET

/api/connections

Список подключений (без учетных данных)

POST

/api/db/{name}/query

Параметризованный запрос

POST

/api/db/{name}/sql

Сырой SQL / нативная команда

GET

/api/db/{name}/schema

Схема базы данных

GET

/api/db/{name}/tables

Список таблиц/коллекций

GET

/api/db/{name}/tables/{table}/describe

Структура таблицы

GET/POST

/api/query-history

История запросов

MCP-сервер

Настройте в .env или Cursor MCP env:

MCP_REST_API_URL=http://localhost:8000
# Option A: bearer token (when REST_API_AUTH_MODE=oauth2)
MCP_REST_API_TOKEN=<jwt-from-/api/auth/token>
# Option B: username/password (works with basic auth; auto-fetches JWT if oauth2)
MCP_REST_API_USER=admin
MCP_REST_API_PASSWORD=changeme

Запустите:

db-mcp-server

Добавьте в конфигурацию MCP Cursor/Claude:

{
  "mcpServers": {
    "data-nexus-mcp": {
      "command": "db-mcp-server",
      "cwd": "/path/to/data_nexus_mcp",
      "env": {
        "MCP_REST_API_URL": "http://localhost:8000",
        "MCP_REST_API_USER": "admin",
        "MCP_REST_API_PASSWORD": "changeme"
      }
    }
  }
}

Примечание: переменные REST_API_* относятся к процессу REST API (db-rest-api), а не к конфигурации MCP-сервера.

MCP-клиент

db-mcp-client                    # list available tools
db-mcp-client query local_sqlite "SELECT 1"

Аутентификация

Установите REST_API_AUTH_MODE в одно из значений:

  • basic — HTTP Basic Auth (по умолчанию для разработки)

  • oauth2 — JWT токены через /api/auth/token

  • ldap — LDAP привязка (требует REST_API_LDAP_SERVER и REST_API_LDAP_BASE_DN)

Добавление нового драйвера

  1. Создайте core_db_command/drivers/mydb.py

  2. Унаследуйте от BaseDriver и задайте driver_type

  3. Декорируйте с помощью @DriverRegistry.register

  4. Импортируйте в core_db_command/drivers/registry_loader.py

from core_db_command.base import BaseDriver, DriverRegistry

@DriverRegistry.register
class MyDBDriver(BaseDriver):
    driver_type = "mydb"

    async def connect(self): ...
    async def disconnect(self): ...
    async def query(self, query, params=None): ...
    async def execute(self, command, params=None): ...
    async def list_tables(self, schema=None): ...
    async def describe_table(self, table, schema=None): ...

Тестирование

pytest tests/ -v

Замечания по безопасности

  • Учетные данные никогда не возвращаются REST API или MCP-сервером

  • Секреты должны использовать заполнители ${ENV_VAR} в конфигурации YAML

  • Все конечные точки API требуют аутентификации

  • Ввод запросов проверяется и ограничивается по длине

Структура проекта

data-nexus-mcp/
├── core_db_command/       # Core library + drivers
├── rest_api_command/      # FastAPI REST API
├── mcp_server/            # MCP server
├── mcp_client/            # MCP client
├── web-ui/                # Vue.js frontend
├── config/                # YAML connection config
├── tests/                 # Unit tests
├── docker-compose.yml
├── Dockerfile
└── pyproject.toml

Лицензия

MIT

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    C
    maintenance
    Enables LLMs and agents to interact with relational databases (SQL Server, MySQL, PostgreSQL) through MCP tools. Supports executing queries, inserting records, listing tables, and exposing database schemas with secure credential management.
  • A
    license
    -
    quality
    D
    maintenance
    Provides universal database operations for AI assistants through MCP, supporting 40+ databases including PostgreSQL, MySQL, MongoDB, Redis, and SQLite with built-in introspection tools for schema exploration.
    29
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Give your AI agent safe, plain-English access to any database via MCP. Ask questions in natural language, get SQL queries and results, run read-only queries, and set up scheduled alerts.
    9
    60
    MIT

View all related MCP servers

Related MCP Connectors

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HumanSamadian/data-nexus-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server