Redash MCP Server
Run, write and manage Redash queries, dashboards, charts and alerts from an MCP client
Read, write and vector-search data in a Redis database from an MCP client
Official · Redis Python Local · stdio DatabasesAI and ML
75 popularity score ★ 641 ↓ 16k/mo
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs REDIS_HOST. Replace each <NAME> with your value.
claude mcp add redis -e REDIS_HOST=<REDIS_HOST> -- uvx --from redis-mcp-server@latest redis-mcp-server --url '<REDIS_URL>'{
"mcpServers": {
"redis": {
"command": "uvx",
"args": [
"--from",
"redis-mcp-server@latest",
"redis-mcp-server",
"--url",
"<REDIS_URL>"
],
"env": {
"REDIS_HOST": "<REDIS_HOST>"
}
}
}
}{
"mcpServers": {
"redis": {
"command": "uvx",
"args": [
"--from",
"redis-mcp-server@latest",
"redis-mcp-server",
"--url",
"<REDIS_URL>"
],
"env": {
"REDIS_HOST": "<REDIS_HOST>"
}
}
}
}{
"servers": {
"redis": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"redis-mcp-server@latest",
"redis-mcp-server",
"--url",
"<REDIS_URL>"
],
"env": {
"REDIS_HOST": "<REDIS_HOST>"
}
}
}
}[mcp_servers.redis]
command = "uvx"
args = ["--from", "redis-mcp-server@latest", "redis-mcp-server", "--url", "<REDIS_URL>"]
[mcp_servers.redis.env]
REDIS_HOST = "<REDIS_HOST>"gemini mcp add --scope user -e REDIS_HOST=<REDIS_HOST> redis uvx -- --from redis-mcp-server@latest redis-mcp-server --url '<REDIS_URL>'Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs REDIS_HOST. Replace each <NAME> with your value.
claude mcp add redis -e REDIS_HOST=<REDIS_HOST> -- docker run -i --rm -e REDIS_HOST -e REDIS_PORT -e REDIS_USERNAME -e REDIS_PWD mcp/redis{
"mcpServers": {
"redis": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"REDIS_HOST",
"-e",
"REDIS_PORT",
"-e",
"REDIS_USERNAME",
"-e",
"REDIS_PWD",
"mcp/redis"
],
"env": {
"REDIS_HOST": "<REDIS_HOST>"
}
}
}
}{
"mcpServers": {
"redis": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"REDIS_HOST",
"-e",
"REDIS_PORT",
"-e",
"REDIS_USERNAME",
"-e",
"REDIS_PWD",
"mcp/redis"
],
"env": {
"REDIS_HOST": "<REDIS_HOST>"
}
}
}
}{
"servers": {
"redis": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"REDIS_HOST",
"-e",
"REDIS_PORT",
"-e",
"REDIS_USERNAME",
"-e",
"REDIS_PWD",
"mcp/redis"
],
"env": {
"REDIS_HOST": "<REDIS_HOST>"
}
}
}
}[mcp_servers.redis]
command = "docker"
args = ["run", "-i", "--rm", "-e", "REDIS_HOST", "-e", "REDIS_PORT", "-e", "REDIS_USERNAME", "-e", "REDIS_PWD", "mcp/redis"]
[mcp_servers.redis.env]
REDIS_HOST = "<REDIS_HOST>"gemini mcp add --scope user -e REDIS_HOST=<REDIS_HOST> redis docker -- run -i --rm -e REDIS_HOST -e REDIS_PORT -e REDIS_USERNAME -e REDIS_PWD mcp/redisREDIS_HOST |
Required: Redis hostname; default 127.0.0.1, which inside the container is the container itself. The uvx way can pass --url instead. |
|---|---|
REDIS_PORT |
Optional: Redis port, default 6379. |
REDIS_USERNAME |
Optional: ACL user name. |
REDIS_PWD |
Optional: Password for the Redis user. |
REDIS_DB |
Optional: Logical database number, default 0. |
REDIS_SSL |
Optional: Turn TLS on with lowercase true, 1 or t. |
REDIS_SSL_CA_PATH |
Optional: CA certificate used to verify the server. |
REDIS_SSL_CERT_REQS |
Optional: Server certificate check, default required. |
REDIS_CLUSTER_MODE |
Optional: Connect to a Redis Cluster (true, 1 or t). |
REDIS_ENTRAID_AUTH_FLOW |
Optional: service_principal, managed_identity or default_credential to sign in to Azure Managed Redis with Entra ID. |
MCP_DOCS_SEARCH_URL |
Optional: Endpoint for search_redis_documents, default https://redis.io/convai/api/docs/search. |
MCP_REDIS_LOG_LEVEL |
Optional: Log level, default WARNING. |
In a container, a setting goes in with -e NAME=value after docker run.
Redis's own MCP server connects an assistant to one Redis database and exposes the core data structures as separate tools: strings, hashes, lists, sets, sorted sets, streams with consumer groups, JSON documents and pub/sub channels. Most write tools take an optional expiry, so it can be used for caching, sessions or short-lived agent memory as well as for inspecting an existing database.
Version 0.5.1 registers 53 tools (counted in its src/tools files and matching the Docker Hub listing). Besides key and value operations there are query-engine tools that create an HNSW vector index over hashes, store vectors in hash fields and run KNN or filtered hybrid searches, plus server tools for INFO, DBSIZE and the client list. One tool, search_redis_documents, sends a question to Redis's hosted docs search at https://redis.io/convai/api/docs/search by default (changeable with MCP_DOCS_SEARCH_URL).
It runs locally over stdio, started with uvx from PyPI, from a git tag, from a clone, or as the mcp/redis container. The connection is set by a redis:// or rediss:// URL, by individual flags, or by REDIS_* environment variables; flags win over variables. Cluster mode, TLS client certificates and Microsoft Entra ID sign-in for Azure Managed Redis are supported.
| Runtime | Python 3.14+orDocker |
|---|
A reachable Redis server (local, Redis Cloud, Azure Managed Redis or self-hosted) and its password or ACL user if it has one. uv for the uvx command; the README targets Python 3.14, though pyproject.toml accepts 3.10+. The vector-index and vector-search tools need Redis 8 or the query engine, and the json_* tools need JSON support on the server. Docker for the container way. Entra ID sign-in needs Azure credentials (service principal, managed identity or az login).
Speaks stdio only; the README says streamable HTTP is planned. In 0.5.1 REDIS_SSL and REDIS_CLUSTER_MODE are only switched on by the lowercase values true, 1 or t (src/common/config.py), so the README's REDIS_SSL: True example leaves TLS off; use true or a rediss:// URL. REDIS_USERNAME has no default in the code, not "default" as the README table says. scan_all_keys gathers every matching key into memory, which its own code warns about for very large databases. The README warns that the main branch may contain breaking changes; pin a release.
Developers who want an assistant to inspect, seed or debug a Redis database, or to use Redis as a cache, queue, stream or vector store from an agent. Because it can delete, rename and overwrite keys with no confirmation step, point it at a development database or connect as a read-only ACL user, as the README shows, when working near production. It needs a Redis server you can reach from your machine; for Upstash's hosted Redis, we also list Upstash's own server (upstash/redis-mcp).
client_listcreate_vector_index_hashdbsizedeleteexpiregetget_index_infoget_indexed_keys_numberget_indexesget_vector_from_hashhdelhexistshgethgetallhsethybrid_searchinfojson_deljson_getjson_setllenlpoplpushlrangelrempsubscribepublishread_messagesrenamerpoprpushsaddscan_all_keysscan_keyssearch_redis_documentssetset_vector_in_hashsmemberssremsubscribetypeunsubscribevector_search_hashxackxaddxdelxgroup_createxgroup_destroyxrangexreadgroupzaddzrangezrem