{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "slug": "redis-mcp",
    "name": "Redis MCP",
    "vendor": "Redis",
    "vendorUrl": "https://redis.io",
    "kind": "mcp",
    "category": "data",
    "summary": "Redis's open-source MCP server for Redis databases. The owner runs it locally over stdio, and it gives agents tools for strings, hashes, lists, sets, sorted sets, streams, pub/sub, JSON documents and vector search.",
    "url": "https://www.anchorterminal.com/tools/redis-mcp",
    "markdownUrl": "https://www.anchorterminal.com/tools/redis-mcp.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/redis-mcp.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/redis-mcp.json",
    "repo": "https://github.com/redis/mcp-redis",
    "license": "MIT",
    "transports": [
      "stdio"
    ],
    "packages": [
      {
        "registry": "pypi",
        "name": "redis-mcp-server"
      },
      {
        "registry": "oci",
        "name": "docker.io/mcp/redis"
      }
    ],
    "auth": "mixed",
    "authNotes": "The server signs in to Redis with a username and password (`--url`, `--username` and `--password`, or `REDIS_USERNAME` and `REDIS_PWD`), which a Redis admin creates, self-serve, and can scope with Redis ACL rules. TLS takes a CA file and an optional client certificate, with `ssl_cert_reqs` defaulting to required. Azure Managed Redis can use Entra ID through a service principal, a managed identity or the default Azure credential, with tokens renewed in the background. stdio needs no caller credential, and every caller shares the one Redis user.",
    "pricing": "free",
    "pricingNotes": "Free and open source under the MIT licence, with nothing to buy for the server. It needs a Redis database, which can be Redis Open Source on the owner's machine or a managed service such as Redis Cloud or Azure Managed Redis. Redis Cloud prices and its free database were not checked. Redis has no hosted version of this server in the pages read (checked 2026-10-09).",
    "priceSummary": "Free · OSS",
    "where": "local",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the README, the docs pages or the source (checked 2026-10-09).",
      "endpoints": []
    },
    "toolCount": 53,
    "popularity": {
      "githubStars": 633,
      "npmWeekly": null,
      "pypiWeekly": 3644,
      "asOf": "2026-10-09"
    },
    "docsUrl": "https://redis.io/docs/latest/integrate/redis-mcp/",
    "llmsTxt": "https://redis.io/llms.txt",
    "registryName": "io.github.redis/mcp-redis",
    "capabilities": [
      "db.document",
      "db.vector",
      "db.hybrid"
    ],
    "tags": [
      "official",
      "local",
      "open-source",
      "self-hosted",
      "mcp",
      "python",
      "docker",
      "database",
      "key-value",
      "vector-search"
    ],
    "lastRelease": "2026-08-04",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 55.7,
      "grade": "C",
      "agentReady": false,
      "rank": 652,
      "ranked": true,
      "rankOf": 950,
      "categoryRank": 9,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 39,
        "maintenance": 57,
        "payments": 60,
        "reliability": 62,
        "schema": 64,
        "security": 54,
        "transparency": 76
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 62,
          "points": 12.4,
          "reason": "Scored as local software, since the owner runs it over stdio. Official PyPI package `redis-mcp-server` with Python 3.10 to 3.14 stated in the metadata, though the README badge says 3.14 and later (20). The CI workflow runs nightly and concluded in success on main on 9 October 2026, on a five-version Python matrix against a live Redis, with 347 test functions and an 80 per cent coverage floor (25). Fresh PyPI installs failed to start from 28 July to 5 August 2026 after `mcp` 2.0.0 removed the module the server imports. The fix merged on 31 July and reached PyPI five days later (issues #163 and #169). Issue #156, where the console command ignores `REDIS_HOST` and `REDIS_PORT`, has been open since 10 July 2026 with an acknowledgement and two unmerged fixes (13 of 25). Tagged releases with numbers in semantic form, but no changelog file, release notes that are lists of pull request titles, and a patch release (0.5.1) that changed the `unsubscribe` input and added six tools. Issue #137 asking for semver tags has no reply (4 of 15). Version 0.5.1 with the classifier `Development Status :: 4 - Beta` (0)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 64,
          "points": 10.4,
          "reason": "Each tool is built from a typed Python signature through FastMCP, so inputs carry JSON Schema, read from the source since we do not run vendor software. `get_vector_from_hash` has no return type, several tools return either a value or an error string, and there are no output schemas (21 of 25). redis.io serves llms.txt and a Markdown form of each docs page, and the README is Markdown (10). Most descriptions are one line plus an argument list. `scan_keys`, `scan_all_keys`, `hybrid_search` and `xreadgroup` say when to use them and what to avoid, and the rest do not (11 of 20). Required fields and defaults are typed, but there are no enums (`distance_metric` and the `info` section are free strings) and the bounds on `block_ms`, `timeout_ms` and `max_messages` are checked in code, not declared in the schema (8 of 15). The README and docs pages give client configuration examples. Tool examples exist only inside a few descriptions, and no list of error responses was found (6 of 15). Tagged versions and GitHub release notes, with no changelog file. The 0.4.0 notes name the docs tool `search_documents` where the source has `search_redis_documents`, and Redis's docs page still links a Smithery install that the README dropped in 0.3.5 (8 of 15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 39,
          "points": 6.34,
          "reason": "53 tools load at once, about 15,700 characters of descriptions, with no toolsets, dynamic loading or read-only subset. Pull request #161 for an allowlist has been open since 28 July 2026 (5 of 25). `scan_keys` pages with a cursor, `lrange` and `zrange` take ranges, `xrange` and `xreadgroup` take a count, `read_messages` caps at 100 and the vector tools take `k`. `scan_all_keys`, `hgetall`, `smembers` and `json_get` return everything with no limit (12 of 20). Failures come back as ordinary results, a string starting `Error` or a dictionary with an `error` key, carrying the Redis error text. Input checks return clear messages, such as the refusal of `block_ms=0`. Nothing marks a result as an MCP error and no error list is documented (9 of 20). No tool declares `readOnlyHint`, `destructiveHint` or `idempotentHint`, and pull request #181 adding them was opened on 8 October 2026. No retry guidance was found, and `lpush`, `xadd` and `publish` are not safe to repeat (3 of 20). Most tools need one or two arguments and defaults are stated in the descriptions. The server is a Python package only (10 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 54,
          "points": 9.45,
          "reason": "The server holds one Redis username and password, which Redis ACL rules can scope to keys and command categories and an admin can revoke, or Entra ID credentials for Azure Managed Redis with token renewal. TLS certificate checks are required by default. The README's main example passes the password inside `--url` on the command line, and every caller shares the one user (22 of 30). The server has no read-only mode, no allowlist and no confirmation before `delete`, `json_del`, `xdel` or `xgroup_destroy`. The README gives an ACL example for a read-only user, and no tool runs an arbitrary command, so `FLUSHALL`, `CONFIG` and `EVAL` are out of reach (9 of 20). Stored values, pub/sub messages and docs search results reach the model as they are. No injection guidance was found in the README or the docs pages read (2 of 15). Logging goes to stderr at WARNING by default, so calls are not recorded unless the level is lowered. The connection names itself `redis-py(mcp-server_v0.5.1)`, which Redis shows in `CLIENT LIST` (6 of 15). Redis has a valid security.txt, a HackerOne disclosure programme, and SOC 2 Type 2 and ISO/IEC 27001 on its trust centre. CI runs Bandit and hardened runners, and Dependabot updates are merged within days. The repository has no SECURITY.md and no published advisories (15 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 60,
          "points": 7.5,
          "reason": "Read with the self-hosted rule. The server is free under the MIT licence and needs no signup of its own, so 20 + 20 + 20. No x402, MPP or L402 (0). It needs a Redis database, which can be free Redis Open Source on the owner's machine. Redis Cloud prices were not checked. No hosted version of this server was found on the pages read."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 57,
          "points": 4.99,
          "reason": "0.5.1 was tagged on 4 August 2026 and published on GitHub and PyPI on 5 August, 65 days before the check (20). It is the only release in the 90 days before the check. The one before, 0.5.0, was on 16 March 2026 (0). 19 open items, 11 issues and 8 pull requests. Redis staff answered #156, #163 and #169 within weeks and merged the `mcp` pin the day it was reported, while #174, #137 and #31 have no reply and #45 on streamable HTTP has been open since August 2025 (14 of 25). Listed in the official MCP registry as `io.github.redis/mcp-redis`, a GitHub-verified namespace, with 0.5.1 published on 5 August 2026 and marked latest (15). Dependabot updates merged up to 2 October 2026, a lock file and a green nightly CI. The unbounded `mcp` dependency that broke installs in July is now pinned below 2 (8 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 76,
          "points": 6.65,
          "note": "editorial 65, provenance 87",
          "reason": "MIT (30). Local software that connects to the configured Redis. `search_redis_documents` sends each question to redis.io, which the README mentions through `MCP_DOCS_SEARCH_URL` without saying what is sent or kept. The Redis Privacy Policy, last updated 29 November 2024, does not address this software, and no telemetry code was found in the 0.5.1 source (18 of 30). No deprecation policy. The README warns that the main branch may contain breaking changes, and the `unsubscribe` change in 0.5.1 came with no notice (4 of 20). No usage statistics on the evidence of the source. The docs search call can be redirected or switched off with an empty `MCP_DOCS_SEARCH_URL`, which the README does not present as an opt-out (13 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-09",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "53 tools load at once, about 15,700 characters of descriptions, with no toolsets, dynamic loading or read-only subset. Pull request #161 for an allowlist has been open since 28 July 2026 (5 of 25). `scan_keys` pages with a cursor, `lrange` and `zrange` take ranges, `xrange` and `xreadgroup` take a count, `read_messages` caps at 100 and the vector tools take `k`. `scan_all_keys`, `hgetall`, `smembers` and `json_get` return everything with no limit (12 of 20). Failures come back as ordinary results, a string starting `Error` or a dictionary with an `error` key, carrying the Redis error text. Input checks return clear messages, such as the refusal of `block_ms=0`. Nothing marks a result as an MCP error and no error list is documented (9 of 20). No tool declares `readOnlyHint`, `destructiveHint` or `idempotentHint`, and pull request #181 adding them was opened on 8 October 2026. No retry guidance was found, and `lpush`, `xadd` and `publish` are not safe to repeat (3 of 20). Most tools need one or two arguments and defaults are stated in the descriptions. The server is a Python package only (10 of 15).",
          "maintenance": "0.5.1 was tagged on 4 August 2026 and published on GitHub and PyPI on 5 August, 65 days before the check (20). It is the only release in the 90 days before the check. The one before, 0.5.0, was on 16 March 2026 (0). 19 open items, 11 issues and 8 pull requests. Redis staff answered #156, #163 and #169 within weeks and merged the `mcp` pin the day it was reported, while #174, #137 and #31 have no reply and #45 on streamable HTTP has been open since August 2025 (14 of 25). Listed in the official MCP registry as `io.github.redis/mcp-redis`, a GitHub-verified namespace, with 0.5.1 published on 5 August 2026 and marked latest (15). Dependabot updates merged up to 2 October 2026, a lock file and a green nightly CI. The unbounded `mcp` dependency that broke installs in July is now pinned below 2 (8 of 10).",
          "payments": "Read with the self-hosted rule. The server is free under the MIT licence and needs no signup of its own, so 20 + 20 + 20. No x402, MPP or L402 (0). It needs a Redis database, which can be free Redis Open Source on the owner's machine. Redis Cloud prices were not checked. No hosted version of this server was found on the pages read.",
          "reliability": "Scored as local software, since the owner runs it over stdio. Official PyPI package `redis-mcp-server` with Python 3.10 to 3.14 stated in the metadata, though the README badge says 3.14 and later (20). The CI workflow runs nightly and concluded in success on main on 9 October 2026, on a five-version Python matrix against a live Redis, with 347 test functions and an 80 per cent coverage floor (25). Fresh PyPI installs failed to start from 28 July to 5 August 2026 after `mcp` 2.0.0 removed the module the server imports. The fix merged on 31 July and reached PyPI five days later (issues #163 and #169). Issue #156, where the console command ignores `REDIS_HOST` and `REDIS_PORT`, has been open since 10 July 2026 with an acknowledgement and two unmerged fixes (13 of 25). Tagged releases with numbers in semantic form, but no changelog file, release notes that are lists of pull request titles, and a patch release (0.5.1) that changed the `unsubscribe` input and added six tools. Issue #137 asking for semver tags has no reply (4 of 15). Version 0.5.1 with the classifier `Development Status :: 4 - Beta` (0).",
          "schema": "Each tool is built from a typed Python signature through FastMCP, so inputs carry JSON Schema, read from the source since we do not run vendor software. `get_vector_from_hash` has no return type, several tools return either a value or an error string, and there are no output schemas (21 of 25). redis.io serves llms.txt and a Markdown form of each docs page, and the README is Markdown (10). Most descriptions are one line plus an argument list. `scan_keys`, `scan_all_keys`, `hybrid_search` and `xreadgroup` say when to use them and what to avoid, and the rest do not (11 of 20). Required fields and defaults are typed, but there are no enums (`distance_metric` and the `info` section are free strings) and the bounds on `block_ms`, `timeout_ms` and `max_messages` are checked in code, not declared in the schema (8 of 15). The README and docs pages give client configuration examples. Tool examples exist only inside a few descriptions, and no list of error responses was found (6 of 15). Tagged versions and GitHub release notes, with no changelog file. The 0.4.0 notes name the docs tool `search_documents` where the source has `search_redis_documents`, and Redis's docs page still links a Smithery install that the README dropped in 0.3.5 (8 of 15).",
          "security": "The server holds one Redis username and password, which Redis ACL rules can scope to keys and command categories and an admin can revoke, or Entra ID credentials for Azure Managed Redis with token renewal. TLS certificate checks are required by default. The README's main example passes the password inside `--url` on the command line, and every caller shares the one user (22 of 30). The server has no read-only mode, no allowlist and no confirmation before `delete`, `json_del`, `xdel` or `xgroup_destroy`. The README gives an ACL example for a read-only user, and no tool runs an arbitrary command, so `FLUSHALL`, `CONFIG` and `EVAL` are out of reach (9 of 20). Stored values, pub/sub messages and docs search results reach the model as they are. No injection guidance was found in the README or the docs pages read (2 of 15). Logging goes to stderr at WARNING by default, so calls are not recorded unless the level is lowered. The connection names itself `redis-py(mcp-server_v0.5.1)`, which Redis shows in `CLIENT LIST` (6 of 15). Redis has a valid security.txt, a HackerOne disclosure programme, and SOC 2 Type 2 and ISO/IEC 27001 on its trust centre. CI runs Bandit and hardened runners, and Dependabot updates are merged within days. The repository has no SECURITY.md and no published advisories (15 of 20).",
          "transparency": "MIT (30). Local software that connects to the configured Redis. `search_redis_documents` sends each question to redis.io, which the README mentions through `MCP_DOCS_SEARCH_URL` without saying what is sent or kept. The Redis Privacy Policy, last updated 29 November 2024, does not address this software, and no telemetry code was found in the 0.5.1 source (18 of 30). No deprecation policy. The README warns that the main branch may contain breaking changes, and the `unsubscribe` change in 0.5.1 came with no notice (4 of 20). No usage statistics on the evidence of the source. The docs search call can be redirected or switched off with an empty `MCP_DOCS_SEARCH_URL`, which the README does not present as an opt-out (13 of 20)."
        },
        "sources": [
          {
            "what": "README, tools, install, configuration, Redis ACL and Entra ID",
            "url": "https://github.com/redis/mcp-redis",
            "seen": "2026-10-09"
          },
          {
            "what": "tool definitions, read from a clone of main at e89cff9 (2 October 2026)",
            "url": "https://github.com/redis/mcp-redis/tree/main/src/tools",
            "seen": "2026-10-09"
          },
          {
            "what": "command-line entry point and its defaults",
            "url": "https://github.com/redis/mcp-redis/blob/main/src/main.py",
            "seen": "2026-10-09"
          },
          {
            "what": "connection settings and client name",
            "url": "https://github.com/redis/mcp-redis/blob/main/src/common/connection.py",
            "seen": "2026-10-09"
          },
          {
            "what": "package metadata, dependencies, classifier and supported Python versions",
            "url": "https://github.com/redis/mcp-redis/blob/main/pyproject.toml",
            "seen": "2026-10-09"
          },
          {
            "what": "CI workflow definition",
            "url": "https://github.com/redis/mcp-redis/blob/main/.github/workflows/ci.yml",
            "seen": "2026-10-09"
          },
          {
            "what": "workflow runs on main",
            "url": "https://api.github.com/repos/redis/mcp-redis/actions/runs?branch=main",
            "seen": "2026-10-09"
          },
          {
            "what": "repository statistics",
            "url": "https://api.github.com/repos/redis/mcp-redis",
            "seen": "2026-10-09"
          },
          {
            "what": "GitHub release notes, 0.3.3 to 0.5.1",
            "url": "https://api.github.com/repos/redis/mcp-redis/releases",
            "seen": "2026-10-09"
          },
          {
            "what": "open and closed issues and pull requests",
            "url": "https://github.com/redis/mcp-redis/issues",
            "seen": "2026-10-09"
          },
          {
            "what": "issue #163, PyPI package fails to start with mcp 2.0.0",
            "url": "https://github.com/redis/mcp-redis/issues/163",
            "seen": "2026-10-09"
          },
          {
            "what": "issue #169, request to publish 0.5.1 to PyPI",
            "url": "https://github.com/redis/mcp-redis/issues/169",
            "seen": "2026-10-09"
          },
          {
            "what": "issue #156, command-line defaults override environment variables",
            "url": "https://github.com/redis/mcp-redis/issues/156",
            "seen": "2026-10-09"
          },
          {
            "what": "repository security advisories (none)",
            "url": "https://api.github.com/repos/redis/mcp-redis/security-advisories",
            "seen": "2026-10-09"
          },
          {
            "what": "MCP registry search",
            "url": "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.redis",
            "seen": "2026-10-09"
          },
          {
            "what": "PyPI weekly downloads",
            "url": "https://pypistats.org/api/packages/redis-mcp-server/recent",
            "seen": "2026-10-09"
          },
          {
            "what": "Redis MCP docs, overview",
            "url": "https://redis.io/docs/latest/integrate/redis-mcp/index.html.md",
            "seen": "2026-10-09"
          },
          {
            "what": "Redis MCP docs, install and configuration",
            "url": "https://redis.io/docs/latest/integrate/redis-mcp/install/index.html.md",
            "seen": "2026-10-09"
          },
          {
            "what": "Redis MCP docs, client configuration",
            "url": "https://redis.io/docs/latest/integrate/redis-mcp/client-conf/index.html.md",
            "seen": "2026-10-09"
          },
          {
            "what": "llms.txt",
            "url": "https://redis.io/llms.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "robots.txt, with Content-Signal ai-input=yes",
            "url": "https://redis.io/robots.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "security.txt",
            "url": "https://redis.io/.well-known/security.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "trust centre, compliance list",
            "url": "https://trust.redis.io/",
            "seen": "2026-10-09"
          },
          {
            "what": "privacy policy",
            "url": "https://redis.io/legal/privacy-policy/",
            "seen": "2026-10-09"
          },
          {
            "what": "domain registration",
            "url": "https://rdap.identitydigital.services/rdap/domain/redis.io",
            "seen": "2026-10-09"
          }
        ],
        "openQuestions": [
          "The lead was right on the vendor, the repository and the docs page. It did not say the server is stdio only and marked beta",
          "unchecked: the PyPI project page and JSON API, which robots.txt disallows. The 0.5.1 date rests on the git tag (4 August 2026), the GitHub release and the MCP registry entry (both 5 August)",
          "unchecked: tool definitions as a client receives them from `tools/list`. We did not run the server, so input schemas and the absence of annotations are read from the source",
          "unchecked: the `mcp/redis` image on Docker Hub, which the README calls official. Who builds it and from which version was not read",
          "unchecked: what the docs search endpoint at `redis.io/convai/api/docs/search` logs or keeps. We sent it no request",
          "unchecked: Redis Cloud pricing and its free database, which matter only when the server points at Redis Cloud",
          "unchecked: the HackerOne programme page and whether mcp-redis is in scope",
          "unchecked: whether the redis organisation has a default SECURITY.md outside this repository. None is in the repository itself",
          "The trust centre answered a request for its robots.txt with the trust page itself, so it has no robots file. The compliance names were read from that one response",
          "No privacy or terms document addresses this software, so `provenance.privacy` and `provenance.terms` are both left out"
        ]
      },
      "negative": -2,
      "negativeNotes": [
        "-2: release 0.5.1, tagged 4 August 2026 as a patch release, changed the `unsubscribe` tool's input from `channel` to `subscription_id` and the return type of `subscribe` (pull request #133). The release notes give only the pull request title, 'Add stateful Redis pub/sub subscriptions with message polling'. The earlier tools opened a new pub/sub object on each call and so could not deliver messages, which is why the deduction is reduced (https://github.com/redis/mcp-redis/releases/tag/0.5.1)."
      ],
      "verdict": "Redis's server, under the MIT licence, maps 53 tools onto Redis commands, with typed inputs and a nightly CI run that passed on 9 October 2026. It has no read-only mode, no tool annotations and no changelog file, release 0.5.1 changed the `unsubscribe` input without a note, and PyPI installs failed to start from 28 July to 5 August 2026.",
      "bestFor": "Teams with a Redis database that want an agent to read and write keys, streams, JSON documents and vector indexes on a developer's machine.",
      "strengths": [
        "Maintained by Redis under the MIT licence, with 0.5.1 marked latest in the official MCP registry as `io.github.redis/mcp-redis`",
        "Nightly CI passed on main on 9 October 2026 across Python 3.10 to 3.14 against a live Redis, with 347 test functions and an 80 per cent coverage floor",
        "No tool runs an arbitrary Redis command. Each of the 53 tools maps to a named operation, and none exposes `FLUSHALL`, `CONFIG` or `EVAL`",
        "Connects with a Redis ACL user, TLS with certificate checks required by default, client certificates, or Entra ID for Azure Managed Redis",
        "Blocking reads are capped in the server. `xreadgroup` and `read_messages` refuse waits over 5,000 ms, and pub/sub subscriptions are capped at 50"
      ],
      "weaknesses": [
        "53 tools load at once, with no toolsets and no read-only subset. Pull request #161 for a tool allowlist has been open since 28 July 2026",
        "No tool declares `readOnlyHint` or `destructiveHint`, and nothing asks for confirmation before `delete`, `json_del` or `xgroup_destroy`. Pull request #181 was opened on 8 October 2026",
        "Fresh PyPI installs failed to start from 28 July to 5 August 2026, because 0.5.0 had no upper bound on the `mcp` package (issues #163 and #169)",
        "Started through the `redis-mcp-server` command without flags, the server ignores `REDIS_HOST` and `REDIS_PORT` and connects to 127.0.0.1:6379. Issue #156 has been open since 10 July 2026",
        "No changelog file, no SECURITY.md and no prompt-injection guidance. Patch release 0.5.1 changed the `unsubscribe` input from `channel` to `subscription_id` without a note"
      ],
      "agentNotes": [
        "Pass the connection with `--url` or explicit flags. The `redis-mcp-server` command overrides `REDIS_HOST`, `REDIS_PORT`, `REDIS_DB`, `REDIS_SSL` and `REDIS_CLUSTER_MODE` with its own defaults when flags are absent",
        "Use `scan_keys` with the returned cursor until it is 0. `scan_all_keys`, `hgetall`, `smembers` and `json_get` return everything they match with no limit",
        "Read failures from the text. Tools return strings such as `Error ...` or an `error` key in place of an MCP error result",
        "Keep the `subscription_id` from `subscribe` or `psubscribe` and pass it to `read_messages` and `unsubscribe`. Idle subscriptions close after 300 seconds",
        "Connect as a Redis ACL user limited to the keys and command categories needed, since the server has no read-only switch and `delete` runs without confirmation"
      ],
      "metrics": {
        "kind": "local",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "C",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 55.7
        }
      ],
      "editorialScores": {
        "ergonomics": 39,
        "maintenance": 57,
        "payments": 60,
        "reliability": 62,
        "schema": 64,
        "security": 54,
        "transparency": 65
      },
      "provenanceScore": 87
    },
    "connect": {
      "install": "pip install redis-mcp-server",
      "config": {
        "mcpServers": {
          "RedisMCPServer": {
            "args": [
              "--from",
              "redis-mcp-server@latest",
              "redis-mcp-server",
              "--url",
              "redis://localhost:6379/0"
            ],
            "command": "uvx"
          }
        }
      }
    },
    "letme": {
      "capability": "https://letme.dev/db.document",
      "tool": "https://letme.dev/redis-mcp"
    },
    "notable": [
      "53 tools in 11 modules at 0.5.1, covering strings (2), hashes (7), lists (7), sets (3), sorted sets (3), streams (7), pub/sub (5), JSON (3), the query engine (6), server information (3) and key utilities with docs search (7) (https://github.com/redis/mcp-redis/tree/main/src/tools)",
      "stdio is the only transport. The README says streamable HTTP will be added later, and issue #45 asking for it has been open since 13 August 2025 (https://github.com/redis/mcp-redis#features)",
      "`search_redis_documents` sends the question as a GET request to `https://redis.io/convai/api/docs/search` with a `Redis-MCP-Server/\u003cversion\u003e` User-Agent. `MCP_DOCS_SEARCH_URL` changes the address, and an empty value turns the tool off (https://github.com/redis/mcp-redis/blob/main/src/tools/misc.py)",
      "Release 0.5.1 of 4 August 2026 added four stream consumer-group tools, `psubscribe` and `read_messages`, and changed `unsubscribe` to take a `subscription_id` in place of a `channel`. The release notes list the pull request titles only (https://github.com/redis/mcp-redis/releases/tag/0.5.1)",
      "The `mcp` package's 2.0.0 release on 28 July 2026 removed the module the server imports. PyPI still served 0.5.0 with no upper bound until 0.5.1 was published on 5 August 2026 (https://github.com/redis/mcp-redis/issues/163)",
      "The README gives a Redis ACL example for a read-only user, `ACL SETUSER readonlyuser on \u003emypassword ~* +@read -@write`. The server itself has no read-only setting (https://github.com/redis/mcp-redis#redis-acl)",
      "The server names itself to Redis as `redis-py(mcp-server_v0.5.1)`, so its connections can be told apart in `CLIENT LIST` (https://github.com/redis/mcp-redis/blob/main/src/common/connection.py)",
      "The package metadata carries the classifier `Development Status :: 4 - Beta`, and the README says the main branch may contain breaking changes (https://github.com/redis/mcp-redis/blob/main/pyproject.toml)"
    ],
    "area": "developer",
    "details": [
      {
        "label": "What is graded",
        "value": "The open-source server in redis/mcp-redis, version 0.5.1, which the owner runs over stdio. Read from the source, the README and Redis's docs pages. We did not install or run it"
      },
      {
        "label": "Install",
        "value": "`uvx --from redis-mcp-server@latest redis-mcp-server --url redis://localhost:6379/0`, or `pip install redis-mcp-server`. Python 3.10 to 3.14 per the package metadata. The README also names the `mcp/redis` image on Docker Hub and a Dockerfile"
      },
      {
        "label": "Transports",
        "value": "stdio only. Streamable HTTP is not supported at 0.5.1"
      },
      {
        "label": "Tools",
        "value": "Strings `set`, `get`. Hashes `hset`, `hget`, `hdel`, `hgetall`, `hexists`, `set_vector_in_hash`, `get_vector_from_hash`. Lists `lpush`, `rpush`, `lpop`, `rpop`, `lrange`, `llen`, `lrem`. Sets `sadd`, `srem`, `smembers`. Sorted sets `zadd`, `zrange`, `zrem`. Streams `xadd`, `xrange`, `xdel`, `xgroup_create`, `xgroup_destroy`, `xreadgroup`, `xack`. Pub/sub `publish`, `subscribe`, `psubscribe`, `read_messages`, `unsubscribe`. JSON `json_set`, `json_get`, `json_del`. Query engine `get_indexes`, `get_index_info`, `get_indexed_keys_number`, `create_vector_index_hash`, `vector_search_hash`, `hybrid_search`. Server `dbsize`, `info`, `client_list`. Keys `delete`, `type`, `expire`, `rename`, `scan_keys`, `scan_all_keys`. Docs `search_redis_documents`"
      },
      {
        "label": "Credentials",
        "value": "`--url redis://user:secret@host:port/db` (or `rediss://` for TLS), or `--host`, `--port`, `--db`, `--username`, `--password`, `--ssl` and the `--ssl-*` flags, or the `REDIS_*` environment variables. Entra ID through `REDIS_ENTRAID_AUTH_FLOW` and its companions. `--cluster-mode` for Redis Cluster"
      },
      {
        "label": "Restrictions",
        "value": "No read-only mode, tool allowlist or confirmation step in the server. Access is limited by the Redis ACL of the user it connects as. No tool runs an arbitrary command"
      },
      {
        "label": "Limits",
        "value": "`xreadgroup` blocks for at most 5,000 ms and refuses 0. `read_messages` waits at most 5,000 ms and returns at most 100 messages. 50 active pub/sub subscriptions, each closed after 300 idle seconds. Docs search times out after 10 seconds. Ten connections in the pool"
      },
      {
        "label": "Logging",
        "value": "Python logging to stderr at WARNING by default, changed with `MCP_REDIS_LOG_LEVEL`. No per-call log at the default level"
      },
      {
        "label": "Usage statistics",
        "value": "No telemetry code was found in the 0.5.1 source. The only outbound call other than to Redis (and to Microsoft for Entra ID tokens) is `search_redis_documents`, which queries redis.io"
      },
      {
        "label": "Releases",
        "value": "0.1.0 tagged 15 April 2025, 0.2.0 on 8 July 2025, 0.3.0 to 0.3.6 between 3 October and 7 November 2025, 0.4.0 and 0.4.1 on 25 and 26 November 2025, 0.5.0 on 16 March 2026, 0.5.1 tagged 4 August 2026 and published on 5 August"
      }
    ],
    "provenance": {
      "legalEntity": "Redis Ltd.",
      "domain": "redis.io",
      "domainRegistered": "2010-05-28",
      "endpointOnVendorDomain": null,
      "terms": "",
      "privacy": "",
      "statusPage": "",
      "changelog": "https://github.com/redis/mcp-redis/releases",
      "securityTxt": "valid",
      "checked": "2026-10-09",
      "notes": [
        "No terms document governs this software beyond the MIT licence, so `terms` is left out.",
        "`privacy` is left out. The Redis Privacy Policy (last updated 29 November 2024, https://redis.io/legal/privacy-policy/) names Redis Ltd. and its affiliates and covers Redis's sites and services. It does not address this open-source server, which runs on the owner's machine. Questions sent by `search_redis_documents` do go to redis.io.",
        "The copyright line in the `LICENSE` file reads Redis, inc. The privacy policy names Redis Ltd., which is used here.",
        "redis.io/.well-known/security.txt gives a contact page, a HackerOne disclosure programme as policy and an expiry of 19 December 2030.",
        "RDAP for redis.io gives a registration date of 2010-05-28.",
        "The server runs on the owner's machine and connects to the Redis it is configured for, so there is no vendor endpoint to check. The changelog link is the GitHub releases page, since the repository has no changelog file."
      ],
      "score": 87,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Redis Ltd.",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "redis.io, registered 2010-05-28 (16 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "no hosted endpoint",
          "points": 0,
          "max": 0,
          "state": "na"
        },
        {
          "check": "Terms of service",
          "value": "nothing hosted, so the MIT licence stands in",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Privacy policy",
          "value": "nothing hosted, not scored",
          "points": 0,
          "max": 0,
          "state": "na"
        },
        {
          "check": "Status page",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "valid",
          "points": 10,
          "max": 10,
          "state": "ok"
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/redis-mcp.json",
    "live": {
      "slug": "redis-mcp",
      "versions": [
        {
          "registry": "github",
          "name": "redis/mcp-redis",
          "version": "0.5.1",
          "released": "2026-08-05",
          "seenAt": "2026-10-09T17:16:10.784079074Z"
        },
        {
          "registry": "pypi",
          "name": "redis-mcp-server",
          "version": "0.5.1",
          "released": "2026-08-05",
          "seenAt": "2026-10-09T17:16:10.590203387Z"
        }
      ],
      "githubStars": 633,
      "pypiWeekly": 3644,
      "updatedAt": "2026-10-09T17:16:10.784079074Z"
    }
  }
}
