# io.github.couchbase/mcp-server-couchbase (oci · docker.io/couchbase/mcp-server:1.0.0)

Couchbase Model Context Protocol Server to interact with Couchbase clusters

- Trust score: 39/100 (low)
- Change this week: −1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- oci · `docker.io/couchbase/mcp-server:1.0.0`: 39/100 (this document), [markdown](https://verifymcp.io/servers/couchbase-mcp-server-couchbase/docker-io-couchbase-mcp-server-1-0-0.md), [page](https://verifymcp.io/servers/couchbase-mcp-server-couchbase/docker-io-couchbase-mcp-server-1-0-0)
- pypi · `couchbase-mcp-server`: 21/100, [markdown](https://verifymcp.io/servers/couchbase-mcp-server-couchbase/couchbase-mcp-server.md), [page](https://verifymcp.io/servers/couchbase-mcp-server-couchbase/couchbase-mcp-server)

## Channel facts

- Registry: `oci`
- Package: `docker.io/couchbase/mcp-server:1.0.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - CVE data not yet available for this package.
  - Install-script risk not yet assessed.
  - Dependency-health data not yet available.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 37 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1449 tokens (~72/item across 20 items; 20 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 77/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 20% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add couchbase-mcp-server-couchbase -- docker run --rm -i docker.io/couchbase/mcp-server:1.0.0
```

### Codex

```bash
codex mcp add couchbase-mcp-server-couchbase -- docker run --rm -i docker.io/couchbase/mcp-server:1.0.0
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "couchbase-mcp-server-couchbase": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "docker.io/couchbase/mcp-server:1.0.0"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  couchbase-mcp-server-couchbase:
    command: "docker"
    args: ["run", "--rm", "-i", "docker.io/couchbase/mcp-server:1.0.0"]
```

### Other

```json
{
  "mcpServers": {
    "couchbase-mcp-server-couchbase": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/couchbase/mcp-server:1.0.0"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 39, +3)

- [functional improvement] Stability: unverified → 0.23

### 2026-07-31 (score 36, −4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 40, +29)

- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: good
- [functional] First check of Schema quality: pass
- [functional] First check of Tool coverage: 20
- [functional] First check of Schema quality: fail

### 2026-07-26 (score 11)

First indexed and scored.

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (20)

### `get_buckets_in_cluster` (~23 tokens)

Get the names of all the accessible buckets in the cluster.

Output parameters:

- `result` (array)

### `get_server_configuration_status` (~37 tokens)

Get the server status and configuration without establishing connection.
This tool can be used to verify if the server is running and check the configuration.

### `test_cluster_connection` (~82 tokens)

Test the connection to Couchbase cluster and optionally to a bucket.
This tool verifies the connection to the Couchbase cluster and bucket by establishing the connection if it is not already established.
If bucket name is not provided, it will not try to connect to the bucket specified in the MCP server settings.
Returns connection status and basic cluster information.

Input parameters:

- `bucket_name`

### `get_scopes_and_collections_in_bucket` (~50 tokens)

Get the names of all scopes and collections in the bucket.
Returns a dictionary with scope names as keys and lists of collection names as values.

Input parameters:

- `bucket_name` (string, required)

### `get_collections_in_scope` (~40 tokens)

Get the names of all collections in the given scope and bucket.

Input parameters:

- `bucket_name` (string, required)
- `scope_name` (string, required)

Output parameters:

- `result` (array)

### `get_scopes_in_bucket` (~30 tokens)

Get the names of all scopes in the given bucket.

Input parameters:

- `bucket_name` (string, required)

Output parameters:

- `result` (array)

### `get_cluster_health_and_services` (~122 tokens)

Get cluster health status and list of all running services.

This tool provides health monitoring by:
\- Getting health status of all running services with latency information (via ping)
\- Listing all services running on the cluster with their endpoints
\- Showing connection status and node information for each service

If bucket_name is provided, it actively pings services from the perspective of the bucket.
Otherwise, it uses cluster-level ping to get the health status of the cluster.

Returns:
\- Cluster health status with service-level connection details and latency measurements

Input parameters:

- `bucket_name`

### `get_document_by_id` (~68 tokens)

Get a document by its ID from the specified scope and collection.
If the document is not found, it will raise an exception.

Input parameters:

- `bucket_name` (string, required)
- `collection_name` (string, required)
- `document_id` (string, required)
- `scope_name` (string, required)

### `get_schema_for_collection` (~67 tokens)

Get the schema for a collection in the specified scope.
Returns a dictionary with the collection name and the schema returned by running INFER query on the Couchbase collection.

Input parameters:

- `bucket_name` (string, required)
- `collection_name` (string, required)
- `scope_name` (string, required)

### `run_sql_plus_plus_query` (~162 tokens)

Run a SQL++ query on a scope and return the results as a list of JSON objects.

The query will be run on the specified scope in the specified bucket.
The query should use collection names directly without bucket/scope prefixes, as the scope context is automatically set.

Use ``named_parameters`` to bind values to ``$name`` placeholders in the
query instead of concatenating user input into the statement. This prevents
SQL++ injection

Example:
    query = "SELECT * FROM users WHERE age > 18"
    # Incorrect: "SELECT * FROM bucket.scope.users WHERE age > 18"

Input parameters:

- `bucket_name` (string, required)
- `named_parameters`
- `query` (string, required)
- `scope_name` (string, required)

Output parameters:

- `result` (array)

### `explain_sql_plus_plus_query` (~88 tokens)

Generate and evaluate an EXPLAIN plan for a SQL++ query. It provides information about the execution plan for the query.

The EXPLAIN statement is run in the specified scope in the specified bucket.
It returns query metadata along with an extracted plan and plan evaluation.

Input parameters:

- `bucket_name` (string, required)
- `query` (string, required)
- `scope_name` (string, required)

### `get_index_advisor_recommendations` (~169 tokens)

Get index recommendations from Couchbase Index Advisor for a given SQL++ query.

The Index Advisor analyzes the query and provides recommendations for optimal indexes.
This tool works with SELECT, UPDATE, DELETE, or MERGE queries.
The queries will be run on the specified scope in the specified bucket.

Returns a dictionary with:
\- current_used_indexes: Array of currently used indexes (if any)
\- recommended_indexes: Array of recommended secondary indexes (if any)
\- recommended_covering_indexes: Array of recommended covering indexes (if any)

Each index object contains:
\- index: The CREATE INDEX SQL++ command
\- statements: Array of statement objects with the query and run count

Input parameters:

- `bucket_name` (string, required)
- `query` (string, required)
- `scope_name` (string, required)

### `list_indexes` (~205 tokens)

List indexes in the cluster with optional filtering by bucket, scope, collection, and index name.

Filters must be provided hierarchically: scope requires bucket, collection requires both, index requires all three.
Set ``return_raw_index_stats=True`` to get the unprocessed source row for each index.

Each result contains: name, definition (CREATE INDEX statement), status, isPrimary, bucket, scope, collection, lastScanTime.
If a required field is missing, the entry contains warning and raw_index_stats instead.

Source depends on cluster version: v8+ queries ``system:indexes`` via the
query service (RBAC-scoped — the connected user sees only indexes on
keyspaces they can access); older clusters fall back to the admin-level
Index Service REST API ``/getIndexStatus``.

Input parameters:

- `bucket_name`
- `collection_name`
- `index_name`
- `return_raw_index_stats` (boolean)
- `scope_name`

Output parameters:

- `result` (array)

### `get_queries_not_selective` (~43 tokens)

Get queries that are not very selective from the system:completed_requests catalog.

Input parameters:

- `limit` (integer): Number of queries to return (default: 10)

Output parameters:

- `result` (array)

### `get_queries_not_using_covering_index` (~46 tokens)

Get queries that don't use a covering index from the system:completed_requests catalog.

Input parameters:

- `limit` (integer): Number of queries to return (default: 10)

Output parameters:

- `result` (array)

### `get_queries_using_primary_index` (~43 tokens)

Get queries that use a primary index from the system:completed_requests catalog.

Input parameters:

- `limit` (integer): Number of queries to return (default: 10)

Output parameters:

- `result` (array)

### `get_queries_with_large_result_count` (~44 tokens)

Get queries with the largest result counts from the system:completed_requests catalog.

Input parameters:

- `limit` (integer): Number of queries to return (default: 10)

Output parameters:

- `result` (array)

### `get_queries_with_largest_response_sizes` (~45 tokens)

Get queries with the largest response sizes from the system:completed_requests catalog.

Input parameters:

- `limit` (integer): Number of queries to return (default: 10)

Output parameters:

- `result` (array)

### `get_longest_running_queries` (~42 tokens)

Get the N longest running queries from the system:completed_requests catalog.

Input parameters:

- `limit` (integer): Number of queries to return (default: 10)

Output parameters:

- `result` (array)

### `get_most_frequent_queries` (~43 tokens)

Get the N most frequent queries from the system:completed_requests catalog.

Input parameters:

- `limit` (integer): Number of queries to return (default: 10)

Output parameters:

- `result` (array)

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/couchbase-mcp-server-couchbase/docker-io-couchbase-mcp-server-1-0-0#diagnostics

## Score history

- 2026-08-03: 39
- 2026-08-02: 36
- 2026-08-01: 36
- 2026-07-31: 36
- 2026-07-30: 40
- 2026-07-29: 40
- 2026-07-28: 40
- 2026-07-27: 40
- 2026-07-26: 11

## Links

- Repository: https://github.com/couchbase/mcp-server-couchbase
- Website: https://mcp-server.couchbase.com/
- Changelog RSS feed: https://verifymcp.io/servers/couchbase-mcp-server-couchbase/docker-io-couchbase-mcp-server-1-0-0/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/couchbase-mcp-server-couchbase/docker-io-couchbase-mcp-server-1-0-0/changelog.json
- HTML version of this page: https://verifymcp.io/servers/couchbase-mcp-server-couchbase/docker-io-couchbase-mcp-server-1-0-0
