Elicitation / Confirmation for Tool Calls

  • reference
Require user confirmation before the LLM executes specific Couchbase MCP Server tools.

The CB_MCP_CONFIRMATION_REQUIRED_TOOLS environment variable enables user confirmation prompts for tools marked as requiring confirmation. This allows users to double-check the tool call before the LLM executes the actions.

How It Works

The commands on this page start the operational server, which is the default. Adding operational to the command, as in uvx couchbase-mcp-server operational, gives the same result.

When a tool requires confirmation, the server sends an elicitation request to the client.

Clients with elicitation support:

  1. Prompt the user for confirmation.

  2. Send the user’s response back to the server.

Clients without elicitation support: The tool executes without confirmation. The server logs this at DEBUG level only, so no warning appears at the default log level. When audit logging is on, the server records a confirmation skipped event (57491). See Audit Events.

Full functionality requires client support for elicitation.

Configuration

Environment Variable CLI Argument Description Default

CB_MCP_CONFIRMATION_REQUIRED_TOOLS

--confirmation-required-tools

Comma-separated list or file path of tool names that require elicitation/user confirmation before execution

None

Supported Formats

Both settings accept the same two formats.

Comma-Separated List

# Environment variable
CB_MCP_CONFIRMATION_REQUIRED_TOOLS="delete_document_by_id, upsert_document_by_id"

# Command line
uvx couchbase-mcp-server --confirmation-required-tools "delete_document_by_id, upsert_document_by_id"

File Path (One Tool Per Line)

# Environment variable
CB_MCP_CONFIRMATION_REQUIRED_TOOLS=/path/to/confirmation_required_tools.txt

# Command line
uvx couchbase-mcp-server --confirmation-required-tools /path/to/confirmation_required_tools.txt

File format example (confirmation_required_tools.txt):

# Write operations
upsert_document_by_id
delete_document_by_id

# Replace operations
replace_document_by_id

The server treats lines starting with # as comments and ignores them.

MCP Client Configuration Examples

Using comma-separated list:

{
  "mcpServers": {
    "couchbase": {
      "command": "uvx",
      "args": ["couchbase-mcp-server"],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://your-connection-string",
        "CB_USERNAME": "username",
        "CB_PASSWORD": "password",
        "CB_MCP_CONFIRMATION_REQUIRED_TOOLS": "upsert_document_by_id,delete_document_by_id"
      }
    }
  }
}

Using file path (recommended for many tools):

{
  "mcpServers": {
    "couchbase": {
      "command": "uvx",
      "args": ["couchbase-mcp-server"],
      "env": {
        "CB_CONNECTION_STRING": "couchbases://your-connection-string",
        "CB_USERNAME": "username",
        "CB_PASSWORD": "password",
        "CB_MCP_CONFIRMATION_REQUIRED_TOOLS": "/path/to/confirmation_required_tools.txt"
      }
    }
  }
}

Important Limitations

  • Elicitation does not work with workers or stateless mode. A confirmation prompt needs a session, and stateless mode keeps no session. The server refuses to start when you combine --confirmation-required-tools with --workers set to more than 1 or with --stateless-http. See Scaling with Workers.

  • Setting CB_MCP_CONFIRMATION_REQUIRED_TOOLS for a tool that did not load has no effect, as the tool is not available. A tool does not load if it’s explicitly listed under the disabled_tools configuration, or if the server runs in READ_ONLY mode and the tool is not a READ_ONLY tool.

The confirmation_required setting applies explicitly to tools, not to individual actions (such as read, update, or delete operations).

For example, if you enable confirmation_required for the delete_document_by_id tool, the MCP server prompts for confirmation only when the MCP client selects that specific tool. The server doesn’t request confirmation if the client selects a different tool, such as run_sql_plus_plus_query to delete documents.