6.8 KiB
6.8 KiB
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→ SSEPOST /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=causalinclude_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_summaryget_quarter_data/record_quarter_summaryget_semiannual_data/record_semiannual_summaryget_year_data/record_year_summary
产物:
Month_Summary.mdQuarter_Summary.mdSemiannual_Summary.mdYear_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_<timestamp>.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 个标签,则补充通用标签:["灵感","技术"]
编译与运行
cd /root/.openclaw/workspace/tao_mcp_go
go build -o tao-mcp
./tao-mcp
Systemd
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叠加