使用说明
教练记忆MCP
AI教练的持久记忆和训练计划管理,作为 主控程序 服务器。
两个数据域:
- 计划 --训练日历,包括计划锻炼。每个计划都遵循一个状态生命周期(
pending→completed/skipped/cancelled)并且可以链接到外部活动ID。 - 回忆 --具有向量嵌入的长期语义记忆(sqlite-vec),用于跨会话的智能检索。
此MCP可以 不 存储原始健康指标或生物特征数据。这些数据存在于外部服务中。这个系统充当了教练的“大脑”——训练什么、为什么训练以及记住什么。
安装
来自git(推荐给MCP客户端)
uvx --from "git+ssh://git@github.com/barcia/coach-memory" coach-memory
本地开发
git clone git@github.com:barcia/coach-memory.git
cd coach-memory
uv sync
配置
创建 .env 文件(参见 .env.example):
OPENROUTER_API_KEY=sk-or-v1-xxxx
# Optional
DATABASE_PATH=~/.local/share/coach/memory.db
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
OPENROUTER_API_KEY |
是 | - | OpenRouter API密钥,用于生成嵌入 |
DATABASE_PATH |
没有 | ~/.local/share/coach/memory.db |
SQLite数据库路径 |
嵌入模型是固定的: openai/text-embedding-3-large (3072个维度)通过OpenRouter。
MCP客户端配置
克劳德桌面/克劳德代码/光标
{
"mcpServers": {
"Coach Memory": {
"command": "uvx",
"args": [
"--from",
"git+ssh://git@github.com/barcia/coach-memory",
"coach-memory"
],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-xxxx"
}
}
}
}
本地开发
{
"mcpServers": {
"Coach Memory": {
"command": "uv",
"args": ["run", "--directory", "/path/to/coach-memory", "coach-memory"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-xxxx"
}
}
}
}
MCP检查员
npx @modelcontextprotocol/inspector uv run coach-memory
可用工具
列表和搜索工具返回 逗号分隔值 令牌效率的格式。单记录工具返回JSON。
记忆
| 工具 | 参数 | 返回 | 描述 |
|---|---|---|---|
add_memory |
author, content |
JSON(内存) | 通过自动嵌入生成存储教练见解。 |
search_memories |
query, limit? |
CSV(id,created_at,author,content,distance) |
语义向量搜索。 |
list_memories |
author?, limit? |
CSV(id,created_at,author,content) |
按逆时间顺序列出记忆。 |
get_memory |
memory_id |
JSON(内存) | 按ID检索单个内存 |
delete_memory |
memory_id |
JSON(bool) | 永久删除内存及其嵌入。 |
计划
| 工具 | 参数 | 返回 | 描述 |
|---|---|---|---|
add_plan |
planned_at, description, notes? |
JSON(计划) | 安排锻炼。 |
get_plan |
plan_id |
JSON(计划) | 按ID获取计划详细信息 |
list_plans |
start_date?, end_date?, status?, limit? |
CSV(id,planned_at,description,notes,status,activity_id) |
使用可选筛选器查询计划。 |
get_today_plan |
-- | CSV(相同) | 获取今天安排的所有计划。 |
get_upcoming_plans |
days? |
CSV(相同) | 获取未来N天的计划(默认值:7)。 |
update_plan |
plan_id, planned_at?, description?, notes?, status?, activity_id? |
JSON(计划) | 更新任何计划字段。关闭反馈回路的关键工具。 |
delete_plan |
plan_id |
JSON(bool) | 永久删除计划记录。 |
运行测试
uv run pytest
技术栈
- Python 3.12+
- FastMCP --MCP服务器框架
- sqlite-vc --SQLite的矢量搜索扩展
- 派单 --数据验证和序列化
- OpenAI客户端 --通过OpenRouter嵌入生成
