io.github.Couchbase-Ecosystem/mcp-server-couchbase
Couchbase Model Context Protocol Server to interact with Couchbase clusters
★ 29Apache-2.0devtools
Install
Config snippet generator goes here (5 client tabs)
README
# Couchbase MCP Server An [MCP](https://modelcontextprotocol.io/) server implementation of Couchbase that allows LLMs to directly interact with Couchbase clusters. [](https://opensource.org/licenses/Apache-2.0) [](https://www.python.org/downloads/) [](https://pypi.org/project/couchbase-mcp-server/) [](https://mseep.ai/app/13fce476-0e74-4b1e-ab82-1df2a3204809) [](https://archestra.ai/mcp-catalog/couchbase-ecosystem__mcp-server-couchbase) <a href="https://glama.ai/mcp/servers/@Couchbase-Ecosystem/mcp-server-couchbase"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@Couchbase-Ecosystem/mcp-server-couchbase/badge" alt="Couchbase Server MCP server" /> </a> <!-- mcp-name: io.github.Couchbase-Ecosystem/mcp-server-couchbase --> ## Features/Tools ### Cluster setup & health tools | Tool Name | Description | |-----------|-------------| | `get_server_configuration_status` | Get the status of the MCP server | | `test_cluster_connection` | Check the cluster credentials by connecting to the cluster | | `get_cluster_health_and_services` | Get cluster health status and list of all running services | ### Data model & schema discovery tools | Tool Name | Description | |-----------|-------------| | `get_buckets_in_cluster` | Get a list of all the buckets in the cluster | | `get_scopes_in_bucket` | Get a list of all the scopes in the specified bucket | | `get_collections_in_scope` | Get a list of all the collections in a specified scope and bucket. Note that this tool requires the cluster to have Query service. | | `get_scopes_and_collections_in_bucket` | Get a list of all the scopes and collections in the specified bucket | | `get_schema_for_collection` | Get the structure for a collection | ### Document KV operations tools | Tool Name | Description | |-----------|-------------| | `get_document_by_id` | Get a document by ID from a specified scope and collection | | `upsert_document_by_id` | Upsert a document by ID to a specified scope and collection. **Disabled by default when `CB_MCP_READ_ONLY_MODE=true`.** | | `insert_document_by_id` | Insert a new document by ID (fails if document exists). **Disabled by default when `CB_MCP_READ_ONLY_MODE=true`.** | | `replace_document_by_id` | Replace an existing document by ID (fails if document doesn't exist). **Disabled by default when `CB_MCP_READ_ONLY_MODE=true`.** | | `delete_document_by_id` | Delete a document by ID from a specified scope and collection. **Disabled by default when `CB_MCP_READ_ONLY_MODE=true`.** | ### Query and indexing tools | Tool Name | Description | |-----------|-------------| | `list_indexes` | List all indexes in the cluster with their definitions, with optional filtering by bucket, scope, collection and index name. | | `get_index_advisor_recommendations` | Get index recommendations from Couchbase Index Advisor for a given SQL++ query to optimize query performance | | `run_sql_plus_plus_query` | Run a [SQL++ query](https://www.couchbase.com/sqlplusplus/) on a specified scope.<br><br>Queries are automatically scoped to the specified bucket and scope, so use collection names directly (e.g., `SELECT * FROM users` instead of `SELECT * FROM bucket.scope.users`).<br><br>`CB_MCP_READ_ONLY_MODE` is `true` by default, which means that **all write operations (KV and Query)** are disabled. When enabled, KV write tools are not loaded and SQL++ queries that modify data are blocked. | | `explain_sql_plus_plus_query` | Generate and evaluate an EXPLAIN plan for a SQL++ query. Returns query metadata, extracted plan, and plan evaluation findings. | ### Query performance analysis tools | Tool Name | Description | |-----------|-------------| | `get_longest_running_queries` | Get longest running queries by average service time | | `get_most_frequent_queries` | Get most frequently executed queries | | `get_queries_with_largest_response_sizes` | Get queries with the largest response sizes | | `get_queries_with_large_result_count` | Get queries with the largest result counts | | `get_queries_using_primary_index` | Get queries that use a primary index (potential performance concern) | | `get_queries_not_using_covering_index` | Get queries that don't use a covering index | | `get_queries_not_selective` | Get queries that are not selective (index scans return many more documents than final result) | ## Prerequisites - Python 3.10 or higher. - A running Couchbase cluster. The easiest way to get started is to use [Capella](https://docs.couchbase.com/cloud/get-started/create-account.html#getting-started) free tier, which is fully managed version of Couchbase server. You can follow [instructions](https://