Redis MCP: NOAUTH Authentication required (set REDIS_PWD)
Fixes the Redis MCP server failing with NOAUTH Authentication required when the Redis instance has a password. The server connects without credentials because REDIS_PWD was never set. The fix is setting REDIS_PWD (and REDIS_USERNAME if ACLs are used) in the server env. Use when Redis requires auth and the MCP server does not send any; not for wrong-password errors.
TL;DR: NOAUTH means the Redis MCP server connected without a password to a Redis that requires one. Set REDIS_PWD in the server's environment (and REDIS_USERNAME if you use ACL users) and restart. Every command will start working.
NOAUTH Authentication required.Fix it
- Confirm the Redis side requires auth. If you run it, check for
--requirepassorrequirepassin the config. If it is managed (Upstash, Redis Cloud), it always requires auth.
- Set the credentials in the MCP server's environment. In your client config
envblock, or wherever you launch the server:
REDIS_HOST=your-redis-host
REDIS_PORT=6379
REDIS_USERNAME=default
REDIS_PWD=your-redis-password Command-line args take precedence over env vars if your setup passes --url explicitly. Make sure the password is in the URL then: redis://:password@host:6379/0.
- Restart the MCP server (restart the client for stdio servers).
Expected: tools execute and return data. PING returns PONG.
When to use this
- Every Redis tool call fails with
NOAUTH Authentication required. redis-cli -a [password] pingworks, proving the server and password are fine.
When NOT to use this
- The error is
WRONGPASS. A password is being sent, it is just wrong. Fix the value, not the presence. - The error is a connection timeout or refused. The server is not reachable at all.
Compatibility
- redis/mcp-redis (env-var and
--urlconfiguration). - Redis 6+ with ACLs, Redis 7, Upstash, Redis Cloud, self-hosted with requirepass.
Why it happens
The Redis MCP server defaults to no password (REDIS_PWD empty). That matches a default local Redis, but any production or managed Redis requires auth. The server does not prompt or fail at startup; it connects and then every command gets NOAUTH, which looks like the server is broken when it is just unauthenticated.
Edge cases
- With ACLs, an empty username sends a one-arg AUTH that fails differently. Set
REDIS_USERNAME=defaultexplicitly when using the default user with a password. - Special characters in the password inside a
--urlmust be percent-encoded. - Docker setups: the env var must be passed into the container (
-e REDIS_PWD=...), not just set on the host.
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.