googleapis/mcp-toolbox · error
when using an OCI driver, use `tnsAdmin` to specify credenti
Error message
when using an OCI driver, use `tnsAdmin` to specify credentials file location instead
What it means
The OCI driver resolves credentials via tnsAdmin, so a walletLocation is not applicable; when walletLocation is set together with UseOCI true, validate returns this message telling the user to switch to tnsAdmin.
Source
Thrown at internal/sources/oracle/oracle.go:93
}
if hasHostService {
connectionMethods++
}
if connectionMethods == 0 {
return fmt.Errorf("must provide one of: 'tns_alias', 'connection_string', or both 'host' and 'service_name'")
}
if connectionMethods > 1 {
return fmt.Errorf("provide only one connection method: 'tns_alias', 'connection_string', or 'host'+'service_name'")
}
if hasTnsAdmin && !c.UseOCI {
return fmt.Errorf("`tnsAdmin` can only be used when `UseOCI` is true, or use `walletLocation` instead")
}
if hasWallet && c.UseOCI {
return fmt.Errorf("when using an OCI driver, use `tnsAdmin` to specify credentials file location instead")
}
return nil
}
func (r Config) SourceConfigType() string {
return SourceType
}
func (r Config) Initialize(ctx context.Context, tracer trace.Tracer) (sources.Source, error) {
db, err := initOracleConnection(ctx, tracer, r)
if err != nil {
return nil, fmt.Errorf("unable to create Oracle connection: %w", err)
}
err = db.PingContext(ctx)
if err != nil {
db.Close()View on GitHub (pinned to 8cc6e09de2)
Solutions
- Rename walletLocation to tnsAdmin in the config
- Or set useOCI: false if you actually want the non-OCI driver with walletLocation
- Ensure only one wallet-style field remains after the change
Example fix
// before kind: oracle useOCI: true walletLocation: /wallets/orcl // after kind: oracle useOCI: true tnsAdmin: /wallets/orcl
Defensive patterns
Strategy: validation
Validate before calling
func ociWalletOK(cfg map[string]any) bool {
_, wl := cfg["walletLocation"]
oci, _ := cfg["useOCI"].(bool)
return !wl || !oci
} Prevention
- When enabling useOCI, rename walletLocation to tnsAdmin
- Keep only one wallet field per config
- Search configs for walletLocation when migrating to OCI
- Test wallet-based connections after driver-mode changes
When it happens
Trigger: Oracle config has useOCI: true and walletLocation set at the same time.
Common situations: Migrating a non-OCI config to OCI by flipping useOCI without renaming walletLocation to tnsAdmin.
Related errors
- `tnsAdmin` can only be used when `UseOCI` is true, or use `w
- invalid Oracle configuration: %w
- must provide one of: 'tns_alias', 'connection_string', or bo
- provide only one connection method: 'tns_alias', 'connection
- failed to check auth requirements: %w
AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05).
Data as JSON: /api/errors/f4f7eaa50270926f.
Report an issue: GitHub.