Skip to main content

MCPX_CONFIG_MISSING_SECRET

Severity: error Domain: Config

What happened​

The upstream config references a secret (typically via ${keyring: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 secrets list

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

Add the missing secret​

mcpproxy secrets set <NAME> # prompts; typed characters are echoed in the terminal

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

Check the reference syntax​

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

// headers do too:
"headers": { "Authorization": "Bearer ${keyring: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 secrets set github_personal_token
# Enter the value at the prompt (terminal input is echoed).
# Then update the config to use ${keyring:github_personal_token}