# Tao Memory MCP Server (Go) 面向 MCP 的“道场记忆”服务:SSE + JSON‑RPC 2.0,支持移动端、异步响应、灵感/日记/周月季半年年炼化与归档剪枝。 --- ## 功能总览 - **MCP 协议**:SSE + `/mcp/message` 异步响应(POST 返回 202) - **鉴权**:Header Bearer 或 `?token=` - **工具体系**:检索、灵感、日记、周/月/季/半年/年总结、归档剪枝、代码巡检提案 - **存储结构**:六级流转(YEAR/H1|H2/Q/Month/Wxx) - **归档剪枝**:月度归档至 `_Archive`,检索默认跳过归档 --- ## 目录结构(六级流转) ``` knowledge_ocean/ 2026/ H1_Upper/ Q1/ 03_March/ W11/ 2026-03-14_Saturday.md Week_Summary.md Month_Summary.md Semiannual_Summary.md H2_Lower/ ... Year_Summary.md Inspirations/ Idea_1710400000.md _Archive/ 2026/03/... _Proposals/ proposal_20260314_150405.md ``` --- ## MCP 端点 - **SSE**:`/mcp/sse?token=...&client=...` - **消息**:`/mcp/message?token=...&client=...` - **统一入口**:`/mcp` 或 `/mcp/` - `GET /mcp` → SSE - `POST /mcp` → 自动判定 SSE 或 JSON‑RPC > `client` 用于区分多端连接,避免同一 token 抢占 SSE 通道。 **特性:** - `POST /mcp/message` 只返回 `202 Accepted` - 所有 JSON‑RPC 响应通过 SSE `event: message` 返回 - CORS 可配置(默认不放行;设置 `TAO_CORS_ORIGINS=*` 才全放开) --- ## 工具清单 ### 1) query_memory 全文检索(默认不搜索归档) - `q` (string) - `mode` (exact|causal, 默认 exact) - `related_terms` (array) 仅 mode=causal - `include_archive` (bool, 默认 false) **causal 输出标注:** `[命中: 关键词]` / `[关联: 关键词]` --- ### 2) get_week_data / record_summary - `get_week_data(weekOffset)`:获取周素材 - `record_summary(content, weekOffset)`:写入 `Week_Summary.md` - 若缺少 `### 📅 时空坐标`,自动套“炼丹笔记”模板 --- ### 3) capture_idea 捕获灵感并**双写**: - 写入 `Inspirations/Idea_*.md`(YAML Frontmatter + tags) - 同时写入当天日记(category=idea) 参数: - `content` (string) - `tags` (array, 可选;默认 Unsorted) --- ### 4) record_daily 写入当日日记(不会进入灵感库) 参数: - `content` (string) - `karma` (int, 默认 1) --- ### 5) 月/季/半年/年炼化 - `get_month_data` / `record_month_summary` - `get_quarter_data` / `record_quarter_summary` - `get_semiannual_data` / `record_semiannual_summary` - `get_year_data` / `record_year_summary` 产物: - `Month_Summary.md` - `Quarter_Summary.md` - `Semiannual_Summary.md` - `Year_Summary.md` --- ### 6) housekeep_memory 归档剪枝(按月) 参数: - `target_month` (YYYY-MM) 逻辑: - 校验 `Month_Summary.md` 存在且大小≥100字节且包含 `###` - 将该月 `Wxx/` 目录及非 Month_Summary 文件移动到 `_Archive/YYYY/MM/` - 生成 `ARCHIVED.txt` - `query_memory` 默认跳过 `_Archive` --- ### 7) inspect_and_propose 检视代码与灵感,生成补丁建议清单(不自动应用) 参数: - `repo_path` (可选,默认 `/root/.openclaw/workspace/tao_mcp_go`) 行为: - `git pull`(需 `TAO_ALLOW_GIT_PULL=true` 才会执行,失败不阻断) - `repo_path` 必须在 `TAO_ALLOWED_REPOS` 白名单内 - 扫描 `Inspirations` 中 `#Todo/#Fix` - 生成 `_Proposals/proposal_.md` - 当日日记记录摘要 --- ## 配置项(安全建议) - **TAO_AUTH_TOKEN**:必填;不设置则启动失败 - **TAO_ALLOW_ANON**:是否允许匿名访问(默认 false) - **TAO_CORS_ORIGINS**:允许的来源列表,逗号分隔;`*` 为全放开 - **TAO_DEBUG**:是否输出请求体日志(默认 false) - **TAO_SEARCH_ROOT**:检索根目录(必须在 MEMORY_ROOT 下) - **TAO_SEARCH_MAX_FILES**:检索文件上限(默认 2000) - **TAO_ALLOWED_REPOS**:inspect_and_propose 允许的仓库白名单(逗号分隔) - **TAO_ALLOW_GIT_PULL**:是否允许 inspect_and_propose 执行 git pull(默认 false) - **TAO_ENDPOINT_TOKEN_ECHO**:若为 true,SSE endpoint 事件会回显 token(用于不带 Header 的客户端;默认 false) --- ## OpenClaw 接入(示例) **Base URL** ``` https://mcp.good.xx.kg ``` **Auth Token** ``` YOUR_TOKEN_HERE ``` **Instructions(粘贴)** ``` 你接入的是 Tao-Memory-Pro MCP。 【语义判断(先判类型)】 - 若内容包含“观点/架构/设计/方案/原理/模型/机制/灵感/idea”,或明显是抽象总结/新想法 → 视为“灵感” - 若内容是当天发生的事务、进度、琐事、对话摘录 → 视为“日记” - 若内容在请求“总结/复盘/归档/检索” → 视为“操作指令” 【优先级规则】从上到下匹配,命中即停止: 1) “灵感” → capture_idea - tags: 自动生成 2~4 个标签 2) “周总结/本周复盘/weekly” → record_summary 3) “月总结/月度/monthly” → record_month_summary 4) “季总结/季度/quarterly” → record_quarter_summary 5) “半年总结/上半年/下半年/half-year” → record_semiannual_summary 6) “年度/年报/yearly” → record_year_summary 7) “归档/清理/剪枝/整理/月度清理” → housekeep_memory(要求 YYYY-MM) 8) “查找/搜索/回忆/翻找/找一下” → query_memory - 提到“历史/很久以前/归档/旧记录” → include_archive=true - 提到“关联/因果/相关/对比/溯源” → mode=causal + related_terms 9) “随手记/日记/今天/记录一下/写一条” → record_daily(karma=1) 【冲突处理】 - 同时满足灵感与日记:优先灵感 - 同时包含检索与归档:优先问目标月份或关键词 - 不确定时:先反问澄清,不调用工具 【输出风格】 - 工具调用后只返回结果路径或简短确认,不展开解释 【自动标签规则(用于 capture_idea)】 - 若内容含:MCP/SSE/JSON-RPC/协议 → tags 加 ["协议","MCP"] - 若含:AnyTLS/TUIC/QUIC/延迟/带宽 → tags 加 ["网络协议","性能"] - 若含:架构/模块/重构/设计 → tags 加 ["架构设计"] - 若含:日志/排障/错误/异常 → tags 加 ["故障排查"] - 若含:部署/Docker/systemd → tags 加 ["运维部署"] - 若含:搜索/索引/向量/检索 → tags 加 ["检索系统"] - 若含:安全/鉴权/token → tags 加 ["安全"] - 若含:任务/待办/计划 → tags 加 ["待办"] 若匹配不足 2 个标签,则补充通用标签:["灵感","技术"] ``` --- ## 编译与运行 ```bash cd /root/.openclaw/workspace/tao_mcp_go go build -o tao-mcp ./tao-mcp ``` ## Systemd ```bash systemctl restart tao-mcp-go systemctl status tao-mcp-go ``` --- ## 备注 - SSE 已设置 `X-Accel-Buffering: no` - MCP 协议版本:`2025-06-18` - `TAO_ENDPOINT_STYLE=message` 避免 `/mcp/mcp` 叠加