Skip to main content
Glama
celticht32

Couchbase-Analytics-MCP

by celticht32

Couchbase-Analytics-MCP

MCP-сервер (Model Context Protocol) промышленного уровня для сервиса Couchbase Enterprise Analytics. Предоставляет полный API Analytics в виде 25 строго типизированных инструментов MCP, включая встроенную графическую консоль, структурированное логирование, метрики Prometheus, трассировку OpenTelemetry и полное покрытие тестами.

Важно: Этот сервер предназначен для работы с сервисом Analytics (движок Apache AsterixDB, SQL++, порт 8095) — не с сервисом Couchbase Query (N1QL). Все инструменты вызывают исключительно cluster.analyticsQuery() и REST-эндпоинты /analytics/*.


Матрица функций

Функция

Статус

25 инструментов MCP, покрывающих полный API Analytics

Транспорт stdio (Claude Desktop)

Транспорт SSE/HTTP (удаленные агенты)

Пул соединений (min/max/очистка неактивных)

Аутентификация JWT + API key на эндпоинте SSE

Структурированное JSON-логирование (Pino)

Ежедневная ротация логов (pino-roll)

Опциональный транспорт для отправки в Loki

Эндпоинт /metrics для Prometheus

Трассировка OpenTelemetry → Jaeger

Пробы /health/live + /health/ready

React GUI консоль по адресу /console

Редактор SQL++ на базе Monaco

Проводник схемы (дерево dataverse → dataset)

Инспектор вызовов инструментов в реальном времени

Модульные тесты (покрытие ≥90%)

Интеграционные тесты (реальный Couchbase)

E2E-тесты (транспорт Supertest SSE)

Многоэтапный Docker-образ

Docker Compose (CB + Prometheus + Grafana + Jaeger)

Helm-чарт

CI/CD через GitHub Actions

Документация по архитектуре + ADR

Операционные руководства (runbooks)


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

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

  • Node.js ≥ 20

  • Docker + Docker Compose

  • Couchbase Server Enterprise ≥ 7.2 с включенным сервисом Analytics

Локальная разработка (Docker Compose)

git clone https://github.com/your-org/couchbase-analytics-mcp
cd couchbase-analytics-mcp

# Copy and edit environment
cp .env.example .env

# Start Couchbase + MCP server + Prometheus + Grafana + Jaeger
docker-compose up -d

# GUI console: http://localhost:3000/console
# Prometheus:  http://localhost:9091
# Grafana:     http://localhost:3001  (admin/admin)
# Jaeger:      http://localhost:16686

Запуск с существующим кластером Couchbase

npm install

CB_CONNECTION_STRING=couchbase://my-cluster \
CB_USERNAME=Administrator \
CB_PASSWORD=password \
TRANSPORT=stdio \
node packages/mcp-server/dist/index.js

Интеграция с Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "couchbase-analytics": {
      "command": "node",
      "args": ["/path/to/couchbase-analytics-mcp/packages/mcp-server/dist/index.js"],
      "env": {
        "CB_CONNECTION_STRING": "couchbase://your-cluster",
        "CB_USERNAME": "Administrator",
        "CB_PASSWORD": "your-password",
        "TRANSPORT": "stdio"
      }
    }
  }
}

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

Переменная

По умолчанию

Описание

CB_CONNECTION_STRING

(обязательно)

couchbase://host или couchbases://host для TLS

CB_USERNAME

(обязательно)

Имя пользователя RBAC Couchbase

CB_PASSWORD

(обязательно)

Пароль пользователя RBAC Couchbase

CB_ANALYTICS_PORT

8095

REST-порт Analytics (18095 для TLS)

CB_ANALYTICS_TLS

false

Включить TLS для REST-вызовов

TRANSPORT

stdio

stdio или sse

PORT

3000

Порт HTTP-сервера (SSE + health + GUI)

POOL_MIN

2

Минимальное количество соединений в пуле

POOL_MAX

10

Максимальное количество соединений в пуле

POOL_IDLE_TIMEOUT_MS

30000

Порог времени простоя для закрытия соединения

QUERY_DEFAULT_TIMEOUT_MS

60000

Таймаут запроса по умолчанию

LOG_LEVEL

info

`trace

debug

info

warn

error

fatal`

LOG_FORMAT

json

`json

pretty`

LOG_FILE_ENABLED

false

Включить запись в файл

LOG_FILE_PATH

/var/log/cba-mcp/server.log

Путь к файлу логов

LOKI_HOST

(опционально)

Эндпоинт для отправки в Loki

METRICS_ENABLED

true

Предоставить /metrics

OTEL_ENABLED

false

Включить трассировку OpenTelemetry

JAEGER_ENDPOINT

http://localhost:14268/api/traces

HTTP-коллектор Jaeger

JWT_SECRET

(опционально)

Секрет для подписи JWT при SSE-аутентификации

API_KEY

(опционально)

Статический API-ключ для SSE-аутентификации

GUI_ENABLED

true

Запустить GUI по адресу /console


Справочник инструментов

Полные схемы ввода/вывода см. в docs/api/TOOLS.md.

Инструмент

Группа

Описание

analytics_execute

Query

Выполнить SQL++ запрос

analytics_explain

Query

Получить план выполнения запроса

analytics_cancel

Query

Отменить выполняющийся запрос

analytics_query_status

Query

Проверить статус асинхронного запроса

analytics_pending_mutations

Query

Задержка репликации KV→Analytics

analytics_list_dataverses

Schema

Список всех dataverse

analytics_list_datasets

Schema

Список наборов данных (datasets)

analytics_describe_dataset

Schema

Описание набора данных на уровне полей

analytics_infer_schema

Schema

INFER DATASET → JSON Schema

analytics_list_indexes

Schema

Список вторичных индексов Analytics

analytics_create_dataverse

Dataverse

CREATE DATAVERSE

analytics_drop_dataverse

Dataverse

DROP DATAVERSE

analytics_create_dataset

Dataverse

CREATE DATASET (теневая коллекция)

analytics_drop_dataset

Dataverse

DROP DATASET

analytics_alter_dataset

Dataverse

Изменение предиката WHERE набора данных

analytics_list_links

Links

Список связей с источниками данных

analytics_create_link

Links

Создать связь CB/S3/Azure/GCS

analytics_alter_link

Links

Обновить конфигурацию связи

analytics_drop_link

Links

Удалить связь

analytics_connect_link

Links

Запустить прием данных (CONNECT LINK)

analytics_disconnect_link

Links

Приостановить прием данных (DISCONNECT LINK)

analytics_create_index

Indexes

CREATE вторичный индекс Analytics

analytics_drop_index

Indexes

DROP вторичный индекс Analytics

analytics_analyze_dataset

Indexes

Сбор статистики оптимизатора

analytics_node_agg_stats

Cluster

Статистика ресурсов по узлам

analytics_service_health

Cluster

Сводка состояния здоровья сервиса

analytics_cluster_config

Cluster

Конфигурация сервиса Analytics

analytics_set_config_param

Cluster

Изменение параметра конфигурации (защищено)

analytics_restart_node

Cluster

Перезапуск узла(ов) Analytics (защищено)


Разработка

# Install all workspace dependencies
npm install

# Build all packages
npm run build

# Run unit tests with coverage
npm run test:coverage

# Run integration tests (requires Couchbase)
docker-compose up -d couchbase
npm run test:integration -w packages/mcp-server

# Start dev server (hot reload)
npm run dev

# Generate API docs
npm run docs

Политика поддержки

Я искренне ценю ваш интерес к этому проекту! Проект поддерживается сообществом. Тем не менее, я активно слежу за этим репозиторием и стараюсь решать возникающие проблемы по мере возможности.

Все запросы должны направляться через GitHub.

Bug reports: Open a GitHub issue
Feature requests: Open a GitHub issue with the "enhancement" label
Questions: Open a GitHub issue

Ваше сотрудничество помогает нам двигаться вперед — спасибо! Pull-реквесты и вклад от сообщества приветствуются и поощряются.


Архитектура

Полную диаграмму компонентов, описание потоков данных и проектные решения см. в docs/architecture/ARCHITECTURE.md.

A
license - permissive license
Not graded
quality - not tested
Not graded
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

  • MCP server for managing Prisma Postgres.

  • MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.

  • MCP server for InsForge BaaS — database, storage, edge functions, and deployments

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/celticht32/MCP-Couchbase-Analytics'

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