@opencxd/ascend-doc-mcp 0.0.1-alpha-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +200 -0
- package/configs/hiascend.json +102 -0
- package/configs/hikunpeng.json +83 -0
- package/dist/index.js +16701 -0
- package/dist/index.js.map +1 -0
- package/package.json +45 -0
- package/presets/ascend-aliases.json +22 -0
- package/presets/ascend-code-samples.json +14 -0
- package/presets/kunpeng-aliases.json +18 -0
- package/presets/kunpeng-code-samples.json +8 -0
package/README.md
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# ascend-doc-mcp
|
|
2
|
+
|
|
3
|
+
配置驱动的昇腾社区文档查询 MCP 服务器。
|
|
4
|
+
|
|
5
|
+
## 安装与运行
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 直接使用(npx 自动拉取最新版)
|
|
9
|
+
npx ascend-doc-mcp
|
|
10
|
+
|
|
11
|
+
# 或全局安装
|
|
12
|
+
pnpm install -g ascend-doc-mcp
|
|
13
|
+
ascend-doc-mcp
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### CLI 参数
|
|
17
|
+
|
|
18
|
+
所有启动参数通过 CLI 传入(跨平台通用,无需设置环境变量):
|
|
19
|
+
|
|
20
|
+
| 参数 | 说明 | 默认值 |
|
|
21
|
+
|------|------|--------|
|
|
22
|
+
| `--transport=stdio|http` | 传输模式 | stdio |
|
|
23
|
+
| `--port=3200` | HTTP 端口 | 3200 |
|
|
24
|
+
| `--host=127.0.0.1` | HTTP 监听地址 | 127.0.0.1 |
|
|
25
|
+
|
|
26
|
+
环境变量 `TRANSPORT_MODE`、`MCP_PORT`、`MCP_HOST` 作为向后兼容 fallback。
|
|
27
|
+
|
|
28
|
+
社区标识固定为 `ascend`(昇腾社区)。
|
|
29
|
+
|
|
30
|
+
### 传输模式
|
|
31
|
+
|
|
32
|
+
支持两种传输模式:**stdio**(默认)和 **StreamableHTTP**(远程服务)。
|
|
33
|
+
|
|
34
|
+
| 模式 | 适用场景 | 启动方式 |
|
|
35
|
+
|------|---------|---------|
|
|
36
|
+
| stdio | 本地 CLI / IDE 集成(Claude Desktop、VS Code) | 默认,无需额外配置 |
|
|
37
|
+
| StreamableHTTP | 远程服务 / 多客户端共享 / Claude Code url 配置 | `--transport=http` |
|
|
38
|
+
|
|
39
|
+
#### stdio 模式(默认)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# 启动 MCP 服务器
|
|
43
|
+
npx ascend-doc-mcp
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
调用工具时传 `community` 参数指定昇腾社区:
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{ "community": "ascend", "product": "CANNCommunityEdition" }
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### HTTP 模式
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# 启动 HTTP 服务器
|
|
56
|
+
npx ascend-doc-mcp --transport=http
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### AI 客户端配置示例
|
|
60
|
+
|
|
61
|
+
#### Claude Desktop — stdio 模式
|
|
62
|
+
|
|
63
|
+
`claude_desktop_config.json`:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"ascend-doc": {
|
|
69
|
+
"command": "npx",
|
|
70
|
+
"args": ["-y", "ascend-doc-mcp"]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
只需配置一个 MCP server,`community` 参数固定传 `ascend`。
|
|
77
|
+
|
|
78
|
+
#### Claude Code — HTTP url 模式
|
|
79
|
+
|
|
80
|
+
`~/.claude/settings.json`:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"ascend-doc": { "url": "http://127.0.0.1:3200/mcp" }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## 工具一览
|
|
91
|
+
|
|
92
|
+
16 个 MCP 工具,按优先级分三层。所有工具均需传 `community` 参数(ascend)。
|
|
93
|
+
|
|
94
|
+
### P0 — 核心查询链
|
|
95
|
+
|
|
96
|
+
典型工作流:`list_products` → `list_versions` → `get_doc_toc` → `get_doc_content`
|
|
97
|
+
|
|
98
|
+
| 工具 | 说明 |
|
|
99
|
+
|------|------|
|
|
100
|
+
| `list_products` | 查询社区产品目录(按类别筛选) |
|
|
101
|
+
| `list_versions` | 查询产品版本列表 |
|
|
102
|
+
| `get_doc_toc` | 获取版本文档目录(章节树) |
|
|
103
|
+
| `get_doc_content` | 获取文档页内容(HTML→Markdown) |
|
|
104
|
+
| `search_docs` | 全站文档搜索 |
|
|
105
|
+
|
|
106
|
+
### P1 — 深度查询
|
|
107
|
+
|
|
108
|
+
| 工具 | 说明 |
|
|
109
|
+
|------|------|
|
|
110
|
+
| `browse_docs` | 按面包屑路径浏览文档 |
|
|
111
|
+
| `check_compatibility` | 硬件→软件兼容性矩阵 |
|
|
112
|
+
| `search_troubleshooting` | 故障案例搜索 |
|
|
113
|
+
| `get_latest_version` | 获取产品最新稳定版本 |
|
|
114
|
+
| `get_download_options` | 获取软件包下载选项树 |
|
|
115
|
+
| `get_install_commands` | 获取定制化安装命令 |
|
|
116
|
+
| `list_pdf_downloads` | 获取 PDF 文档下载列表 |
|
|
117
|
+
| `get_version_announcements` | 获取版本公告/文档动态 |
|
|
118
|
+
|
|
119
|
+
### P2 — 辅助工具
|
|
120
|
+
|
|
121
|
+
| 工具 | 说明 |
|
|
122
|
+
|------|------|
|
|
123
|
+
| `search_docs_in_product` | 产品内文档搜索 |
|
|
124
|
+
| `get_doc_outline` | 获取文档大纲(标题树) |
|
|
125
|
+
| `get_code_samples` | 获取文档中的代码示例 |
|
|
126
|
+
|
|
127
|
+
## 降级机制
|
|
128
|
+
|
|
129
|
+
每个工具都有三层降级保障,确保不会因单一数据源故障而返回空结果:
|
|
130
|
+
|
|
131
|
+
1. **实时 API** — 优先调用社区网关接口
|
|
132
|
+
2. **本地预设** — API 不可用时使用包内预设数据(产品别名、默认路径)
|
|
133
|
+
3. **llms.txt / 空+指引** — 终极兜底:尝试读取站点 llms.txt,或返回 playwright-cli 调用指引
|
|
134
|
+
|
|
135
|
+
降级信息会标注数据来源与时效性(实时/本地/空),帮助模型判断结果可信度。
|
|
136
|
+
|
|
137
|
+
## 配置驱动架构
|
|
138
|
+
|
|
139
|
+
核心设计:通过 JSON 配置文件驱动工具行为。`CommunityRegistry` 持有昇腾社区的配置和预设,每次工具调用根据 `community` 参数动态解析。
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
configs/
|
|
143
|
+
hiascend.json # 昇腾社区配置
|
|
144
|
+
presets/
|
|
145
|
+
ascend-aliases.json # 昇腾产品别名(模糊匹配)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 配置结构
|
|
149
|
+
|
|
150
|
+
```jsonc
|
|
151
|
+
{
|
|
152
|
+
"community": "ascend", // 社区标识
|
|
153
|
+
"baseUrl": "https://www.hiascend.com", // 站点域名
|
|
154
|
+
"gateway": "/ascendgateway/ascendservice", // 网关前缀
|
|
155
|
+
"sourceBase": "/doc_center/source", // 源文件路径前缀
|
|
156
|
+
"apiStyles": { // 接口风格差异
|
|
157
|
+
"breadcrumbs": { "style": "query", "path": "/doc/single/page/breadcrumbs" },
|
|
158
|
+
"versionAnnouncement": { "path": "/bulletins/front/nvod", "paramName": "bulletinsType", "bulletinType": 5 },
|
|
159
|
+
"versionTree": { "style": "query", "path": "/doc/version/new/tree" }
|
|
160
|
+
},
|
|
161
|
+
"degradations": { // 降级策略
|
|
162
|
+
"check_compatibility": null, // null = 不降级
|
|
163
|
+
"popular_docs": "local_config" // 字符串 = 降级方式
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## 开发
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# 构建
|
|
172
|
+
pnpm build
|
|
173
|
+
|
|
174
|
+
# 开发模式 — stdio(tsx 热运行)
|
|
175
|
+
pnpm dev
|
|
176
|
+
|
|
177
|
+
# 开发模式 — HTTP(默认端口 3200)
|
|
178
|
+
pnpm dev:http
|
|
179
|
+
|
|
180
|
+
# 生产运行 — HTTP
|
|
181
|
+
pnpm start:http
|
|
182
|
+
|
|
183
|
+
# 运行测试
|
|
184
|
+
pnpm test
|
|
185
|
+
|
|
186
|
+
# 测试覆盖率
|
|
187
|
+
pnpm test:coverage
|
|
188
|
+
|
|
189
|
+
# 监听模式
|
|
190
|
+
pnpm test:watch
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 技术栈
|
|
194
|
+
|
|
195
|
+
- Node.js ≥18(推荐≥24) / TypeScript / ESM
|
|
196
|
+
- `@modelcontextprotocol/sdk` — MCP 协议实现(stdio + StreamableHTTP 双传输)
|
|
197
|
+
- `express` + `@hono/node-server` — HTTP 传输层(StreamableHTTPServerTransport)
|
|
198
|
+
- `zod` — 参数校验与类型安全
|
|
199
|
+
- `turndown` — HTML→Markdown 转换
|
|
200
|
+
- `vite` — 构建 / `vitest` — 测试
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"community": "ascend",
|
|
3
|
+
"displayName": "昇腾",
|
|
4
|
+
"otherDisplayName": "鲲鹏",
|
|
5
|
+
"baseUrl": "https://www.hiascend.com",
|
|
6
|
+
"gateway": "/ascendgateway/ascendservice",
|
|
7
|
+
"sourceBase": "/doc_center/source",
|
|
8
|
+
"compatibilityUrl": "https://www.hiascend.com/document/categorycompatibility",
|
|
9
|
+
"apiStyles": {
|
|
10
|
+
"breadcrumbs": { "style": "query", "path": "/doc/single/page/breadcrumbs" },
|
|
11
|
+
"versionAnnouncement": { "path": "/bulletins/front/nvod", "paramName": "bulletinsType", "bulletinType": 5 },
|
|
12
|
+
"versionTree": { "style": "query", "path": "/doc/version/new/tree" }
|
|
13
|
+
},
|
|
14
|
+
"apiPaths": {
|
|
15
|
+
"searchSuggestions": "/content/querySameSearch",
|
|
16
|
+
"searchRollupData": "/doc/rollup/data",
|
|
17
|
+
"rollupDirectory": "/doc/rollupDirectory",
|
|
18
|
+
"rollupAllType": "/doc/rollup/allType",
|
|
19
|
+
"versionList": "/doc/version",
|
|
20
|
+
"nodeTree": "/doc/node/tree",
|
|
21
|
+
"pdfDown": "/doc/pdf/down",
|
|
22
|
+
"caseLibraryList": "/case/library/list",
|
|
23
|
+
"caseAssistantData": "/doc/caseAssistant/data",
|
|
24
|
+
"popularResource": "/popular/resource",
|
|
25
|
+
"cannDownloadTree": "/cannDownload/downloadTree",
|
|
26
|
+
"cannDownloadVersionList": "/cannDownload/version/list",
|
|
27
|
+
"cannDownloadCommand": "/cannDownload/downloadCommand",
|
|
28
|
+
"compatibilityList": "/os/compatibility/list"
|
|
29
|
+
},
|
|
30
|
+
"behaviorOverrides": {
|
|
31
|
+
"troubleshootingPrimaryApi": "caseLibrary",
|
|
32
|
+
"troubleshootingFallbackApi": null,
|
|
33
|
+
"codeSamplesUseApi": "true",
|
|
34
|
+
"codeSamplesApiFailureReason": null
|
|
35
|
+
},
|
|
36
|
+
"recommendations": {
|
|
37
|
+
"list_products": [
|
|
38
|
+
{ "tool": "list_versions", "hint": "查看某产品的版本(参数 product 取本工具返回的产品 id)" },
|
|
39
|
+
{ "tool": "check_compatibility", "hint": "检查硬件→软件兼容性矩阵" }
|
|
40
|
+
],
|
|
41
|
+
"list_versions": [
|
|
42
|
+
{ "tool": "get_doc_toc", "hint": "查看某版本的文档目录(参数 product/version 取本工具返回的 docpath 标识)" },
|
|
43
|
+
{ "tool": "get_latest_version", "hint": "获取最新稳定版本" }
|
|
44
|
+
],
|
|
45
|
+
"get_doc_toc": [
|
|
46
|
+
{ "tool": "get_doc_content", "hint": "获取具体文档页内容(参数 url 取本工具返回的 nodeUrl 或 codePath)" }
|
|
47
|
+
],
|
|
48
|
+
"get_doc_content": [
|
|
49
|
+
{ "tool": "check_compatibility", "hint": "安装前检查硬件兼容性", "condition": "安装/部署类文档" },
|
|
50
|
+
{ "tool": "search_troubleshooting", "hint": "搜索安装/算子开发相关故障案例" }
|
|
51
|
+
],
|
|
52
|
+
"search_docs": [
|
|
53
|
+
{ "tool": "get_doc_content", "hint": "获取搜索到的文档内容(参数 url 取搜索结果的源文件路径)" }
|
|
54
|
+
],
|
|
55
|
+
"check_compatibility": [
|
|
56
|
+
{ "tool": "get_doc_content", "hint": "查看安装文档详情" },
|
|
57
|
+
{ "tool": "get_download_options", "hint": "获取 CANN 软件包下载选项树" },
|
|
58
|
+
{ "tool": "get_install_commands", "hint": "获取定制化安装命令" }
|
|
59
|
+
],
|
|
60
|
+
"get_download_options": [
|
|
61
|
+
{ "tool": "get_install_commands", "hint": "选择完成后获取安装命令(参数 hardwareId/cpuArchitectureId/operateSystemId/installMethodId 取本工具逐级选择的 id)" },
|
|
62
|
+
{ "tool": "list_pdf_downloads", "hint": "获取PDF文档下载列表" }
|
|
63
|
+
],
|
|
64
|
+
"get_install_commands": [
|
|
65
|
+
{ "tool": "get_doc_content", "hint": "查看安装文档详细说明" },
|
|
66
|
+
{ "tool": "check_compatibility", "hint": "确认硬件兼容性" }
|
|
67
|
+
],
|
|
68
|
+
"list_pdf_downloads": [
|
|
69
|
+
{ "tool": "get_doc_content", "hint": "查看对应文档内容(参数 url 取本工具返回的 pdfName 对应的文档路径)" }
|
|
70
|
+
],
|
|
71
|
+
"browse_docs": [
|
|
72
|
+
{ "tool": "get_doc_content", "hint": "获取文档详情内容(参数 url 取本工具返回的 firstDetailLink)" }
|
|
73
|
+
],
|
|
74
|
+
"search_troubleshooting": [
|
|
75
|
+
{ "tool": "get_doc_content", "hint": "查看故障案例详细说明(参数 url 取本工具返回的源文件路径)" }
|
|
76
|
+
],
|
|
77
|
+
"get_latest_version": [
|
|
78
|
+
{ "tool": "get_doc_toc", "hint": "查看最新版本的文档目录(参数 product/version 取本工具返回的标识)" }
|
|
79
|
+
],
|
|
80
|
+
"get_version_announcements": [
|
|
81
|
+
{ "tool": "get_latest_version", "hint": "查看当前最新版本" }
|
|
82
|
+
],
|
|
83
|
+
"search_docs_in_product": [
|
|
84
|
+
{ "tool": "get_doc_content", "hint": "获取搜索到的文档内容(参数 url 取本工具返回的 codePath)" },
|
|
85
|
+
{ "tool": "browse_docs", "hint": "用searchContent搜索更广泛的关键词(安装/部署/推理等中文词在browse_docs中命中率更高)", "condition": "搜索结果为空时" }
|
|
86
|
+
],
|
|
87
|
+
"get_doc_outline": [
|
|
88
|
+
{ "tool": "get_doc_content", "hint": "获取文档完整内容(参数 url 同本工具输入的 url)" }
|
|
89
|
+
],
|
|
90
|
+
"get_code_samples": [
|
|
91
|
+
{ "tool": "get_doc_content", "hint": "查看对应开发文档" }
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"degradations": {
|
|
95
|
+
"check_compatibility": {
|
|
96
|
+
"type": "unsupported",
|
|
97
|
+
"reason": "/os/compatibility/list API返回结构与文档描述不一致,兼容性矩阵无法正确渲染",
|
|
98
|
+
"fallbackUrl": "https://www.hiascend.com/document/categorycompatibility"
|
|
99
|
+
},
|
|
100
|
+
"popular_docs": { "type": "local_config" }
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"community": "kunpeng",
|
|
3
|
+
"displayName": "鲲鹏",
|
|
4
|
+
"otherDisplayName": "昇腾",
|
|
5
|
+
"baseUrl": "https://www.hikunpeng.com",
|
|
6
|
+
"gateway": "/kunpenggateway/kunpengservice",
|
|
7
|
+
"sourceBase": "/doc_center/source",
|
|
8
|
+
"compatibilityUrl": "https://www.hikunpeng.com/document/categorycompatibility",
|
|
9
|
+
"apiStyles": {
|
|
10
|
+
"breadcrumbs": { "style": "path", "path": "/doc/page/breadcrumbs" },
|
|
11
|
+
"versionAnnouncement": { "path": "/bulletin/featured", "paramName": "bulletinType", "bulletinType": "文档动态" },
|
|
12
|
+
"versionTree": { "style": "path", "path": "/doc/version/tree" }
|
|
13
|
+
},
|
|
14
|
+
"apiPaths": {
|
|
15
|
+
"searchSuggestions": "/content/querySameSearch",
|
|
16
|
+
"searchRollupData": "/doc/rollup/data",
|
|
17
|
+
"rollupDirectory": "/doc/rollupDirectory",
|
|
18
|
+
"rollupAllType": "/doc/rollup/allType",
|
|
19
|
+
"versionList": "/doc/version",
|
|
20
|
+
"nodeTree": "/doc/node/tree",
|
|
21
|
+
"pdfDown": "/doc/pdf/down",
|
|
22
|
+
"caseLibraryList": "/case/library/list",
|
|
23
|
+
"caseAssistantData": "/doc/caseAssistant/data",
|
|
24
|
+
"compatibilityList": "/os/compatibility/list"
|
|
25
|
+
},
|
|
26
|
+
"behaviorOverrides": {
|
|
27
|
+
"troubleshootingPrimaryApi": "caseAssistant",
|
|
28
|
+
"troubleshootingFallbackApi": "caseLibrary",
|
|
29
|
+
"codeSamplesUseApi": "false",
|
|
30
|
+
"codeSamplesApiFailureReason": "鲲鹏社区popular/resource不可用(code=5004)"
|
|
31
|
+
},
|
|
32
|
+
"recommendations": {
|
|
33
|
+
"list_products": [
|
|
34
|
+
{ "tool": "list_versions", "hint": "查看某产品的版本(参数 product 取本工具返回的产品 id;鲲鹏多为单版本,version 用 docpath 标识)" },
|
|
35
|
+
{ "tool": "search_troubleshooting", "hint": "搜索迁移/调优相关案例(优先新版956条)" }
|
|
36
|
+
],
|
|
37
|
+
"list_versions": [
|
|
38
|
+
{ "tool": "get_doc_toc", "hint": "查看某版本的文档目录(参数 product/version 取本工具返回的 docpath 标识;鲲鹏单版本产品 version=docpath)" }
|
|
39
|
+
],
|
|
40
|
+
"get_doc_toc": [
|
|
41
|
+
{ "tool": "get_doc_content", "hint": "获取具体文档页内容(参数 url 取本工具返回的 nodeUrl 或 codePath)" }
|
|
42
|
+
],
|
|
43
|
+
"get_doc_content": [
|
|
44
|
+
{ "tool": "search_troubleshooting", "hint": "搜索迁移/调优/编译相关故障案例" }
|
|
45
|
+
],
|
|
46
|
+
"search_docs": [
|
|
47
|
+
{ "tool": "get_doc_content", "hint": "获取搜索到的文档内容(参数 url 取搜索结果的源文件路径)" }
|
|
48
|
+
],
|
|
49
|
+
"browse_docs": [
|
|
50
|
+
{ "tool": "get_doc_content", "hint": "获取文档详情内容(参数 url 取本工具返回的 firstDetailLink)" }
|
|
51
|
+
],
|
|
52
|
+
"search_troubleshooting": [
|
|
53
|
+
{ "tool": "get_doc_content", "hint": "查看故障案例详细说明(参数 url 取本工具返回的源文件路径)" }
|
|
54
|
+
],
|
|
55
|
+
"get_latest_version": [
|
|
56
|
+
{ "tool": "get_doc_toc", "hint": "查看最新版本的文档目录(参数 product/version 取本工具返回的标识)" }
|
|
57
|
+
],
|
|
58
|
+
"get_version_announcements": [
|
|
59
|
+
{ "tool": "get_latest_version", "hint": "查看当前最新版本" }
|
|
60
|
+
],
|
|
61
|
+
"search_docs_in_product": [
|
|
62
|
+
{ "tool": "get_doc_content", "hint": "获取搜索到的文档内容(参数 url 取本工具返回的 codePath)" },
|
|
63
|
+
{ "tool": "browse_docs", "hint": "用searchContent搜索更广泛的关键词(安装/部署/推理等中文词在browse_docs中命中率更高)", "condition": "搜索结果为空时" }
|
|
64
|
+
],
|
|
65
|
+
"get_doc_outline": [
|
|
66
|
+
{ "tool": "get_doc_content", "hint": "获取文档完整内容(参数 url 同本工具输入的 url)" }
|
|
67
|
+
],
|
|
68
|
+
"get_code_samples": [
|
|
69
|
+
{ "tool": "get_doc_content", "hint": "查看对应开发文档(参数 url 取本工具返回的文档链接)" }
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"degradations": {
|
|
73
|
+
"check_compatibility": {
|
|
74
|
+
"type": "unsupported",
|
|
75
|
+
"reason": "鲲鹏社区不提供硬件→软件兼容性查询接口(接口404)",
|
|
76
|
+
"fallbackUrl": "https://www.hikunpeng.com/document/categorycompatibility"
|
|
77
|
+
},
|
|
78
|
+
"popular_docs": {
|
|
79
|
+
"type": "unsupported",
|
|
80
|
+
"reason": "鲲鹏社区不提供热门文档接口"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|