Skip to main content
Glama
LongLiveY96

ArkTS Helper MCP

by LongLiveY96
README.md
# ArkTS Helper MCP

ArkTS/ArkUI 开发助手 MCP Server,为 AI 编程助手(Claude Code、Cursor、Windsurf 等)提供文档检索和华为官方智能问答能力。

## 功能概览

| 工具 | 功能 | 说明 |
|------|------|------|
| `find_docs` | 文档搜索 | 关键词搜索 1000+ 篇 ArkTS/ArkUI 官方文档 |
| `read_doc` | 文档阅读 | 根据 objectId 获取完整 Markdown 内容 |
| `list_doc_topics` | 分类浏览 | 列出所有文档主题及数量 |
| `ask_ai` | AI 问答 | 调用华为官方智能问答,获取整合回答 |
| `ask_ai_batch` | 批量问答 | 并行处理多个问题,大幅节省时间 |
| `read_more` | 读取全文 | 获取被截断的完整回答 |
| `set_ai_auth` | 设置凭证 | 配置登录态 Cookie,突破匿名次数限制 |

## 快速开始

### 安装

```bash
git clone https://github.com/LongLiveY96/arkts-helper-mcp.git
cd arkts-helper-mcp
npm install
npm run build
```

### 配置 AI 助手

**Claude Code / Cursor / Windsurf:**

```json
{
  "mcpServers": {
    "arkts-helper": {
      "command": "node",
      "args": ["/path/to/arkts-helper-mcp/dist/index.js"]
    }
  }
}
```

### HTTP 模式(可选)

```bash
npm run start:http
```

端点:
- `GET /health` — 健康检查
- `GET /search?q=关键词` — 搜索文档
- `GET /doc/:objectId` — 获取文档
- `GET /topics` — 列出主题

## 使用示例

配置完成后,AI 助手会自动调用工具:

```
用户:@State 和 @Prop 有什么区别?
AI:→ find_docs({ query: "State Prop 装饰器" })
    → read_doc({ objectId: "arkts-state" })
    @State 是组件私有状态,@Prop 是单向数据传递...
```

```
用户:Navigation 怎么实现页面跳转并传参?
AI:→ ask_ai({ query: "Navigation 页面跳转传参" })
    Navigation 是路由容器组件,通过 NavPathStack 管理页面栈...
```

```
用户:同时告诉我 @State、@Prop、@Link 的用法
AI:→ ask_ai_batch({ queries: ["@State用法", "@Prop用法", "@Link用法"] })
    (并行查询,约 60 秒返回全部结果)
```

## 环境变量

| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| `ARKTS_DOCS_DIR` | 文档目录路径 | `static/docs` |
| `ARKTS_MCP_PORT` | HTTP 服务端口 | `3456` |
| `ARKTS_QA_TIMEOUT_MS` | AI 问答超时(毫秒) | `120000` |
| `ARKTS_MCP_CONFIG_DIR` | Cookie 配置目录 | `~/.config/arkts-mcp` |

## AI 问答认证(可选)

匿名模式有次数限制。配置登录态 Cookie 可解除限制:

1. 登录 [developer.huawei.com](https://developer.huawei.com)
2. F12 → Network → 使用智能问答提问
3. 找到 `dialog/submission` 请求,复制 Cookie
4. 通过工具设置:`set_ai_auth({ cookie: "你的Cookie" })`

Cookie 保存在 `~/.config/arkts-mcp/config.json`,不会进入代码仓库。

## 许可证

MIT

TDQS

A4.3/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: ask_ai vs ask_ai_batch are differentiated by single vs batch, find_docs vs read_doc vs list_doc_topics cover different phases of documentation access, read_more handles truncation, and set_ai_auth manages authentication. Descriptions explicitly contrast overlapping tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., ask_ai, find_docs, list_doc_topics). No mixing of conventions like camelCase or inconsistent verb styles.

Tool Count5/5

With 7 tools, the server is well-scoped for its purpose of providing ArkTS documentation search/reading and AI Q&A. Each tool earns its place without redundancy or excessive numbers.

Completeness4/5

The tool surface covers the core workflow: search docs, list topics, read docs, ask AI (single/batch), retrieve truncated responses, and set auth. A minor gap is no explicit tool for clearing auth or browsing AI history, but the set is largely complete for its stated domain.

Maintenance

ActivityInactive
ResponsivenessUnresponsive