Skip to main content
Glama
README.md
# chathook — AI 对话钩子 MCP Server

> 在 AI 完成任务后弹出原生输入对话框,让用户直接输入回复,保持对话不中断,直到用户明确结束。

## 工作原理

```
用户提问 → AI 处理任务 → AI 调用 chat_hook 工具
                                    ↓
                    弹出原生桌面对话框(输入框 + 提交按钮 + 倒计时)
                                    ↓
                     用户输入回复 / 关闭对话框结束
                                    ↓
                    工具返回用户输入 → AI 继续处理
                                    ↓
                        AI 再次调用 chat_hook ...
                                    ↓
                      用户关闭对话框 → 工具返回结束信号
                                    ↓
                         AI 结束回合,对话完成
```

## 安装

### 方式一:npx 从 npm 安装(推荐)

在 MCP 客户端的配置中添加:

```json
{
  "mcpServers": {
    "chathook": {
      "command": "npx",
      "args": ["-y", "mcp-chathook"]
    }
  }
}
```

### 方式二:npx 从 GitHub 安装

```json
{
  "mcpServers": {
    "chathook": {
      "command": "npx",
      "args": ["-y", "github:kedaya2025/mcp-chathook"]
    }
  }
}
```

### 方式三:本地运行

```bash
git clone https://github.com/kedaya2025/mcp-chathook.git
cd mcp-chathook
npm install
npm run build
```

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

## 使用方法

### 系统提示词配置

在 AI Agent 的系统提示词 / 自定义指令中添加:

```
所有对话或任务结束时,都必须调用 chathook 工具来向用户确认工作进程,
除非用户结束该工具的调用视为任务完成不再调用。
```

## License

MIT

TDQS

A4.8/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion. The tool's purpose is clearly distinct.

Naming Consistency5/5

The single tool name 'chat_hook' uses a consistent underscore convention, which is fine for a single tool.

Tool Count3/5

The server has only one tool, which is at the low end of acceptable. While it serves a specific purpose, typically servers have more tools to cover broader functionality.

Completeness5/5

The single tool fully covers the server's purpose of user interaction. It handles input and special cases (decline, cancel) through return values, so no gaps are apparent.