Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Secrets and permissions

Secrets

Use --non-interactive with show or export to mask recognized credentials. Review shared files: arbitrary embedded secrets may escape detection. --expose-secrets includes literals.

schema_version: 1
servers:
  example:
    transport:
      type: http
      url: https://mcp.example.com/mcp
      headers:
        Authorization: {value_env: EXAMPLE_AUTHORIZATION}

Supply the complete header through EXAMPLE_AUTHORIZATION. value_env resolves at import; {env: TOKEN, prefix: "Bearer "} preserves client runtime lookup instead. Claude stdio arguments and environment values also preserve {env: VARIABLE} references. Native config entries use {$env: VARIABLE} for masked literals. Detected credentials inside header-helper commands mask the whole command with {value_env: VARIABLE}; supply the complete command when importing.

Permissions

Both harnesses require --include-permissions to export, compare, or apply policy. Otherwise target policy is preserved. --all does not include permissions.

Use local tool names: permissions: {allow: [read], ask: [write], deny: [delete]}. When included, {} clears captured decisions; an omitted policy preserves them. Unsupported conversions fail before writes. See compatibility.