Claude Code

Enterprise networking and administration

Proxies, CA, mTLS, network allowlists, server/endpoint-managed settings and managed MCP policies.

Enterprise deployments need network connectivity, certificate trust and centralized controls. Claude Code supports proxies, custom CA, mTLS and managed settings/MCP. Distinguish official cloud features from third-party gateway paths.

With a custom base URL, official server-managed settings generally do not apply. Prefer MDM, system settings, local templates and gateway policy.

See provider authentication guidance for cloud variables and network troubleshooting; deployment overview for decisions; gateway protocol for acceptance; and enterprise controls for organizational governance.

#Proxy configuration

Claude Code supports standard HTTP proxy variables:

export HTTPS_PROXY=https://proxy.example.com:8080
export HTTP_PROXY=http://proxy.example.com:8080
export NO_PROXY="localhost,127.0.0.1,192.168.0.0/16,.example.com"

Basic authentication can be embedded in the URL, but avoid hard-coding passwords in scripts:

export HTTPS_PROXY=http://username:[email protected]:8080

SOCKS proxies are unsupported. NTLM/Kerberos generally require a corporate gateway or adapter.

#CA and mTLS

The runtime trusts built-in Mozilla roots and the system store by default. Corporate TLS inspection generally works when its root is installed in the system trust store.

Trust built-in roots only:

export CLAUDE_CODE_CERT_STORE=bundled

Trust the system store only:

export CLAUDE_CODE_CERT_STORE=system

Additional CA:

export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem

mTLS:

export CLAUDE_CODE_CLIENT_CERT=/path/to/client-cert.pem
export CLAUDE_CODE_CLIENT_KEY=/path/to/client-key.pem
export CLAUDE_CODE_CLIENT_KEY_PASSPHRASE="passphrase"

Set these in the shell, user settings environment or managed configuration. Bootstrap connectivity for fetching remote settings cannot depend solely on those settings.

For installer, PATH, download, proxy or TLS failures, see installation troubleshooting.

#Network allowlist

Official connections commonly require these domains. Passion8 model traffic goes mainly to passion8.cc, while installers, plugins, release notes, Chrome bridges and Artifacts may still require official domains.

DomainPurpose
passion8.ccGateway, console and model requests
api.anthropic.comAPI, server-managed settings and WebFetch checks
claude.aiAccount login and web UI
platform.claude.comConsole API-key login
downloads.claude.aiInstallers, plugin executables and updates
bridge.claudeusercontent.comClaude in Chrome WebSocket bridge
*.claudeusercontent.comWeb Artifacts
raw.githubusercontent.comRelease notes and marketplace data

Internal mirrors, npm or gateway distribution may avoid downloads.claude.ai for users. Review compliance before disabling WebFetch checks or changing providers.

#Two centralized-settings approaches

ApproachBest fitSecurity property
Server-managedTeam/Enterprise without MDMFetched from Anthropic and enforced by client
Endpoint-managedMDM, registry or system filesDevice-delivered and harder for users to change

Server settings are configured in claude.ai administration and fetched periodically. Endpoint settings arrive through preferences, registry, system files or MDM.

For Passion8/custom providers, keep critical controls in endpoint settings or local templates instead of relying on official server settings.

See privacy for requests, training, transcripts, telemetry, feedback, WebFetch and gateway logs.

#Control examples

Disable bypass and deny common sensitive files:

{
  "permissions": {
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ],
    "disableBypassPermissionsMode": "disable"
  },
  "allowManagedPermissionRulesOnly": true
}

Define enterprise boundaries for auto mode:

{
  "autoMode": {
    "environment": [
      "Source control: github.example.com/acme-corp and all repos under it",
      "Trusted artifact buckets: s3://acme-build-artifacts",
      "Trusted internal domains: *.corp.example.com"
    ]
  }
}

Require a successful remote settings refresh before startup:

{
  "forceRemoteSettingsRefresh": true
}

Verify access to api.anthropic.com first; otherwise the client exits before a session starts.

#Caching and security confirmation

Operational characteristics of remote settings:

  • Startup fetch is asynchronous; cached settings apply first.
  • Active sessions poll for updates.
  • Parsing failures retain valid fields where possible and log diagnostics.
  • Hooks, custom variables and managed instructions may require confirmation.
  • Noninteractive -p mode applies configuration without an interactive confirmation.

On a test device, run:

claude --debug-file /tmp/claude-debug.log

Then search for remote settings, managed settings and validation diagnostics.

For missing settings, hooks, MCP, skills or rules, see configuration debugging.

#Managed MCP

Users can add arbitrary MCP servers by default. Choose a risk-appropriate policy:

PolicyEffectConfiguration
DisableNo serversEmpty managed-mcp.json server map
Fixed deploymentSame approved servers for everyonemanaged-mcp.json
Approved catalogUsers select approved serversallowedMcpServers plus allowManagedMcpServersOnly
Plugin-onlyNo user-defined MCPstrictPluginOnlyCustomization
DenylistBlock known dangerous serversdeniedMcpServers

managed-mcp.json is separate and cannot be distributed through server-managed settings. Paths:

PlatformPath
macOS/Library/Application Support/ClaudeCode/managed-mcp.json
Linux and WSL/etc/claude-code/managed-mcp.json
WindowsC:\Program Files\ClaudeCode\managed-mcp.json

Fixed deployment example:

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    },
    "company-internal": {
      "type": "stdio",
      "command": "/usr/local/bin/company-mcp-server",
      "args": ["--config", "/etc/company/mcp-config.json"]
    }
  }
}

System files may be readable by users. Keep keys out; prefer variable expansion, OAuth, per-user headers or headersHelper.

Disable MCP:

{
  "mcpServers": {}
}

Verify:

claude mcp list
claude mcp add --transport http test https://example.com/mcp

The second command should be denied by policy.

#Allowlists and denylists

Match servers by URL, command or name. Names alone are weak enforcement because users can rename servers.

{
  "allowedMcpServers": [
    { "serverUrl": "https://api.githubcopilot.com/*" },
    { "serverUrl": "https://mcp.sentry.dev/*" },
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "."] }
  ],
  "deniedMcpServers": [
    { "serverUrl": "https://*.untrusted.example.com/*" },
    { "serverCommand": ["npx", "-y", "unapproved-package"] }
  ],
  "allowManagedMcpServersOnly": true
}

Prefer serverUrl for remote MCP and full serverCommand for stdio. Denylists take precedence.

#Passion8 recommendations

  • Local development: manage ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN manually or with CC-Switch.
  • Enterprise access: deliver endpoint, deny rules, sandbox and MCP policy through MDM/system settings.
  • Remote policy: without official organizational login, do not depend on Claude server-managed settings.
  • Gateway auditing: combine Passion8 bills/logs with monitoring.
  • MCP: review external servers as third-party code-execution entry points, not only as model-provider settings.

Use this as a capability reference, then follow the 30/60/90-day rollout for providers, settings, MCP, auto mode, monitoring and training.

Support

Need help?

For setup, billing, or model issues, email us. Check the status page for uptime.

WeChat / QQ support is available at the bottom right.