Couchbase
официальныйВзаимодействуйте с данными, хранящимися в кластерах Couchbase, используя естественный язык.
Что можно делать с Couchbase MCP?
Попросите вашего ассистента проверить состояние кластера, изучить схемы, выполнять SQL++ запросы и управлять документами в вашем кластере Couchbase.
- Выполнение SQL++ запросов — Попросите ассистента запросить данные с помощью
run_sql_plus_plus_query, автоматически ограниченного bucket и collection. - Изучение схемы — Обнаруживайте buckets, scopes и collections через
get_buckets_in_clusterиget_schema_for_collection. - Управление документами — Читайте, обновляйте или удаляйте документы по ID с помощью
get_document_by_idиupsert_document_by_id. - Проверка состояния кластера — Проверяйте подключение и статус сервисов с помощью
test_cluster_connectionиget_cluster_health_and_services. - Оптимизация индексов — Списывайте индексы и получайте рекомендации через
list_indexesиget_index_advisor_recommendations. - Анализ производительности запросов — Находите медленные или неселективные запросы с помощью
get_longest_running_queriesиget_queries_using_primary_index.
Документация
Couchbase MCP Server
Couchbase MCP Server — это самостоятельно размещаемый MCP-сервер, который позволяет AI-агентам подключаться к кластерам Couchbase и взаимодействовать с данными в них, независимо от того, размещены ли они на Capella или управляются самостоятельно. Он предоставляет инструменты по категориям: здоровье кластера, схема данных, Key-Value, запросы и производительность — с механизмами контроля безопасности через режим только для чтения и детальным отключением инструментов. Поддерживаются транспорты STDIO и Streamable HTTP.
Couchbase MCP server распространяется как пакет Python Package Index (PyPI) и через Docker. Корпоративная поддержка Couchbase MCP Server доступна по лицензии Couchbase AI Data Plane, которая также предоставляет право на использование и корпоративную поддержку Couchbase Agent Memory и Couchbase Agent Catalog.
Полную документацию см. на mcp-server.couchbase.com.
Функции/Инструменты
Инструменты настройки и здоровья кластера
| Название инструмента | Описание |
|---|---|
get_server_configuration_status | Получить статус сервера и конфигурацию без подключения к кластеру — сообщает режим только для чтения, отключенные/требующие подтверждения инструменты, настройки OAuth и итоговую конфигурацию логирования |
test_cluster_connection | Проверить учетные данные кластера, подключившись к кластеру |
get_cluster_health_and_services | Получить статус здоровья кластера и список всех запущенных сервисов |
Инструменты обнаружения модели данных и схемы
| Название инструмента | Описание |
|---|---|
get_buckets_in_cluster | Получить список всех bucket-ов в кластере |
get_scopes_in_bucket | Получить список всех scope-ов в указанном bucket-е |
get_collections_in_scope | Получить список всех collection-ий в указанном scope и bucket. Обратите внимание: этот инструмент требует наличия Query-сервиса в кластере. |
get_scopes_and_collections_in_bucket | Получить список всех scope-ов и collection-ий в указанном bucket-е |
get_schema_for_collection | Получить структуру collection |
create_scope | Создать новый scope в bucket-е (Couchbase Server 7.6+ и Capella). Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
create_collection | Создать новую collection в существующем scope (Couchbase Server 7.6+ и Capella). Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
delete_scope | Удалить scope и все его collection из bucket-а — необратимо. Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
delete_collection | Удалить collection и все ее документы из scope — необратимо. Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
Инструменты операций KV с документами
| Название инструмента | Описание |
|---|---|
get_document_by_id | Получить документ по ID из указанного scope и collection |
lookup_subdocument | Получить части документа (конкретные поля, проверки существования или подсчеты массивов/объектов) по пути без загрузки всего документа |
upsert_document_by_id | Обновить документ по ID в указанном scope и collection. Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
insert_document_by_id | Вставить новый документ по ID (завершается ошибкой, если документ существует). Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
replace_document_by_id | Заменить существующий документ по ID (завершается ошибкой, если документ не существует). Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
delete_document_by_id | Удалить документ по ID из указанного scope и collection. Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
mutate_subdocument | Изменить части существующего документа (upsert, insert, replace, remove, операции с массивами, счетчики) по пути без перезаписи всего документа. Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
Инструменты запросов и индексирования
| Название инструмента | Описание |
|---|---|
list_indexes | Вывести список всех индексов в кластере с их определениями, с опциональной фильтрацией по bucket, scope, collection и имени индекса. Установите return_raw_index_stats=true, чтобы вернуть необработанную информацию об индексах. |
get_index_advisor_recommendations | Получить рекомендации по индексам от Couchbase Index Advisor для заданного SQL++-запроса для оптимизации производительности запросов |
create_index | Создать скалярный (не векторный) вторичный GSI-индекс на collection. По умолчанию отложенный — вызовите build_index после этого для его построения. Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
build_index | Запустить построение всех отложенных индексов на collection. Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
drop_index | Удалить GSI-индекс (скалярный или векторный) из collection. Отключен по умолчанию, если CB_MCP_READ_ONLY_MODE=true. |
run_sql_plus_plus_query | Выполнить SQL++-запрос в указанном scope. Запросы автоматически ограничиваются указанным bucket-ом и scope-ом, поэтому используйте имена collection напрямую (например, SELECT * FROM users вместо SELECT * FROM bucket.scope.users).CB_MCP_READ_ONLY_MODE по умолчанию равен true, что означает, что все операции записи (KV, Query, управление scope/collection и управление индексами) отключены. Когда он включен, инструменты записи KV, управления collection и индексами не загружаются, а SQL++-запросы, изменяющие данные, блокируются. |
explain_sql_plus_plus_query | Сгенерировать и оценить план EXPLAIN для SQL++-запроса. Возвращает метаданные запроса, извлеченный план и результаты оценки плана. |
Инструменты анализа производительности запросов
| Название инструмента | Описание |
|---|---|
get_longest_running_queries | Получить самые длительные запросы по среднему времени обслуживания |
get_most_frequent_queries | Получить наиболее часто выполняемые запросы |
get_queries_with_largest_response_sizes | Получить запросы с наибольшими размерами ответов |
get_queries_with_large_result_count | Получить запросы с наибольшим количеством результатов |
get_queries_using_primary_index | Получить запросы, использующие первичный индекс (потенциальная проблема производительности) |
get_queries_not_using_covering_index | Получить запросы, не использующие покрывающий индекс |
get_queries_not_selective | Получить запросы, которые не являются селективными (сканирование индекса возвращает значительно больше документов, чем итоговый результат) |
Предварительные требования
- Python 3.10 или выше.
- Запущенный кластер Couchbase. Самый простой способ начать — использовать бесплатный тариф Capella, полностью управляемую версию сервера Couchbase. Вы можете следовать инструкциям, чтобы импортировать один из демонстрационных наборов данных или импортировать собственные данные.
- Установленный uv для запуска сервера.
- Установленный MCP-клиент, такой как Claude Desktop, для подключения сервера к Claude. Инструкции приведены для Claude Desktop и Cursor. Можно использовать и другие MCP-клиенты.
Конфигурация
MCP-сервер можно запускать либо из готового пакета PyPI, либо из исходного кода с помощью uv.
Запуск из PyPI
Мы публикуем готовый пакет PyPI для MCP-сервера.
Конфигурация сервера с использованием готового пакета для MCP-клиентов
Базовая аутентификация
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password"
}
}
}
}
или
mTLS
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_CLIENT_CERT_PATH": "/path/to/client-certificate.pem",
"CB_CLIENT_KEY_PATH": "/path/to/client.key"
}
}
}
}
Примечание: Если в клиенте используются другие MCP-серверы, вы можете добавить его в существующий объект
mcpServers.
Запуск из исходного кода
MCP-сервер можно запустить из исходного кода, используя этот репозиторий.
Клонируйте репозиторий на свой локальный компьютер
git clone https://github.com/couchbase/mcp-server-couchbase.git
Конфигурация сервера с использованием исходного кода для MCP-клиентов
Это общая конфигурация для MCP-клиентов, таких как Claude Desktop, Cursor, Windsurf Editor.
{
"mcpServers": {
"couchbase": {
"command": "uv",
"args": [
"--directory",
"path/to/cloned/repo/mcp-server-couchbase/",
"run",
"src/mcp_server.py"
],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password"
}
}
}
}
Примечание:
path/to/cloned/repo/mcp-server-couchbase/должен быть путем к клонированному репозиторию на вашем локальном компьютере. Не забудьте завершающий слэш в конце!
Примечание: Если в клиенте используются другие MCP-серверы, вы можете добавить его в существующий объект
mcpServers.
Дополнительная конфигурация для MCP-сервера
Сервер можно настроить с помощью переменных окружения или аргументов командной строки:
| Переменная среды | Аргумент CLI | Описание | По умолчанию |
|---|---|---|---|
CB_CONNECTION_STRING | --connection-string | Строка подключения к кластеру Couchbase | Обязательно |
CB_USERNAME | --username | Имя пользователя с доступом к необходимым bucket'ам для базовой аутентификации | Обязательно (или требуются клиентский сертификат и ключ для mTLS) |
CB_PASSWORD | --password | Пароль для базовой аутентификации | Обязательно (или требуются клиентский сертификат и ключ для mTLS) |
CB_CLIENT_CERT_PATH | --client-cert-path | Путь к файлу клиентского сертификата для аутентификации mTLS | Обязательно при использовании mTLS (или требуются имя пользователя и пароль) |
CB_CLIENT_KEY_PATH | --client-key-path | Путь к файлу клиентского ключа для аутентификации mTLS | Обязательно при использовании mTLS (или требуются имя пользователя и пароль) |
CB_CA_CERT_PATH | --ca-cert-path | Путь к корневому сертификату сервера для TLS, если сервер настроен с самозаверяющимся/недоверенным сертификатом. Это не требуется при подключении к Capella | |
CB_MCP_READ_ONLY_MODE | --read-only-mode | Предотвращать все изменения данных (KV, Query, управление scope/collection и индексом). При включении инструменты записи KV, управления коллекциями и индексами не загружаются. | true |
CB_MCP_TRANSPORT | --transport | Режим транспорта: stdio, http, sse | stdio |
CB_MCP_HOST | --host | Хост для режимов транспорта HTTP/SSE | 127.0.0.1 |
CB_MCP_PORT | --port | Порт для режимов транспорта HTTP/SSE | 8000 |
CB_MCP_DISABLED_TOOLS | --disabled-tools | Инструменты для отключения (см. Отключение инструментов) | Нет |
CB_MCP_CONFIRMATION_REQUIRED_TOOLS | --confirmation-required-tools | Инструменты, требующие явного подтверждения пользователя перед выполнением через MCP elicitation (см. Инструменты, требующие запроса/подтверждения) | Нет |
CB_MCP_LOG_LEVEL | --log-level | Уровень логирования для MCP-сервера: off, debug, info, warning, error (см. Логирование) | info |
CB_MCP_LOG_SINKS | --log-sinks | Места назначения логов через запятую: stderr, file или оба (см. Логирование) | stderr |
CB_MCP_LOG_FILE | --log-file | Базовый путь для файлов логов по уровням (используется только при включённом приёмнике file) | mcp_server.log |
CB_MCP_LOG_ROTATION_MAX_SIZE_MB | --log-rotation-max-size-mb | Глобальный максимальный размер в МБ для каждого файла лога перед ротацией, наследуется каждым уровнем, если не переопределён. 0 недопустимо и возвращается к значению по умолчанию с предупреждением при запуске | 1 (1 МБ) |
CB_MCP_LOG_MAX_BYTES | --log-max-bytes | Устарело — используйте CB_MCP_LOG_ROTATION_MAX_SIZE_MB (МБ). Глобальный размер ротации в байтах, по-прежнему поддерживается для обратной совместимости; игнорируется, если также задано CB_MCP_LOG_ROTATION_MAX_SIZE_MB | Не задано |
CB_MCP_LOG_ERROR_ROTATION_MAX_SIZE_MB | --log-error-rotation-max-size-mb | Размер ротации в МБ для файла лога ERROR; переопределяет CB_MCP_LOG_ROTATION_MAX_SIZE_MB для ERROR | Наследует CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_WARNING_ROTATION_MAX_SIZE_MB | --log-warning-rotation-max-size-mb | Размер ротации в МБ для файла лога WARNING; переопределяет CB_MCP_LOG_ROTATION_MAX_SIZE_MB для WARNING | Наследует CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_INFO_ROTATION_MAX_SIZE_MB | --log-info-rotation-max-size-mb | Размер ротации в МБ для файла лога INFO; переопределяет CB_MCP_LOG_ROTATION_MAX_SIZE_MB для INFO | Наследует CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_DEBUG_ROTATION_MAX_SIZE_MB | --log-debug-rotation-max-size-mb | Размер ротации в МБ для файла лога DEBUG; переопределяет CB_MCP_LOG_ROTATION_MAX_SIZE_MB для DEBUG | Наследует CB_MCP_LOG_ROTATION_MAX_SIZE_MB |
CB_MCP_LOG_RETENTION_BACKUP_COUNT | --log-retention-backup-count | Ротированные резервные копии, сохраняемые для каждого файла лога по уровням (без учёта текущего файла), применяются ко всем уровням, если не переопределено. 0 сохраняет только текущий файл (см. Логирование) | 1 |
CB_MCP_LOG_ERROR_RETENTION_BACKUP_COUNT | --log-error-retention-backup-count | Ротированные резервные копии для файла лога ERROR; переопределяет глобальное количество для ERROR | Наследует CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_WARNING_RETENTION_BACKUP_COUNT | --log-warning-retention-backup-count | Ротированные резервные копии для файла лога WARNING; переопределяет глобальное количество для WARNING | Наследует CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_INFO_RETENTION_BACKUP_COUNT | --log-info-retention-backup-count | Ротированные резервные копии для файла лога INFO; переопределяет глобальное количество для INFO | Наследует CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_LOG_DEBUG_RETENTION_BACKUP_COUNT | --log-debug-retention-backup-count | Ротированные резервные копии для файла лога DEBUG; переопределяет глобальное количество для DEBUG | Наследует CB_MCP_LOG_RETENTION_BACKUP_COUNT |
CB_MCP_OAUTH_JWT_JWKS_URI | --oauth-jwks-uri | Конечная точка JWKS поставщика удостоверений для проверки bearer JWT. Включает OAuth при задании с issuer и audience (см. Авторизация OAuth 2.1) | Нет |
CB_MCP_OAUTH_JWT_ISSUER | --oauth-issuer | Ожидаемый JWT iss claim. Требуется для включения OAuth | Нет |
CB_MCP_OAUTH_JWT_AUDIENCE | --oauth-audience | Ожидаемый JWT aud claim. Требуется для включения OAuth | Нет |
CB_MCP_OAUTH_JWT_ALGORITHM | --oauth-algorithm | Алгоритм подписи JWT: один из RS256/384/512, ES256/384/512, PS256/384/512 | RS256 |
CB_MCP_OAUTH_MCP_BASE_URL | --oauth-mcp-base-url | Публичный базовый URL этого сервера. При задании публикует метаданные защищённых ресурсов RFC 9728, чтобы клиенты с поддержкой PRM могли обнаружить IdP | Нет |
CB_MCP_OAUTH_SCOPE_READ_LABEL | --oauth-scope-read-label | Переопределить метку области OAuth, рассматриваемую как доступ «чтение» (рекламируется в PRM и сопоставляется с claim scope/scp токена). Используйте, если ваш IdP не может выдать каноническую форму | couchbase-mcp:read |
CB_MCP_OAUTH_SCOPE_WRITE_LABEL | --oauth-scope-write-label | Переопределить метку области OAuth, рассматриваемую как доступ «запись»; та же семантика, что и метка чтения | couchbase-mcp:write |
Конфигурация режима только для чтения
CB_MCP_READ_ONLY_MODE — единственный переключатель, управляющий операциями записи:
- Когда задано
true(по умолчанию): Все операции записи (KV, Query, управление scope/collection и индексом) отключены. Инструменты записи KV (upsert, insert, replace, delete, sub-document mutate), инструменты записи управления scope/collection (create_scope, create_collection, delete_scope, delete_collection) и инструменты записи индексов (create_index, build_index, drop_index) не загружаются и не будут доступны LLM, а SQL++ запросы, изменяющие данные или структуру, блокируются. - Когда задано
false: Инструменты записи KV, управления scope/collection и индексами загружаются, и SQL++ запросы на изменение данных/структуры разрешены.
Это рекомендуемый безопасный вариант по умолчанию для предотвращения непреднамеренных изменений данных LLM.
Примечание: Для аутентификации вам нужны либо имя пользователя и пароль, либо пути клиентского сертификата и ключа. При желании вы можете указать путь к корневому сертификату ЦС, который будет использоваться для проверки сертификатов сервера. Если указаны и путь клиентского сертификата/ключа, и имя пользователя с паролем, для аутентификации будут использоваться клиентские сертификаты.
Отключение инструментов
Вы можете отключить определённые инструменты, чтобы предотвратить их загрузку и предоставление MCP-клиенту. Отключённые инструменты не появятся при обнаружении инструментов и не могут быть вызваны LLM.
Поддерживаемые форматы
Список через запятую:
# Environment variable
CB_MCP_DISABLED_TOOLS="upsert_document_by_id, delete_document_by_id"
# Command line
uvx couchbase-mcp-server --disabled-tools upsert_document_by_id, delete_document_by_id
Путь к файлу (по одному имени инструмента в строке):
# Environment variable
CB_MCP_DISABLED_TOOLS=disabled_tools.txt
# Command line
uvx couchbase-mcp-server --disabled-tools disabled_tools.txt
Формат файла (например, disabled_tools.txt):
# Write operations
upsert_document_by_id
delete_document_by_id
# Index advisor
get_index_advisor_recommendations
Строки, начинающиеся с #, считаются комментариями и игнорируются.
Примеры конфигурации MCP-клиента
Использование списка через запятую:
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password",
"CB_MCP_DISABLED_TOOLS": "upsert_document_by_id,delete_document_by_id"
}
}
}
}
Использование пути к файлу (рекомендуется для многих инструментов):
{
"mcpServers": {
"couchbase": {
"command": "uvx",
"args": ["couchbase-mcp-server"],
"env": {
"CB_CONNECTION_STRING": "couchbases://connection-string",
"CB_USERNAME": "username",
"CB_PASSWORD": "password",
"CB_MCP_DISABLED_TOOLS": "/path/to/disabled_tools.txt"
}
}
}
}
Важное замечание по безопасности
Предупреждение: Отключение инструментов само по себе не гарантирует, что определённые операции не могут быть выполнены. Разрешения RBAC (управление доступом на основе ролей) пользователя базовой базы данных являются авторитетным контролем безопасности.
Например, даже если вы отключите
upsert_document_by_idиdelete_document_by_id, изменения данных всё равно могут происходить через инструментrun_sql_plus_plus_queryс использованием SQL++ DML-операторов (INSERT, UPDATE, DELETE, MERGE), если только:
CB_MCP_READ_ONLY_MODEне установлено вtrue(по умолчанию), ИЛИ- У пользователя базы данных нет необходимых разрешений RBAC для изменения данных
Рекомендация: Всегда настраивайте соответствующие разрешения RBAC для учётных данных пользователя Couchbase как основную меру безопасности. Используйте отключение инструментов как дополнительный уровень для направления поведения LLM и уменьшения поверхности атаки, а не как единственный контроль безопасности.
Запрос/подтверждение для вызовов инструментов
Вы можете требовать явного подтверждения пользователя для конкретных инструментов перед выполнением (когда MCP-клиент поддерживает elicitation).
CB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmation-required-tools поддерживает следующие форматы:
- Список через запятую
- Путь к файлу (по одному имени инструмента в строке, поддерживаются комментарии
#)
Пример:
# Environment variable
CB_MCP_CONFIRMATION_REQUIRED_TOOLS="delete_document_by_id,replace_document_by_id"
# Command line
uvx couchbase-mcp-server --confirmation-required-tools delete_document_by_id,replace_document_by_id
При вызове перечисленного инструмента:
- Если клиент поддерживает elicitation, пользователю предлагается подтвердить.
- Если клиент не поддерживает elicitation, инструмент выполняется без подтверждения для обратной совместимости.
Вы также можете проверить версию сервера с помощью:
uvx couchbase-mcp-server --version
Логирование
MCP-сервер по умолчанию пишет логи в stderr. Логирование настраивается с помощью переменных CB_MCP_LOG_*, перечисленных в Дополнительная конфигурация:
CB_MCP_LOG_LEVEL— сколько логируется:info(по умолчанию) логирует события жизненного цикла и вызовы инструментов,debugдобавляет подробные внутренние детали, аoffотключает всё логирование.CB_MCP_LOG_SINKS— куда идут логи:stderr(по умолчанию), ротация файлов по уровням (file) или оба. При использованииfileзаписывается один файл на уровень (например,mcp_server.info.logиmcp_server.error.log) по пути, заданномуCB_MCP_LOG_FILE.- Размер ротации —
CB_MCP_LOG_ROTATION_MAX_SIZE_MBзадаёт глобальный размер (в МБ), при котором каждый файл уровня ротируется. Переопределите отдельные уровни с помощьюCB_MCP_LOG_<LEVEL>_ROTATION_MAX_SIZE_MB(ERROR/WARNING/INFO/DEBUG), также в МБ, которые наследуют глобальное значение, если не заданы. Размер0(глобальный или для уровня) недопустим и возвращается к значению по умолчанию (1 МБ) с предупреждением при запуске.CB_MCP_LOG_MAX_BYTES(в байтах) — устарел, но по-прежнему поддерживается для обратной совместимости; он игнорируется, если также заданCB_MCP_LOG_ROTATION_MAX_SIZE_MB, и выводит предупреждение об устаревании при запуске. - Хранение —
CB_MCP_LOG_RETENTION_BACKUP_COUNTопределяет, сколько ротированных резервных копий хранится для каждого уровня (без учёта текущего файла); значение по умолчанию1сохраняет прежнее поведение. Переопределите отдельные уровни с помощьюCB_MCP_LOG_<LEVEL>_RETENTION_BACKUP_COUNT(ERROR/WARNING/INFO/DEBUG), которые наследуют глобальное значение, если не заданы. Установите значение0, чтобы хранить только текущий файл для этого уровня — он всё равно ограничен размером ротации (сбрасывается при перекате, а не резервируется). - Снимок конфигурации сервера — когда активен приёмник
file, одноразовая запись (ОС, Python, версии зависимостей, транспорт, разрешённая конфигурация логирования и отредактированная конфигурация сервера) записывается в формате JSON в специальный файлmcp_server_config.log.json(производный от базовогоCB_MCP_LOG_FILE). Он перезаписывается при каждом запуске, поэтому поддержка всегда имеет текущую конфигурацию, и она никогда не выходит за пределы ротационного лога.
# Enable debug logging to both stderr and rotating per-level files
uvx couchbase-mcp-server --log-level=debug --log-sinks=stderr,file
# Keep 30 rotated ERROR backups but only the live DEBUG file
uvx couchbase-mcp-server --log-level=debug --log-sinks=file \
--log-error-retention-backup-count=30 --log-debug-retention-backup-count=0
Для получения дополнительных сведений см. документацию.
Конфигурация для конкретного клиента
Claude Desktop
Выполните следующие шаги, чтобы использовать Couchbase MCP-сервер с MCP-клиентом Claude Desktop:
-
MCP-сервер теперь можно добавить в Claude Desktop, отредактировав файл конфигурации. Более подробные инструкции можно найти в кратком руководстве по MCP.
- На Mac файл конфигурации находится по адресу
~/Library/Application Support/Claude/claude_desktop_config.json - На Windows файл конфигурации находится по адресу
%APPDATA%\Claude\claude_desktop_config.jsonОткройте файл конфигурации и добавьте конфигурацию в разделmcpServers.
- На Mac файл конфигурации находится по адресу
-
Перезапустите Claude Desktop, чтобы применить изменения.
-
Теперь вы можете использовать сервер в Claude Desktop для выполнения запросов к кластеру Couchbase на естественном языке и выполнения операций CRUD над документами.
Журналы
Журналы Claude Desktop можно найти в следующих местах:
- MacOS: ~/Library/Logs/Claude
- Windows: %APPDATA%\Claude\Logs
Журналы можно использовать для диагностики проблем с подключением или других проблем с конфигурацией вашего MCP-сервера. Для получения более подробной информации обратитесь к официальной документации.
Cursor
Выполните следующие шаги, чтобы использовать MCP-сервер Couchbase с Cursor:
-
Установите Cursor на свой компьютер.
-
В Cursor перейдите в Cursor > Cursor Settings > Tools & Integrations > MCP Tools. Также ознакомьтесь с документацией по настройке конфигурации MCP-сервера от Cursor.
-
Укажите ту же конфигурацию вручную или воспользуйтесь ссылкой Install in Cursor для установки в один клик. Возможно, вам потребуется добавить конфигурацию сервера под родительским ключом
mcpServers.Примечание: Ссылка для установки использует значения-заглушки из примеров конфигурации выше. Обновите строку подключения и учетные данные после установки.
-
Сохраните конфигурацию.
-
Вы увидите couchbase как добавленный сервер в списке MCP-серверов. Обновите список, чтобы проверить, что сервер включен.
-
Теперь вы можете использовать MCP-сервер Couchbase в Cursor для выполнения запросов к вашему кластеру Couchbase на естественном языке и выполнения операций CRUD над документами.
Для получения более подробной информации об интеграции MCP с Cursor обратитесь к официальной документации Cursor MCP.
Журналы
В нижней панели Cursor нажмите «Output» и выберите «Cursor MCP» из раскрывающегося меню, чтобы просмотреть журналы сервера. Это может помочь диагностировать проблемы с подключением или другие проблемы с конфигурацией вашего MCP-сервера.
Windsurf Editor
Выполните следующие шаги, чтобы использовать MCP-сервер Couchbase с Windsurf Editor.
-
Установите Windsurf Editor на свой компьютер.
-
В Windsurf Editor перейдите в Command Palette > Windsurf MCP Configuration Panel или Windsurf - Settings > Advanced > Cascade > Model Context Protocol (MCP) Servers. Для получения более подробной информации о конфигурации обратитесь к официальной документации.
-
Нажмите Add Server, а затем Add custom server. В открывшейся в редакторе конфигурации добавьте конфигурацию MCP-сервера Couchbase из приведенной выше.
-
Сохраните конфигурацию.
-
Вы увидите couchbase как добавленный сервер в списке MCP Servers в разделе Advanced Settings. Обновите список, чтобы проверить, что сервер включен.
-
Теперь вы можете использовать MCP-сервер Couchbase в Windsurf Editor для выполнения запросов к вашему кластеру Couchbase на естественном языке и выполнения операций CRUD над документами.
Для получения более подробной информации об интеграции MCP с Windsurf Editor обратитесь к официальной документации Windsurf MCP.
VS Code
Выполните следующие шаги, чтобы использовать MCP-сервер Couchbase с VS Code.
-
Установите VS Code
-
Ниже приведены несколько способов настройки MCP-сервера.
-
Для конфигурации сервера рабочей области:
- Создайте новый файл в рабочей области как .vscode/mcp.json.
- Добавьте конфигурацию и сохраните файл.
-
Для глобальной конфигурации сервера:
- Выполните команду MCP: Open User Configuration в Command Palette (
Ctrl+Shift+PилиCmd+Shift+P) - Добавьте конфигурацию и сохраните файл.
- Выполните команду MCP: Open User Configuration в Command Palette (
-
Примечание: VS Code использует
serversкак свойство JSON верхнего уровня в файлах mcp.json для определения серверов MCP (Model Context Protocol), тогда как Cursor используетmcpServersдля эквивалентной конфигурации. Ознакомьтесь с конфигурациями клиентов VS Code для получения дополнительных изменений или подробностей. Пример конфигурации VS Code приведен ниже.{ "servers": { "couchbase": { "command": "uvx", "args": ["couchbase-mcp-server"], "env": { "CB_CONNECTION_STRING": "couchbases://connection-string", "CB_USERNAME": "username", "CB_PASSWORD": "password" } } } }
-
-
После сохранения файла сервер запускается, и появляется небольшой список действий с
Running|Stop|n Tools|More... -
Выберите опции из списка, чтобы
Start/Stop/управлять сервером. -
Теперь вы можете использовать MCP-сервер Couchbase в VS Code для выполнения запросов к вашему кластеру Couchbase на естественном языке и выполнения операций CRUD над документами.
Журналы:
В Command Palette (Ctrl+Shift+P или Cmd+Shift+P):
- выполните команду MCP: List Servers и выберите сервер couchbase
- выберите «Show Output», чтобы просмотреть его журналы на вкладке Output.
JetBrains IDEs
Выполните следующие шаги, чтобы использовать MCP-сервер Couchbase с JetBrains IDEs
- Установите любую из JetBrains IDEs
- Установите любой из плагинов JetBrains - AI Assistant или Junie
- Перейдите в Settings > Tools > AI Assistant или Junie > MCP Server
- Нажмите «+», чтобы добавить конфигурацию MCP-сервера Couchbase, и нажмите Save.
- Вы увидите MCP-сервер Couchbase в списке серверов. После нажатия Apply MCP-сервер Couchbase запустится, и при наведении на статус отобразятся все доступные инструменты.
- Теперь вы можете использовать MCP-сервер Couchbase в JetBrains IDEs для выполнения запросов к вашему кластеру Couchbase на естественном языке и выполнения операций CRUD над документами.
Журналы: Файл журнала можно найти в Help > Show Log in Finder (Explorer) > mcp > couchbase
Режим транспортного протокола Streamable HTTP
MCP-сервер может работать в режиме транспортного протокола Streamable HTTP, который позволяет нескольким клиентам подключаться к одному экземпляру сервера через HTTP. Проверьте, поддерживает ли ваш MCP-клиент transport streamable http, прежде чем пытаться подключиться к MCP-серверу в этом режиме.
Примечание: В этом транспорте поддерживается авторизация OAuth 2.1. См. Авторизация OAuth 2.1. Если OAuth не настроен, HTTP-конечная точка не аутентифицирована.
Использование
По умолчанию MCP-сервер работает на порту 8000, но его можно настроить с помощью переменной окружения --port или CB_MCP_PORT.
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=http
Сервер будет доступен по адресу http://localhost:8000/mcp. Это можно использовать в MCP-клиентах, поддерживающих режим транспортного протокола streamable http, таких как Cursor.
Конфигурация MCP-клиента
{
"mcpServers": {
"couchbase-http": {
"url": "http://localhost:8000/mcp"
}
}
}
Режим транспортного протокола SSE
Существует возможность запустить MCP-сервер в режиме транспортного протокола Server-Sent Events (SSE).
Примечание: Режим SSE был объявлен устаревшим в MCP. Мы поддерживаем Streamable HTTP.
SSE: Использование
По умолчанию MCP-сервер работает на порту 8000, но его можно настроить с помощью переменной окружения --port или CB_MCP_PORT.
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--read-only-mode=true \
--transport=sse
Сервер будет доступен по адресу http://localhost:8000/sse. Это можно использовать в MCP-клиентах, поддерживающих режим транспортного протокола SSE, таких как Cursor.
SSE: Конфигурация MCP-клиента
{
"mcpServers": {
"couchbase-sse": {
"url": "http://localhost:8000/sse"
}
}
}
Авторизация OAuth 2.1
При работе с --transport=http MCP-сервер может выступать в роли сервера ресурсов OAuth 2.1: он проверяет входящие Bearer JWT-токены с использованием JWKS вашего поставщика удостоверений. Он не зависит от конкретного поставщика (любой поставщик OAuth 2.1 / OIDC, публикующий JWKS — Auth0, Okta, Keycloak, AWS Cognito, Microsoft Entra и т. д.) и не выпускает токены и не управляет пользователями. Параметры OAuth игнорируются на stdio.
OAuth настраивается с помощью переменных CB_MCP_OAUTH_*, перечисленных в разделе Дополнительная конфигурация:
- OAuth активируется только когда заданы все три переменные:
CB_MCP_OAUTH_JWT_JWKS_URI,CB_MCP_OAUTH_JWT_ISSUERиCB_MCP_OAUTH_JWT_AUDIENCE; если задана только часть из них, произойдет сбой при запуске. - Установка
CB_MCP_OAUTH_MCP_BASE_URLдополнительно публикует метаданные защищенного ресурса RFC 9728, чтобы PRM-совместимые клиенты могли обнаружить сервер авторизации. - Доступ ограничен двумя областями (scopes), считываемыми из утверждения
scope/scpтокена:couchbase-mcp:read(инструменты чтения, включая SQL++) иcouchbase-mcp:write(инструменты записи: мутации KV, управление областями/коллекциями и управление индексами). Полный доступ требует обеих областей. Если ваш IdP не может выдавать эти канонические метки, переопределите их с помощьюCB_MCP_OAUTH_SCOPE_READ_LABEL/CB_MCP_OAUTH_SCOPE_WRITE_LABEL.
uvx couchbase-mcp-server \
--connection-string='<couchbase_connection_string>' \
--username='<database_username>' \
--password='<database_password>' \
--transport=http \
--oauth-jwks-uri='https://auth.example.com/.well-known/jwks.json' \
--oauth-issuer='https://auth.example.com/' \
--oauth-audience='couchbase-mcp-server' \
--oauth-mcp-base-url='<public_base_url_of_this_server>'
Для получения полной информации см. документацию.
Docker-образ
MCP-сервер также может быть собран и запущен как Docker-контейнер. Предварительно собранные образы можно найти на DockerHub или загрузить через docker pull docker.io/couchbase/mcp-server:latest.
Кроме того, мы являемся частью Docker MCP Catalog.
Сборка образа
docker build -t mcp/couchbase-src .
Сборка с аргументами
Если вы хотите выполнить сборку с аргументами сборки для хеша коммита и времени сборки, вы можете выполнить сборку, используя:docker build --build-arg GIT_COMMIT_HASH=$(git rev-parse HEAD) \
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
-t mcp/couchbase-src .
Кроме того, вы можете использовать предоставленный скрипт сборки:
# Build with default image name (mcp/couchbase-src)
./build.sh
# Build with custom image name
./build.sh my-custom/image-name
Этот скрипт автоматически:
- Принимает необязательный параметр имени образа (по умолчанию
mcp/couchbase-src) - Генерирует хеш git-коммита и отметку времени сборки
- Создает несколько полезных тегов (
latest,<short-commit>) - Показывает информацию о сборке и результаты
- Использует те же аргументы, что и сборки CI/CD
Проверка меток образа:
# View git commit hash in image
docker inspect --format='{{index .Config.Labels "org.opencontainers.image.revision"}}' mcp/couchbase-src:latest
# View all metadata labels
docker inspect --format='{{json .Config.Labels}}' mcp/couchbase-src:latest
Запуск
MCP-сервер может быть запущен с переменными окружения, используемыми для настройки параметров Couchbase. Переменные окружения такие же, как описано в разделе Дополнительная конфигурация.
Независимый Docker-контейнер
docker run --rm -i \
-e CB_CONNECTION_STRING='<couchbase_connection_string>' \
-e CB_USERNAME='<database_user>' \
-e CB_PASSWORD='<database_password>' \
-e CB_MCP_TRANSPORT='<http|sse|stdio>' \
-e CB_MCP_READ_ONLY_MODE='<true|false>' \
-e CB_MCP_CONFIRMATION_REQUIRED_TOOLS='delete_document_by_id' \
-e CB_MCP_PORT=9001 \
-e CB_MCP_HOST=0.0.0.0 \
-p 9001:9001 \
mcp/couchbase-src
Переменные окружения CB_MCP_PORT и CB_MCP_HOST применимы только в случае режимов HTTP-транспорта, таких как http и sse.
Docker: Конфигурация MCP-клиента
Docker-образ можно использовать в режиме транспорта stdio со следующей конфигурацией.
{
"mcpServers": {
"couchbase-mcp-docker": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"CB_CONNECTION_STRING=<couchbase_connection_string>",
"-e",
"CB_USERNAME=<database_user>",
"-e",
"CB_PASSWORD=<database_password>",
"mcp/couchbase-src"
]
}
}
}
Примечания
- Значение
couchbase_connection_stringзависит от того, работает ли сервер Couchbase на том же хост-компьютере, в другом Docker-контейнере или на удаленном хосте. Если ваш сервер Couchbase работает на вашем хост-компьютере, ваша строка подключения, скорее всего, будет иметь видcouchbase://host.docker.internal. Подробности см. в документации docker. - Вы можете указать сетевые настройки контейнера с помощью параметра
--network=<your_network>. Выбранная сеть зависит от вашего окружения; по умолчанию используетсяbridge. Подробности см. в разделе сетевые драйверы в docker.
Риски, связанные с LLM
- Использование больших языковых моделей и аналогичных технологий сопряжено с рисками, включая возможность получения неточных или вредоносных результатов.
- Couchbase не проверяет и не оценивает качество или точность таких результатов, и такие результаты могут не отражать мнение Couchbase.
- Вы несете единоличную ответственность за решение об использовании больших языковых моделей и связанных технологий, а также за соблюдение любых условий лицензий, условий использования и политик вашей организации, регулирующих их использование.
Сбор данных об использовании
Этот продукт автоматически собирает данные об использовании и производительности (такие как название продукта и версия) и информацию о браузере (такую как IP-адрес) (совместно именуемые «Данные об использовании»). Couchbase использует Данные об использовании, а также другие данные, которые вы можете предоставить Couchbase (такие как ваше имя пользователя или адрес электронной почты), для разработки и улучшения наших продуктов, а также для информирования наших программ продаж и маркетинга. Мы не получаем доступ к данным, которые вы храните в продуктах Couchbase, и не собираем их. Мы используем Данные об использовании для понимания общих моделей использования и повышения полезности наших продуктов для вас. Для получения дополнительной информации о том, как Couchbase собирает, защищает и обрабатывает информацию, пожалуйста, обратитесь к Политике конфиденциальности Couchbase, доступной по адресу https://www.couchbase.com/privacy-policy.
Советы по устранению неполадок
- Убедитесь, что путь к репозиторию вашего MCP-сервера указан правильно в конфигурации, если вы запускаете его из исходного кода.
- Проверьте, что ваша строка подключения Couchbase, имя пользователя базы данных, пароль или путь к сертификатам указаны верно.
- Если вы используете Couchbase Capella, убедитесь, что кластер доступен с машины, на которой запущен MCP-сервер.
- Убедитесь, что у пользователя базы данных есть соответствующие права доступа как минимум к одному bucket.
- Подтвердите, что менеджер пакетов
uvправильно установлен и доступен. Возможно, вам потребуется указать абсолютный путь кuv/uvxв полеcommandв конфигурации. - Проверьте журналы на наличие ошибок или предупреждений, которые могут указывать на проблемы с MCP-сервером. Расположение журналов зависит от вашего MCP-клиента.
- Если вы наблюдаете проблемы при запуске MCP-сервера из исходного кода после обновления локального репозитория MCP-сервера, попробуйте выполнить
uv syncдля обновления зависимостей.
Интеграционное тестирование
Мы предоставляем высокоуровневые интеграционные тесты MCP для проверки того, что сервер предоставляет ожидаемые инструменты и что их можно вызывать с использованием демонстрационного кластера Couchbase.
- Экспортируйте учетные данные демонстрационного кластера:
CB_CONNECTION_STRINGCB_USERNAMECB_PASSWORD- Необязательно:
CB_MCP_TEST_BUCKET(bucket для проверки во время тестов)
- Запустите тесты:
uv run pytest tests/ -v
👩💻 Вклад в проект
Мы приветствуем вклад сообщества! Будь то исправление ошибок, добавление функций или улучшение документации — ваша помощь ценится.
Если вам нужна помощь, вы нашли ошибку или хотите внести улучшения, лучшее место для этого — открыть вопрос на GitHub.
Для разработчиков
Если вы заинтересованы в написании кода или настройке среды разработки:
📖 См. CONTRIBUTING.md для подробных инструкций по настройке для разработчиков, включая:
- Настройка среды разработки с помощью
uv - Линтинг и форматирование кода с помощью Ruff
- Установка pre-commit хуков
- Обзор структуры проекта
- Рабочий процесс и практики разработки
Быстрый старт для желающих внести вклад
# Clone and setup
git clone https://github.com/couchbase/mcp-server-couchbase.git
cd mcp-server-couchbase
# Install with development dependencies
uv sync --extra dev
# Install pre-commit hooks
uv run pre-commit install
# Run linting
./scripts/lint.sh
📢 Политика поддержки
Мы искренне ценим ваш интерес к этому проекту! Этот проект поддерживается сообществом Couchbase, что означает, что он не поддерживается официально нашей командой поддержки. Тем не менее, наши инженеры активно следят за этим репозиторием и будут стараться решать проблемы по мере возможностей.
Наш портал поддержки не может помочь с запросами, связанными с этим проектом, поэтому мы просим все вопросы задавать на GitHub.
Ваше сотрудничество помогает нам двигаться вперёд вместе — спасибо!