{
  "name": "io.github.redis/mcp-redis",
  "description": "The official Redis MCP exposes a Redis instance to an AI model — inspect keys by pattern, read string/hash/list/set/zset values, and run safe debug commands. Designed for the \"what is in this cache\" and \"why is this key TTLd\" workflows where dropping into redis-cli is the usual answer.",
  "status": "active",
  "version": "latest",
  "_meta": {
    "com.top-mcps/lastVerified": "2026-05-27",
    "com.top-mcps/score": {
      "value": 87,
      "rubricVersion": "2026-04",
      "lastComputed": "2026-06-02T13:16:41.643Z",
      "methodology": "https://top-mcps.com/about/methodology"
    },
    "com.top-mcps/stats": {
      "fetchedAt": "2026-06-02T11:55:52.271Z",
      "githubStars": 513,
      "lastCommitAt": "2026-05-20T09:07:15Z"
    }
  },
  "repository": {
    "url": "https://github.com/redis/mcp-redis",
    "source": "github"
  },
  "author": {
    "name": "Redis"
  },
  "packages": [
    {
      "registryType": "pypi",
      "registryBaseUrl": "https://pypi.org",
      "identifier": "\"git+https://github.com/redis/mcp-redis\"",
      "version": "latest",
      "transport": {
        "type": "stdio"
      },
      "runtimeArguments": [
        {
          "type": "positional",
          "value": "redis-mcp"
        }
      ],
      "environmentVariables": [
        {
          "name": "REDIS_URL",
          "description": "REDIS_URL — required credential for Redis.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "scan_keys",
        "description": "Iterate keys matching a pattern using SCAN.",
        "sideEffect": "read",
        "args": [
          {
            "name": "pattern",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "get_string",
        "description": "GET a string value.",
        "sideEffect": "read",
        "args": [
          {
            "name": "key",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "hgetall",
        "description": "Return all fields and values of a hash.",
        "sideEffect": "read",
        "args": [
          {
            "name": "key",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "lrange",
        "description": "Return a range of list elements.",
        "sideEffect": "read",
        "args": [
          {
            "name": "key",
            "type": "string",
            "required": true
          },
          {
            "name": "start",
            "type": "number",
            "required": true
          },
          {
            "name": "stop",
            "type": "number",
            "required": true
          }
        ]
      },
      {
        "name": "ttl",
        "description": "Return the TTL of a key.",
        "sideEffect": "read",
        "args": [
          {
            "name": "key",
            "type": "string",
            "required": true
          }
        ]
      }
    ],
    "security": {
      "scope": "read-only",
      "sandbox": "Connects to a Redis instance via REDIS_URL. Read-only mode disables write commands at the tool layer. Use a Redis user with read-only ACL as defence in depth.",
      "gotchas": [
        "KEYS is replaced by SCAN intentionally — do not enable a custom passthrough tool that re-introduces KEYS.",
        "TLS is required for managed providers (Upstash, Redis Cloud). Use rediss:// in the URL.",
        "Pub/Sub subscriptions are not exposed — agents holding open subscriptions is a footgun."
      ]
    }
  },
  "_links": {
    "html": "https://top-mcps.com/mcp/redis",
    "markdown": "https://top-mcps.com/mcp/redis.md",
    "methodology": "https://top-mcps.com/about/methodology"
  }
}
