Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions DOCKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ Dockerfile: https://github.com/Couchbase-Ecosystem/mcp-server-couchbase/blob/mai
- There is an option in the MCP server, `CB_MCP_READ_ONLY_QUERY_MODE` that is set to true by default to disable running SQL++ queries that change the data or the underlying collection structure. Note that the documents can still be updated by ID.
- Get the status of the MCP server
- Check the cluster credentials by connecting to the cluster
- List all indexes in the cluster with their definitions, with optional filtering by bucket, scope, collection and index name.
- Get index recommendations from Couchbase Index Advisor for a given SQL++ query to optimize query performance
- Get cluster health status and list of all running services

## Usage

Expand Down
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ LABEL org.opencontainers.image.revision="${GIT_COMMIT_HASH}" \
org.opencontainers.image.created="${BUILD_DATE}" \
org.opencontainers.image.title="MCP Server Couchbase" \
org.opencontainers.image.description="Model Context Protocol server for Couchbase" \
org.opencontainers.image.source="https://github.com/couchbaselabs/mcp-server-couchbase"
org.opencontainers.image.source="https://github.com/Couchbase-Ecosystem/mcp-server-couchbase"\
io.modelcontextprotocol.server.name="io.github.Couchbase-Ecosystem/mcp-server-couchbase"

# Create non-root user
RUN useradd --system --uid 1001 mcpuser
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ An [MCP](https://modelcontextprotocol.io/) server implementation of Couchbase th
- There is an option in the MCP server, `CB_MCP_READ_ONLY_QUERY_MODE` that is set to true by default to disable running SQL++ queries that change the data or the underlying collection structure. Note that the documents can still be updated by ID.
- Get the status of the MCP server
- Check the cluster credentials by connecting to the cluster
- List all indexes in the cluster with their definitions, with optional filtering by bucket, scope, and collection
- List all indexes in the cluster with their definitions, with optional filtering by bucket, scope, collection and index name.
- Get index recommendations from Couchbase Index Advisor for a given SQL++ query to optimize query performance
- Get cluster health status and list of all running services

Expand Down
253 changes: 253 additions & 0 deletions server.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
"name": "io.github.Couchbase-Ecosystem/mcp-server-couchbase",
"description": "Couchbase Model Context Protocol Server to interact with Couchbase clusters",
"repository": {
"url": "https://github.com/Couchbase-Ecosystem/mcp-server-couchbase",
"source": "github"
},
"version": "0.5.0",
"packages": [
{
"registryType": "pypi",
"identifier": "couchbase-mcp-server",
"version": "0.5.0",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"name": "CB_CONNECTION_STRING",
"description": "Couchbase connection string. Required for connecting to the cluster.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_USERNAME",
"description": "Couchbase database username. Required for basic authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_PASSWORD",
"description": "Couchbase database password. Required for basic authentication.",
"isRequired": false,
"format": "string",
"isSecret": true
},
{
"name": "CB_CA_CERT_PATH",
"description": "Couchbase CA certificate path. Required for TLS authentication in non Capella clusters.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_CLIENT_CERT_PATH",
"description": "Couchbase client certificate path. Required for mTLS authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_CLIENT_KEY_PATH",
"description": "Couchbase client key path. Required for mTLS authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_MCP_READ_ONLY_QUERY_MODE",
"description": "Couchbase read only query mode. Set to true to allow only read-only queries. Set to false to allow data modification queries.",
"isRequired": false,
"format": "boolean",
"isSecret": false
},
{
"name": "CB_MCP_TRANSPORT",
"description": "Transport mode for the server (stdio, http or sse). Default is stdio",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_MCP_HOST",
"description": "Host to run the MCP server on (default: 127.0.0.1). Used only for HTTP and SSE transport modes.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_MCP_PORT",
"description": "Port to run the MCP server on (default: 8000). Used only for HTTP and SSE transport modes.",
"isRequired": false,
"format": "number",
"isSecret": false
}
],
"packageArguments": [
{
"type": "named",
"name": "--connection-string",
"description": "Couchbase connection string. Required for connecting to the cluster.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"type": "named",
"name": "--username",
"description": "Couchbase database username. Required for basic authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"type": "named",
"name": "--password",
"description": "Couchbase database password. Required for basic authentication.",
"isRequired": false,
"format": "string",
"isSecret": true
},
{
"type": "named",
"name": "--ca-cert-path",
"description": "Couchbase CA certificate path. Required for TLS authentication in non Capella clusters.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"type": "named",
"name": "--client-cert-path",
"description": "Couchbase client certificate path. Required for mTLS authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"type": "named",
"name": "--client-key-path",
"description": "Couchbase client key path. Required for mTLS authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"type": "named",
"name": "--read-only-query-mode",
"description": "Couchbase read only query mode. Set to true to allow only read-only queries. Set to false to allow data modification queries.",
"isRequired": false,
"format": "boolean",
"isSecret": false
},
{
"type": "named",
"name": "--transport",
"description": "Transport mode for the server (stdio, http or sse). Default is stdio",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"type": "named",
"name": "--host",
"description": "Host to run the MCP server on (default: 127.0.0.1). Used only for HTTP and SSE transport modes.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"type": "named",
"name": "--port",
"description": "Port to run the MCP server on (default: 8000). Used only for HTTP and SSE transport modes.",
"isRequired": false,
"format": "number",
"isSecret": false
}
]
},
{
"registryType": "oci",
"identifier": "docker.io/couchbaseecosystem/mcp-server-couchbase:0.5.0",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"name": "CB_CONNECTION_STRING",
"description": "Couchbase connection string. Required for connecting to the cluster.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_USERNAME",
"description": "Couchbase database username. Required for basic authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_PASSWORD",
"description": "Couchbase database password. Required for basic authentication.",
"isRequired": false,
"format": "string",
"isSecret": true
},
{
"name": "CB_CA_CERT_PATH",
"description": "Couchbase CA certificate path. Required for TLS authentication in non Capella clusters.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_CLIENT_CERT_PATH",
"description": "Couchbase client certificate path. Required for mTLS authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_CLIENT_KEY_PATH",
"description": "Couchbase client key path. Required for mTLS authentication.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_MCP_READ_ONLY_QUERY_MODE",
"description": "Couchbase read only query mode. Set to true to allow only read-only queries. Set to false to allow data modification queries.",
"isRequired": false,
"format": "boolean",
"isSecret": false
},
{
"name": "CB_MCP_TRANSPORT",
"description": "Transport mode for the server (stdio, http or sse). Default is stdio",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_MCP_HOST",
"description": "Host to run the MCP server on (default: 127.0.0.1). Used only for HTTP and SSE transport modes.",
"isRequired": false,
"format": "string",
"isSecret": false
},
{
"name": "CB_MCP_PORT",
"description": "Port to run the MCP server on (default: 8000). Used only for HTTP and SSE transport modes.",
"isRequired": false,
"format": "number",
"isSecret": false
}
]
}
]
}