# Cursor/Trae 持久对话 MCP 插件 v1.6.37

> **垂直绑定 · 真挂起 · 永不断开**  
> 一个让 Cursor / Trae / VSCode 与 Agent 之间实现"可持续对话"的 MCP 插件。

[![Gitea](https://img.shields.io/badge/Gitea-fnvtK%2Fpersistent--chat--plugin-blue)](http://192.168.110.101:3000/fnvtk/persistent-chat-plugin)
[![Version](https://img.shields.io/badge/Version-v1.6.37--20260607-green)](#)
[![MCP](https://img.shields.io/badge/MCP-4--tools-orange)](#)
[![Hub](https://img.shields.io/badge/Hub-192.168.110.101%3A13458-purple)](#)

---

## 🎯 一句话描述

普通 MCP 调一次就结束对话；本插件用 **4 个工具 + Hub 长连接**，让 agent 与用户的对话**永不中断**，适合长跑学习清单 / 跨天多计划 / 自动续跑任务。

---

## 📦 仓库内容

```
persistent-chat-plugin/
├── src/                          # 核心源码（Node 22）
│   ├── server.js        (42KB)   # MCP Server 端，4 个工具入口
│   ├── hub.js           (89KB)   # Hub 主服务（HTTP + WebSocket）
│   └── cursor-title.js  (4KB)    # Cursor 标题解析器
│
├── web/                          # 持久对话面板（浏览器 UI）
│   ├── panel.html       (84KB)   # 主面板 v1.6.37
│   ├── panel.remote.html         # 远端 NAS 面板（panel_remote_v1637）
│   └── panel.html.local          # 本地备份面板
│
├── scripts/                      # 部署与运维脚本
│   ├── ensure-hub.sh             # 启动器（MCP stdio → http）
│   ├── mongo_sync.py             # 会话 → MongoDB 同步
│   └── (deploy scripts...)
│
├── mcp-config/                   # MCP 配置模板
│   ├── trae.mcp.json             # Trae CN 配法
│   └── cursor.mcp.json           # Cursor 配法
│
├── docs/                         # 完整文档
│   ├── INSTALL.md                # 安装
│   ├── DEPLOY.md                 # 部署
│   ├── MCP_SETUP.md              # MCP 配置
│   ├── ARCHITECTURE.md           # 架构
│   └── QUICKSTART.md             # 5 分钟上手
│
├── Cursor持久对话-安装包-v1.6.37_20260607.zip  # 原始安装包（备查）
└── README.md                     # 本文件
```

---

## ⚡ 三种部署形态

| 形态 | 端口 | 适用 | 关键 |
|:---|:---|:---|:---|
| **本地备份** | 127.0.0.1:13458 | 单机 | launchd 守护，挂了自动起 |
| **远端 NAS** | 192.168.110.101:13458 | 多人 / 跨机 | Node 守护，跨网段访问 |
| **Trae 插件** | MCP stdio | 与 IDE 集成 | ensure-hub.sh 起 4 工具 |

可同时跑，三者共享同一 Hub 协议。

---

## 🔧 4 个 MCP 工具

| # | 工具 | 用途 |
|:---:|:---|:---|
| 1 | `init_conversation` | 起新 session（支持 `newPlan:true` 换计划） |
| 2 | `select_conversation` | 复用旧 session（垂直绑定校验） |
| 3 | `wait_for_user_input` | 真挂起，等用户下一条 |
| 4 | `merge_conversation` | 合流两个 session 的上下文 |

**核心机制**：Hub 把 session 存在内存 + 周期 save，token (`ct_xxx`) 垂直绑定到「工作区 + Cursor 标签 + IP」三件指纹。

---

## 🚀 5 分钟上手

```bash
# 1. 克隆
git clone http://192.168.110.101:3000/fnvtk/persistent-chat-plugin.git
cd persistent-chat-plugin

# 2. 部署到 ~/.persistent-chat-local
mkdir -p ~/.persistent-chat-local
cp src/* scripts/ensure-hub.sh ~/.persistent-chat-local/
cp web/panel.html ~/.persistent-chat-local/panel.html

# 3. 编辑 mcp.json，填到 Trae/Cursor
cat mcp-config/trae.mcp.json
# 复制内容到 ~/.trae/mcp.json

# 4. Trae Cmd+Q 退出重开，让 MCP 重新加载
# 5. 在 SOLO Agent 窗口发"开始测试"或"继续"
```

详细见 [QUICKSTART.md](docs/QUICKSTART.md)。

---

## 🔒 垂直绑定

每个 session 用「工作区::Cursor 标签 @ IP」做绑定指纹：

```
/Users/karuo/Documents/个人::持久对话永久续跑-20260626@192.168.3.1
```

换工作区 / 换标签 / 换 IP 都不会复用 session，避免串台。

---

## 📊 核心指标

| 指标 | 值 |
|:---|:---|
| Hub 进程 | Node 22 (`/usr/local/opt/node@22/bin/node`) |
| 端口 | 13458 |
| 协议 | HTTP + 短轮询（10s 续约） |
| 保活档 | 10s / 30s / 60s / 2min / 4min / 9min / 15min / 30min |
| 校验频率 | 每次 wait 触发一次 |
| 单 session 容量 | 无限制（内存 + JSON 周期 save） |

---

## 🆘 常见问题

**Q: 提示"Token未获取, 未登录"？**  
A: Trae 需 `Cmd+Q` 完全退出重开，让 MCP 配置生效。

**Q: "任务完成" 是不是对话死了？**  
A: 不是。Hub 上 session 仍 holding，等用户下一条自动续跑。可在 http://192.168.110.101:13458/ 看到。

**Q: 如何真正关掉对话？**  
A: 在对话里说"结束持久对话"，agent 会主动 merge。

---

## 📜 许可证

私有项目 · 仅公司内部使用 © 2026 卡若AI

---

## 🔗 相关链接

- **Gitea 仓库**：http://192.168.110.101:3000/fnvtk/persistent-chat-plugin
- **远端面板**：http://192.168.110.101:13458/
- **本地备份面板**：http://127.0.0.1:13458/
- **Trae 配置**：`~/.trae/mcp.json`
- **Cursor 配置**：`~/Documents/个人/.cursor/mcp.json`
