关于 redis-docs-mcp
为 redis.io 文档查询工具提供使用指南,面向通过 Redis Docs MCP 查找 Redis 资料的用户。它解释索引标识符、元数据与文档覆盖范围,并说明搜索、获取和提问工具的使用边界。
主要功能
- 01解释文档分段标识符
- 02区分版本元数据的含义
- 03说明文档索引覆盖范围
- 04提供搜索与获取结果的处理建议
- 05说明 ask 的限流与回退方式
适用场景
- 01查找 Redis 命令或客户端文档
- 02区分同页搜索结果中的不同段落
- 03核实功能引入版本信息
- 04ask 受限或无结果时改用搜索获取
MCP 相关
该技能指导如何使用 redis-docs MCP 服务的 search、fetch 和 ask 工具。服务向 MCP 客户端提供 redis.io 文档查询与获取能力。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ redis/ agent-skills --skill redis-docs-mcp安装后在 Claude Code 中输入/redis-docs-mcp确认已加载。
详细介绍
Redis 文档 MCP
redis-docs 服务通过 MCP 提供 redis.io 文档,并提供 search、fetch 和 ask。这些工具各自带有说明;对于何时调用每个工具,说明是准确的——先用 search,再用 fetch 获取所需内容,只有涉及多个领域的问题才用 ask。本技能介绍这些说明中有误或未提及的内容。
适用场景
- 你准备通过这些工具查找信息。
- 返回结果与工具说明承诺的不符。
search没有返回结果,或者ask遭遇速率限制或拒绝回答。
如果相关的 Redis 同级技能涵盖了该主题,请优先使用它们——其中包含原始文档页面没有的精选指南。使用这些工具核实具体信息并补充缺漏。
1. ID 指向的是章节,而不是页面
工具说明说 search 会返回“页面”,而 fetch 会返回“一页 Redis 文档”。索引按章节划分,ID 有四种形式:
| 形式 | 示例 | fetch 返回的内容 |
|---|---|---|
| 裸页面 | commands/expire | 整个页面——EXPIRE 页面约 8.5 KB,包含示例和附录 |
| 命名锚点 | develop/using-commands/keyspace#sec:key-expiration | 该章节 |
| 序号窗口 | develop/ai/search-and-query/advanced-concepts/expiration#sec:w0 | 该窗口,约 1–2 KB |
| 锚点 + 窗口 | develop/clients/jedis/connect#sec:configure-a-connection-pool-w0 | 该章节的窗口 |
由此可知:
- 同一组结果中重复出现的 URL 并非重复结果。 多个命中项通常共享一个页面 URL,但 ID 不同——它们是同一页面中的不同章节。请根据摘要片段而非 URL 区分它们。
#sec:wN序号表示索引窗口。 这些窗口按相关性排序返回,而非按w0、w1、w2排列。不要试图根据摘要片段重新拼出页面;请用fetch获取你真正需要的章节。- 切勿自行构造 ID。 有效 ID 来自
search结果,或ask结果中的sources[].id。猜测commands/<name>恰好可行,但对所有章节类 ID 都无效。 - 摘要片段是正文开头被截断的部分,并非总结。 如果它恰好在关键信息处截断于某个单词中间,那么通过该 ID 使用
fetch就一定能获取后续内容——无需换用其他词重新搜索。 - 引用页面的
url,并在正文中注明章节。#sec:w1是索引地址,不是网页锚点。带命名锚点的 ID(#sec:<name>或#sec:<name>-wN)会返回带有可用片段的 URL;裸#sec:wNID 则不会。
返回文本中的链接指向源文件——[`DEL`](/content/commands/del.md)——它们既不是网页 URL,也不是 fetch ID。不要引用它们,也不要将其转换成 ID;应改为搜索相关词条。
2. metadata.version 表示“引入于”,而非“截至此版本”
fetch 会返回包含 topic、version 和 section 的 metadata。在 commands/* 页面中,version 是命令引入时对应的版本——commands/setex 显示 2.0.0,commands/hexpire 显示 7.4.0。这个字段只适用于回答“它是什么时候加入的”,除此之外没有其他用途:commands/expire 显示 1.0.0,但其正文记载了 2.1.3 中的行为变更,以及它与 Redis Search 在 Redis 8 中的交互。在 commands/* 之外,该字段通常根本不是版本号——Redis Search 页面会显示产品渠道 stack。
因此,切勿根据 metadata.version 回答“这个功能是否在 Redis N 中发生了变化?”。请从正文中读取明确说明的内容(例如“Redis 8 之前……”或“自 Redis 7.4 起”),并引用该内容。
3. 语料库涵盖的内容
索引仅包含 redis.io,但其范围比听起来更广。索引并会返回各语言客户端的使用指南(develop/clients/redis-py/connect#sec:…、develop/clients/jedis/connect#sec:…),以及 integrate/… 页面、operate/… 下的 Redis Software 和 Redis Cloud 运维文档,还有 Kubernetes operator 生成的 CRD 参考文档。因此请先搜索,包括客户端库和 Enterprise 相关问题。
详细信息往往不在摘要中。搜索 redis-py 的 max_connections 时,结果会返回 develop/clients/redis-py/async#sec:connection-pools,摘要中却完全没有提到它,但获取的章节对此有说明。对于库的完整签名,应以其自身的 API 参考或源代码为准。
确实不在索引中的内容包括:GitHub 问题和讨论、包管理器页面(PyPI、npm、Maven)以及第三方文章。
因此,在断定缺少内容之前,请先 fetch 相关结果;即便如此,也应表述为“在我检索到的结果中未找到”,绝不要说“redis.io 上没有”或“不存在”。
4. ask 的成本比看起来更高
- 每个 IP 的每分钟调用额度较低,并由同一 NAT 后的所有人共享,因此办公室或 CI runner 可能会共同耗尽额度。遇到速率限制错误时,先等待一段时间再重试,不要立即重试;并且一次只问一个具体问题。
- 如果收到拒绝,不要换种说法再试。“文档未涵盖此内容”是有依据的结果,不是解析失败。请改用
search+fetch。 - 如果要查找综合回答背后的原始来源,请使用
ask→sources[].id→fetch。
每个工具的查询文本都会发送给 Redis;通过 ask 提交的查询还会发送给网关背后的模型提供商。因此,与其粘贴专有代码,不如提出关于 Redis 命令或行为的一般性问题。