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]:8080SOCKS 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=bundledTrust the system store only:
export CLAUDE_CODE_CERT_STORE=systemAdditional CA:
export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pemmTLS:
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.
| Domain | Purpose |
|---|---|
| passion8.cc | Gateway, console and model requests |
| api.anthropic.com | API, server-managed settings and WebFetch checks |
| claude.ai | Account login and web UI |
| platform.claude.com | Console API-key login |
| downloads.claude.ai | Installers, plugin executables and updates |
bridge.claudeusercontent.com | Claude in Chrome WebSocket bridge |
| *.claudeusercontent.com | Web Artifacts |
| raw.githubusercontent.com | Release 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
| Approach | Best fit | Security property |
|---|---|---|
| Server-managed | Team/Enterprise without MDM | Fetched from Anthropic and enforced by client |
| Endpoint-managed | MDM, registry or system files | Device-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.logThen 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:
| Policy | Effect | Configuration |
|---|---|---|
| Disable | No servers | Empty managed-mcp.json server map |
| Fixed deployment | Same approved servers for everyone | managed-mcp.json |
| Approved catalog | Users select approved servers | allowedMcpServers plus allowManagedMcpServersOnly |
| Plugin-only | No user-defined MCP | strictPluginOnlyCustomization |
| Denylist | Block known dangerous servers | deniedMcpServers |
managed-mcp.json is separate and cannot be distributed through server-managed settings. Paths:
| Platform | Path |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-mcp.json |
| Linux and WSL | /etc/claude-code/managed-mcp.json |
| Windows | C:\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/mcpThe 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.
#Related pages
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.

