Skip to content

Commit 8d34aed

Browse files
committed
feat: add context7 dialing guide
1 parent 8f7e686 commit 8d34aed

File tree

1 file changed

+230
-0
lines changed

1 file changed

+230
-0
lines changed
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
# MCP 文档查询优先级规则
2+
3+
当用户或模型需要了解开源工具或库的详细用法时,在使用模型记忆前,务必优先尝试使用 MCP 相关工具查询在线文档。
4+
5+
## 触发条件
6+
7+
以下情况需要触发文档查询流程:
8+
9+
1. **用户询问开源库/工具的用法**
10+
- "如何使用 XXX 库"
11+
- "XXX 框架的最佳实践"
12+
- "XXX 工具怎么配置"
13+
14+
2. **需要查看最新文档**
15+
- 用户要求查看官方文档
16+
- 库/工具有版本更新
17+
- 需要最新的 API 信息或配置示例
18+
19+
3. **模型不确定具体用法**
20+
- 库的 API 文档可能已过时
21+
- 需要验证最新的配置方式
22+
- 需要查看官方示例代码
23+
24+
## 可用的 MCP 工具
25+
26+
### 1. resolve-library-id
27+
28+
用于解析和查找开源库的标识符。
29+
30+
**用途**:获取库的规范 Context7 兼容标识符(格式:`/org/project``/org/project/version`),用于后续查询文档。
31+
32+
**必需参数**
33+
- `query`:用户需要帮助的问题或任务描述
34+
- `libraryName`:要搜索的库名称
35+
36+
**返回信息**
37+
- Library ID:Context7 兼容标识符
38+
- Name:库名称
39+
- Description:库描述
40+
- Code Snippets:可用代码示例数量
41+
- Source Reputation:权威性指示(High, Medium, Low, Unknown)
42+
- Benchmark Score:质量指示(100 为最高分)
43+
- Versions:可用版本列表
44+
45+
**使用示例**
46+
```
47+
resolve-library-id(query: "如何使用 React hooks", libraryName: "React")
48+
resolve-library-id(query: "Vue 3 响应式 API", libraryName: "Vue")
49+
resolve-library-id(query: "Express.js 中间件", libraryName: "Express.js")
50+
```
51+
52+
### 2. query-docs
53+
54+
用于查询库或工具的在线文档和代码示例。
55+
56+
**用途**:获取库的官方文档、API 参考、使用示例等详细信息。
57+
58+
**必需参数**
59+
- `libraryId`:Context7 兼容标识符(格式:`/org/project``/org/project/version`
60+
- `query`:具体的查询问题或需求
61+
62+
**返回信息**
63+
- 官方文档内容
64+
- 代码示例
65+
- API 参考
66+
- 配置说明
67+
68+
**使用示例**
69+
```
70+
query-docs(libraryId: "/facebook/react", query: "useState hook 用法")
71+
query-docs(libraryId: "/vuejs/core", query: "Composition API reactive 函数")
72+
query-docs(libraryId: "/expressjs/express", query: "中间件开发最佳实践")
73+
```
74+
75+
**重要限制**
76+
- 每个查询最多调用 3 次,若无法找到所需信息,使用已有的最佳结果
77+
- 若第一个查询失败,可以调整查询词重试,但要计入次数限制
78+
79+
## 执行流程
80+
81+
### 步骤 1:识别查询需求
82+
83+
检查用户输入是否涉及以下情况:
84+
- 询问开源工具/库的用法
85+
- 需要查看官方文档
86+
- 需要最新的配置示例
87+
88+
### 步骤 2:使用 resolve-library-id 解析库标识
89+
90+
如果用户询问的库名称不确定或需要获得规范的 Context7 标识符,使用 `resolve-library-id` 工具。
91+
92+
**示例**
93+
```
94+
用户输入:"怎么用 React 的 hooks?"
95+
执行:
96+
- query: "怎么用 React 的 hooks?"
97+
- libraryName: "React"
98+
结果:获得库的规范标识符,如 /facebook/react
99+
```
100+
101+
### 步骤 3:使用 query-docs 查询文档
102+
103+
基于解析结果的 libraryId,使用 `query-docs` 工具查询相关的在线文档。
104+
105+
**示例**
106+
```
107+
用户输入:"怎么用 React 的 hooks?"
108+
执行:
109+
- libraryId: "/facebook/react"
110+
- query: "useState hook 用法和最佳实践"
111+
结果:获得官方文档中关于 Hooks 的详细信息和代码示例
112+
```
113+
114+
### 步骤 4:综合结果
115+
116+
将查询到的在线文档与模型知识相结合,为用户提供最准确、最新的回答。
117+
118+
## 查询优先顺序
119+
120+
1. **优先使用 MCP 工具查询在线文档**
121+
- 确保获得最新的官方信息
122+
- 避免使用过时的记忆信息
123+
- 获得权威的代码示例
124+
125+
2. **无缝回退到模型记忆**
126+
- 若工具无法访问或不可用,直接使用模型记忆中的信息
127+
- 无需向用户反馈工具不可用的情况
128+
- 继续为用户提供有帮助的回答
129+
130+
3. **补充说明**
131+
- 结合官方文档的最新信息与项目实际需求
132+
- 根据 Source Reputation 和 Benchmark Score 评估信息质量
133+
- 提供更加准确和及时的建议
134+
135+
## 查询调用限制
136+
137+
- **最多调用 3 次**:对单个查询 `query-docs` 最多调用 3 次
138+
- **计数方式**:每次调用 `query-docs` 都计入限制,包括不同关键词的查询
139+
- **超出限制处理**:如果 3 次查询后仍未找到所需信息,使用已有的最佳结果回答用户
140+
141+
## 注意事项
142+
143+
- **始终优先查询**:即使模型记忆中有相关信息,也应优先尝试查询在线文档
144+
- **无缝回退**:当 MCP 工具无法访问时,直接使用模型记忆,不向用户反馈工具不可用
145+
- **库标识规范化**:优先使用 `resolve-library-id` 获得规范的 Context7 标识符,避免手动猜测
146+
- **版本指定**:如果用户明确提到版本,使用对应版本的 libraryId(如 `/facebook/react/v18.0.0`
147+
- **选库质量指标**
148+
- 优先选择 Source Reputation 为 High 或 Medium 的库
149+
- 参考 Benchmark Score 评估质量(100 为最高)
150+
- 选择 Code Snippets 数量多的库(文档示例丰富)
151+
- **调用限制**:严格遵守 `query-docs` 最多 3 次调用的限制
152+
- **查询词优化**
153+
- 第一次查询用通用关键词(如 "useState hook")
154+
- 若结果不理想,第二次查询用更具体的需求描述(如 "useState hook 性能优化")
155+
- 第三次为最后尝试,选择最能直达用户需求的查询词
156+
- **缓存利用**:MCP 工具可能会缓存查询结果,无需重复查询完全相同的内容
157+
- **用户体验**:多数查询应在 1-2 秒内完成,不会显著增加响应时间
158+
159+
## 与其他规则的关系
160+
161+
- **auto-use-skills.md**:MCP 工具查询是获取信息的补充手段,不冲突
162+
- **user-teaching-memory.md**:MCP 查询结果可以作为项目知识被记录到 MEMORY.md
163+
- **code-quality-standards.md**:使用最新的官方文档确保代码质量和最佳实践
164+
165+
## 示例场景
166+
167+
### 场景 1:用户询问库的用法
168+
169+
```
170+
用户输入:"如何在 Vue 3 中使用 Composition API 创建响应式数据?"
171+
172+
执行流程:
173+
1. resolve-library-id(
174+
query: "如何在 Vue 3 中使用 Composition API",
175+
libraryName: "Vue"
176+
)
177+
结果:获得 /vuejs/core
178+
179+
2. query-docs(
180+
libraryId: "/vuejs/core",
181+
query: "Composition API reactive 函数创建响应式数据"
182+
)
183+
结果:获得官方文档和代码示例
184+
185+
3. 综合结果为用户提供最新的代码示例和解释
186+
```
187+
188+
### 场景 2:需要验证配置方式
189+
190+
```
191+
用户输入:"Webpack 5 怎么配置代码分割?"
192+
193+
执行流程:
194+
1. resolve-library-id(
195+
query: "Webpack 5 代码分割配置",
196+
libraryName: "Webpack"
197+
)
198+
结果:获得 /webpack/webpack 或特定版本
199+
200+
2. query-docs(
201+
libraryId: "/webpack/webpack",
202+
query: "code splitting 配置方式"
203+
)
204+
结果:获得官方推荐的配置方式
205+
206+
3. 如果结果不够详细,可选择第二次查询(3 次限制内):
207+
query-docs(
208+
libraryId: "/webpack/webpack",
209+
query: "code splitting 最佳实践示例"
210+
)
211+
```
212+
213+
### 场景 3:查询最新的 API 参考
214+
215+
```
216+
用户输入:"Node.js 的 fs.promises API 有哪些方法?"
217+
218+
执行流程:
219+
1. resolve-library-id(
220+
query: "Node.js fs.promises API 参考",
221+
libraryName: "Node.js"
222+
)
223+
结果:获得 /nodejs/node 或对应版本
224+
225+
2. query-docs(
226+
libraryId: "/nodejs/node",
227+
query: "fs.promises API 方法列表和用法"
228+
)
229+
结果:提供最新的 API 列表和使用示例
230+
```

0 commit comments

Comments
 (0)