cubesys/cube-notes-mcp: project resume + context. 'cube project resume <name> <text>' sets a resume marker (note category=resume, associated to the project); 'cube project context <name>' emits a compact 'where we are' summary (latest notes + resume marker) for context injection into a new session. MCP tools project_resume/project_context added. 5 notes tests pass.

This commit is contained in:
2026-09-08 05:34:58 -04:00
parent 18f8eb9b4a
commit 8c66478a42
2 changed files with 101 additions and 2 deletions
+23
View File
@@ -67,6 +67,20 @@ def tool_schemas():
"coord": {"type": "string"},
}, "required": ["coord"]},
},
{
"name": "project_resume",
"description": "Set a resume marker for a project (where it left off).",
"inputSchema": {"type": "object", "properties": {
"name": {"type": "string"}, "text": {"type": "string"},
}, "required": ["name", "text"]},
},
{
"name": "project_context",
"description": "Compact 'where we are' summary for a project (latest notes + resume marker) — for context injection.",
"inputSchema": {"type": "object", "properties": {
"name": {"type": "string"},
}, "required": ["name"]},
},
]
@@ -116,6 +130,15 @@ def dispatch(name, args):
if name == "project_show":
c = (args.get("coord") or "").strip()
return run_cube(["project", "show", c]) if c else "error: missing 'coord'"
if name == "project_resume":
nm = (args.get("name") or "").strip()
tx = (args.get("text") or "").strip()
if not nm or not tx:
return "error: project_resume needs name + text"
return run_cube(["project", "resume", nm, tx])
if name == "project_context":
nm = (args.get("name") or "").strip()
return run_cube(["project", "context", nm]) if nm else "error: missing 'name'"
return f"error: unknown tool {name}"