{"name":"MCP_CLIENT_SECRET","slug":"mcp-client-secret","family":"env","title":"Environment variables","noun":"environment variable","description":"OAuth client secret for an MCP server, used instead of prompting. When the client secret is requested and `MCP_CLIENT_SECRET` is non-empty, its value is used; otherwise Claude Code prompts `Enter OAuth client secret: ` on stderr, and with no TTY it fails with `No TTY available to prompt for client secret. Set MCP_CLIENT_SECRET env var instead.`","description_source":"code","described_by":{"bundle":"2.1.286","author":"claude-opus-5-5"},"presence":{"first_seen":"2.1.138","removed_in":null,"in_current_build":true,"newest_mined":"2.1.309","builds":150,"mined_builds":150,"first_cited":{"version":"2.1.30","released_at":"2026-02-03 16:34:38","spans":1}},"aliases":[],"entries":[{"version":"2.1.30","anchor":"mcp-oauth-configuration-options","heading":"MCP OAuth Configuration Options","line":null,"released_at":"2026-02-03 16:34:38","reason":"found in this entry's text"}],"entries_total":1,"docs":[{"source":"claude-code","path":"mcp","title":"Connect Claude Code to tools via MCP","documented":false}],"docs_total":1,"gates":[],"related":[{"name":"MCP_CONNECT_TIMEOUT_MS","slug":"mcp-connect-timeout-ms","description":"Very large MCP_TIMEOUT values are capped instead of overflowing and timing out instantly."},{"name":"MCP_CONNECTION_NONBLOCKING","slug":"mcp-connection-nonblocking","description":"Five more environment variables, including stream and byte watchdogs, can be set in settings.json."},{"name":"MCP_DISCOVERY_CACHE","slug":"mcp-discovery-cache","description":"Startup no longer dials cached HTTP or SSE MCP servers; they restore from cache and connect on first use."},{"name":"MCP_DISCOVERY_CACHE_MAX_STALE_S","slug":"mcp-discovery-cache-max-stale-s","description":"Cached MCP server discovery is dropped after repeated connection failures instead of only on age."},{"name":"MCP_DISCOVERY_CACHE_STRIKES","slug":"mcp-discovery-cache-strikes","description":"Cached MCP server discovery is dropped after repeated connection failures instead of only on age."},{"name":"MCP_DISCOVERY_CACHE_TTL_S","slug":"mcp-discovery-cache-ttl-s","description":"Cached MCP server discovery is dropped after repeated connection failures instead of only on age."},{"name":"MCP_OAUTH_CALLBACK_PORT","slug":"mcp-oauth-callback-port","description":"About 220 environment variables now parse and validate in one place, including bounds checks."},{"name":"MCP_OAUTH_CLIENT_METADATA_URL","slug":"mcp-oauth-client-metadata-url","description":"MCP OAuth stops sending a client id that only works for loopback, and repairs saved entries."},{"name":"MCP_PROTOCOL_NEGOTIATION","slug":"mcp-protocol-negotiation","description":"A newer MCP protocol handshake exists per transport but every gate falls back to legacy here."},{"name":"MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE","slug":"mcp-remote-server-connection-batch-size","description":"Two new env vars set how many MCP servers connect at once, local and remote."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/mcp-client-secret","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}