Couchbase-Analytics-MCP
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 | ✅ |
Эндпоинт | ✅ |
Трассировка OpenTelemetry → Jaeger | ✅ |
Пробы | ✅ |
React GUI консоль по адресу | ✅ |
Редактор 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"
}
}
}
}Переменные окружения
Переменная | По умолчанию | Описание | |||||
| (обязательно) |
| |||||
| (обязательно) | Имя пользователя RBAC Couchbase | |||||
| (обязательно) | Пароль пользователя RBAC Couchbase | |||||
|
| REST-порт Analytics (18095 для TLS) | |||||
|
| Включить TLS для REST-вызовов | |||||
|
|
| |||||
|
| Порт HTTP-сервера (SSE + health + GUI) | |||||
|
| Минимальное количество соединений в пуле | |||||
|
| Максимальное количество соединений в пуле | |||||
|
| Порог времени простоя для закрытия соединения | |||||
|
| Таймаут запроса по умолчанию | |||||
|
| `trace | debug | info | warn | error | fatal` |
|
| `json | pretty` | ||||
|
| Включить запись в файл | |||||
|
| Путь к файлу логов | |||||
| (опционально) | Эндпоинт для отправки в Loki | |||||
|
| Предоставить | |||||
|
| Включить трассировку OpenTelemetry | |||||
|
| HTTP-коллектор Jaeger | |||||
| (опционально) | Секрет для подписи JWT при SSE-аутентификации | |||||
| (опционально) | Статический API-ключ для SSE-аутентификации | |||||
|
| Запустить GUI по адресу |
Справочник инструментов
Полные схемы ввода/вывода см. в docs/api/TOOLS.md.
Инструмент | Группа | Описание |
| Query | Выполнить SQL++ запрос |
| Query | Получить план выполнения запроса |
| Query | Отменить выполняющийся запрос |
| Query | Проверить статус асинхронного запроса |
| Query | Задержка репликации KV→Analytics |
| Schema | Список всех dataverse |
| Schema | Список наборов данных (datasets) |
| Schema | Описание набора данных на уровне полей |
| Schema | INFER DATASET → JSON Schema |
| Schema | Список вторичных индексов Analytics |
| Dataverse | CREATE DATAVERSE |
| Dataverse | DROP DATAVERSE |
| Dataverse | CREATE DATASET (теневая коллекция) |
| Dataverse | DROP DATASET |
| Dataverse | Изменение предиката WHERE набора данных |
| Links | Список связей с источниками данных |
| Links | Создать связь CB/S3/Azure/GCS |
| Links | Обновить конфигурацию связи |
| Links | Удалить связь |
| Links | Запустить прием данных (CONNECT LINK) |
| Links | Приостановить прием данных (DISCONNECT LINK) |
| Indexes | CREATE вторичный индекс Analytics |
| Indexes | DROP вторичный индекс Analytics |
| Indexes | Сбор статистики оптимизатора |
| Cluster | Статистика ресурсов по узлам |
| Cluster | Сводка состояния здоровья сервиса |
| Cluster | Конфигурация сервиса Analytics |
| Cluster | Изменение параметра конфигурации (защищено) |
| 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.
This server cannot be installed
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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