name: context7-efficient description: 使用Context7 MCP的令牌高效库文档获取器,通过智能shell管道过滤实现86.8%的令牌节省。获取JavaScript、Python、Go、Rust等库的代码示例、API参考和最佳实践。当用户询问库文档、需要代码示例、想要API使用模式、学习新框架、需要语法参考或使用库特定信息进行故障排除时使用。触发问题包括“给我看React hooks”、“如何使用Prisma”、“Next.js路由语法是什么”或任何库/框架文档请求。
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等
- 主题: 特定功能(hooks、路由、查询等)
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
故障排除
| 问题 | 解决方案 |
|---|---|
| 库未找到 | 尝试名称变体或使用更广泛的搜索词 |
| 无结果 | 使用--mode info或更广泛的主题 |
| 需要更多示例 | 增加页面:--page 2 |
| 想要完整上下文 | 使用--mode info获取解释 |
参考
有关详细的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%功能。