Skip to main content

MCPX_CONFIG_MISSING_SECRET

Severity: error Domain: Config

What happened

The upstream config references a secret (typically via ${SECRET:NAME} in env or headers), but the secret was not found in the active secret store when mcpproxy tried to start that server.

How to fix

List what's defined

mcpproxy secret list

If the name you referenced isn't there, add it.

Add the missing secret

mcpproxy secret set <NAME>           # prompts for the value, never echoed

Secrets are stored in the OS keychain on macOS / Windows and in an encrypted file on Linux.

Check the reference syntax

{
// env values support ${SECRET:NAME} expansion:
"env": { "GITHUB_TOKEN": "${SECRET:github_personal_token}" },

// headers do too:
"headers": { "Authorization": "Bearer ${SECRET:my_api_key}" }
}

Plain string values are used as-is (no expansion).

Migration from inline secrets

If you previously stored secrets inline and want to move them into the secret store:

mcpproxy secret set github_personal_token < /dev/stdin <<<"ghp_xxx"
# Then update the config to use ${SECRET:github_personal_token}