# DSH 接入指南

DeepSeek Harness 通过官方 `@deepseek-ai/dsh-mcp-client` 连接 Arkme MCP Server。

## 准备

1. 安装 Node.js 和 pnpm，并按 [DeepSeek Harness 官方说明](https://github.com/deepseek-ai/deepseek-harness/blob/master/README.zh.md) 启动一次 DSH。
2. 在 [开发者控制台](/console) 创建 API Key。
3. 安装官方 MCP Client：

```bash
npx @deepseek-ai/dsh plugin --profile web add @deepseek-ai/dsh-mcp-client
```

DSH 配置目录默认为 `~/.dsh`；设置了 `DSH_HOME` 时使用该变量指向的目录。

## 保存 API Key

在配置目录的 `.env`（默认为 `~/.dsh/.env`）中加入：

```dotenv
ARKME_OPENAPI_KEY=arkme_<key-id>_<secret>
```

## 配置 MCP Server

在配置目录的 `profiles/web/cordis.patch.yml`（默认为 `~/.dsh/profiles/web/cordis.patch.yml`）现有列表中加入：

```yaml
- insert:
    - id: mcp-arkme
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: arkme
        transport: streamable-http
        url: https://openapi.jotmo.cc/mcp
        headers:
          Authorization: !!js '`Bearer ${process.env.ARKME_OPENAPI_KEY}`'
        failOnStartupError: true
```

保留文件中已有的其他配置项。若文件当前内容为 `[]`，使用上面的列表替换 `[]`。

## 启动与验证

```bash
npx @deepseek-ai/dsh web
```

连接成功后，Arkme Tool 以 `mcp__arkme__<tool_name>` 的形式出现。例如：

- `mcp__arkme__get_current_user_profile`
- `mcp__arkme__resolve_people`
- `mcp__arkme__send_chat_messages`

可先调用 `mcp__arkme__get_current_user_profile` 验证连接和认证，再按 [MCP Agent 使用指南](../mcp/agent.md) 选择与组合 Tool。

## 排查

| 现象 | 检查项 |
| --- | --- |
| 安装命令找不到 pnpm | 安装 pnpm，并确认 `pnpm` 在 `PATH` 中 |
| 启动时报找不到 `@deepseek-ai/dsh-mcp-client` | 确认安装命令使用了相同的 `web` profile |
| 返回 `401` | 检查 `ARKME_OPENAPI_KEY` 是否为完整 Key，并重新启动 DSH |
| 没有出现 `mcp__arkme__...` | 检查 YAML 缩进、`serverName`，以及启动日志中的连接错误 |
| `serverName` 重复 | 为其他 MCP Server 使用不同的 `serverName` |

DSH MCP Client 的字段和命名规则参见 [官方文档](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/mcp/mcp-client/README.zh.md)。
