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

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="operational_insights_create_index, operational_insights_cancel_async_query"

# Command line
uvx couchbase-mcp-server operational-insights --confirmation-required-tools "operational_insights_create_index, operational_insights_cancel_async_query"

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 operational-insights --confirmation-required-tools /path/to/confirmation_required_tools.txt

File format example (confirmation_required_tools.txt):

# Index and async query management
operational_insights_create_index
operational_insights_cancel_async_query

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

MCP Client Configuration Examples

Using comma-separated list:

{
  "mcpServers": {
    "couchbase-oi": {
      "command": "uvx",
      "args": ["couchbase-mcp-server", "operational-insights"],
      "env": {
        "CB_OPERATIONAL_INSIGHTS_CONNECTION_STRING": "https://your-oi-endpoint",
        "CB_OPERATIONAL_INSIGHTS_USERNAME": "username",
        "CB_OPERATIONAL_INSIGHTS_PASSWORD": "password",
        "CB_MCP_CONFIRMATION_REQUIRED_TOOLS": "operational_insights_create_index,operational_insights_cancel_async_query"
      }
    }
  }
}

Using file path (recommended for many tools):

{
  "mcpServers": {
    "couchbase-oi": {
      "command": "uvx",
      "args": ["couchbase-mcp-server", "operational-insights"],
      "env": {
        "CB_OPERATIONAL_INSIGHTS_CONNECTION_STRING": "https://your-oi-endpoint",
        "CB_OPERATIONAL_INSIGHTS_USERNAME": "username",
        "CB_OPERATIONAL_INSIGHTS_PASSWORD": "password",
        "CB_MCP_CONFIRMATION_REQUIRED_TOOLS": "/path/to/confirmation_required_tools.txt"
      }
    }
  }
}

Important Limitations

  • Elicitation does not work with 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 --stateless-http. See Stateless Mode and 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 operational_insights_create_index 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 operational_insights_run_query_sync to run a raw CREATE INDEX SQL++ statement directly.