name: fetching-library-docs description: | 使用Context7 MCP实现77%令牌节省的高效库API文档获取工具。 获取已发布库(React、Next.js、Prisma等)的代码示例、API参考和使用模式。 当用户询问“如何使用X库”、需要代码示例、想要API语法或学习框架官方API时使用。 触发词:“展示React钩子”、“Prisma查询语法”、“Next.js路由API”。 不适用于探索仓库内部/源代码(使用researching-with-deepwiki)或本地文件。
Context7高效文档获取器
通过Shell管道自动减少77%令牌消耗来获取库文档。
快速开始
始终使用令牌高效的Shell管道:
# 自动库解析+过滤
bash scripts/fetch-docs.sh --library <库名称> --topic <主题>
# 示例:
bash scripts/fetch-docs.sh --library react --topic useState
bash scripts/fetch-docs.sh --library nextjs --topic routing
bash scripts/fetch-docs.sh --library prisma --topic queries
结果: 返回约205个令牌而非约934个令牌(节省77%)。
标准工作流程
对于任何文档请求,遵循此工作流程:
1. 识别库和主题
从用户查询中提取:
- 库: React、Next.js、Prisma、Express等
- 主题: 特定功能(钩子、路由、查询等)
2. 使用Shell管道获取
bash scripts/fetch-docs.sh --library <库> --topic <主题> --verbose
--verbose标志显示令牌节省统计信息。
3. 使用过滤输出
脚本自动:
- 获取完整文档(934个令牌,保留在子进程中)
- 过滤为代码示例+API签名+关键说明
- 仅返回必要内容(205个令牌到Claude)
参数
基本用法
bash scripts/fetch-docs.sh [选项]
必需(选择一项):
--library <名称>- 库名称(如“react”、“nextjs”)--library-id <ID>- 直接Context7 ID(更快,跳过解析)
可选:
--topic <主题>- 要聚焦的特定功能--mode <code|info>- code用于示例(默认),info用于概念--page <1-10>- 更多结果的分页--verbose- 显示令牌节省统计信息
模式选择
代码模式(默认): 返回代码示例+API签名
--mode code
信息模式: 返回概念解释+较少示例
--mode info
常见库ID
使用--library-id进行更快查找(跳过解析):
React: /reactjs/react.dev
Next.js: /vercel/next.js
Express: /expressjs/express
Prisma: /prisma/docs
MongoDB: /mongodb/docs
Fastify: /fastify/fastify
NestJS: /nestjs/docs
Vue.js: /vuejs/docs
Svelte: /sveltejs/site
工作流程模式
模式1:快速代码示例
用户询问:“展示React useState示例”
bash scripts/fetch-docs.sh --library react --topic useState --verbose
返回:5个代码示例+API签名+说明(约205个令牌)
模式2:学习新库
用户询问:“如何开始使用Prisma?”
# 步骤1:获取概述
bash scripts/fetch-docs.sh --library prisma --topic "getting started" --mode info
# 步骤2:获取代码示例
bash scripts/fetch-docs.sh --library prisma --topic queries --mode code
模式3:特定功能查找
用户询问:“Next.js路由如何工作?”
bash scripts/fetch-docs.sh --library-id /vercel/next.js --topic routing
当您知道确切ID时,使用--library-id更快。
模式4:深度探索
用户需要全面信息:
# 第1页:基本示例
bash scripts/fetch-docs.sh --library react --topic hooks --page 1
# 第2页:高级模式
bash scripts/fetch-docs.sh --library react --topic hooks --page 2
令牌效率
工作原理:
fetch-docs.sh调用fetch-raw.sh(使用mcp-client.py)- 完整响应(934个令牌)保留在子进程内存中
- Shell过滤器(awk/grep/sed)提取要点(0个LLM令牌使用)
- 返回过滤输出(205个令牌)到Claude
节省:
- 直接MCP:每查询934个令牌
- 此方法:每查询205个令牌
- 减少77%
不要直接使用mcp-client.py - 它会绕过过滤并浪费令牌。
高级:库解析
如果库名称失败,尝试变体:
# 尝试不同格式
--library "next.js" # 带点
--library "nextjs" # 不带点
--library "next" # 简短形式
# 或手动搜索
bash scripts/fetch-docs.sh --library "your-library" --verbose
# 检查输出以获取建议的库ID
验证
运行:python3 scripts/verify.py
预期:✓ fetch-docs.sh 准备就绪
如果验证失败
- 运行诊断:
ls -la scripts/fetch-docs.sh - 检查:脚本存在且可执行
- 修复:
chmod +x scripts/fetch-docs.sh - 停止并报告如果仍然失败 - 不要继续下游步骤
故障排除
| 问题 | 解决方案 |
|---|---|
| 库未找到 | 尝试名称变体或使用更广泛的搜索词 |
| 无结果 | 使用--mode info或更广泛的主题 |
| 需要更多示例 | 增加页码:--page 2 |
| 需要完整上下文 | 使用--mode info获取解释 |
| 权限被拒绝 | 运行:chmod +x scripts/*.sh |
参考
有关详细的Context7 MCP工具文档,请参阅:
- references/context7-tools.md - 完整工具参考
实现说明
组件(仅供参考,使用fetch-docs.sh):
mcp-client.py- 通用MCP客户端(基础)fetch-raw.sh- MCP包装器extract-code-blocks.sh- 代码示例过滤器(awk)extract-signatures.sh- API签名过滤器(awk)extract-notes.sh- 重要说明过滤器(grep)fetch-docs.sh- 主要协调器(始终使用此工具)
架构: Shell管道在子进程中处理文档,保持完整响应不在Claude上下文中。只有过滤后的要点进入LLM上下文,实现77%令牌节省且100%功能保留。