chathook
by kedaya2025
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.