Skip to content

Loom Recap MCP Server #346

@acreeger

Description

@acreeger

Summary

Build an MCP server that allows Claude to capture context that scrolls away during a session - the goal, decisions, insights, risks, and assumptions. This powers the Loom Context Panel in the VS Code extension.

Motivation

During a Claude session, important context scrolls out of view:

  • Why am I here? - The original goal/problem being solved
  • What did we decide and why? - Key choices made, with reasoning
  • What did we learn? - Key findings, constraints, gotchas discovered
  • What are we assuming / what could go wrong? - Risks and assumptions

The sticky TODO list shows progress, but these four categories of context are lost. The Recap MCP captures them so the VS Code extension can display them.

Recap File Schema

Stored in ~/.config/iloom-ai/recaps/ using same path-encoding as looms:

{
  "goal": "The original problem statement",
  "entries": [
    {
      "id": "uuid",
      "timestamp": "2025-12-15T10:23:45Z",
      "type": "decision",
      "content": "Using soft reset instead of hard reset to preserve uncommitted changes"
    },
    {
      "id": "uuid",
      "timestamp": "2025-12-15T10:25:12Z",
      "type": "insight",
      "content": "The finish command already has WIP commit handling that we can reuse"
    }
  ]
}

Entry types: decision, insight, risk, assumption, other

MCP Tools

set_goal

Set the initial goal (called once at session start)

  • Input: { goal: string }
  • Output: { success: true }

add_entry

Append an entry to the recap

  • Input: { type: "decision" | "insight" | "risk" | "assumption" | "other", content: string }
  • Output: { id: string, timestamp: string }

get_recap

Read current recap (for catching up or review)

  • Input: (none)
  • Output: { goal: string, entries: Array<{ id, timestamp, type, content }> }

CLI Command: il recap --json

Fast read-only command for the VS Code extension:

  • Skips config validation, loom validation, etc.
  • Reads ~/.config/iloom-ai/recaps/{current-loom}.json and outputs it
  • Fast startup - extension calls this to get current recap state
  • Extension doesn't need to know path-encoding logic

MCP Integration

Follow existing pattern from issue-management-server.ts:

  • New file: src/mcp/recap-server.ts
  • Uses @modelcontextprotocol/sdk
  • Receives LOOM_PATH env var to derive recap filename
  • Injected via CLI same as issue_management MCP

Acceptance Criteria

  • Recap MCP server implemented with three tools
  • Recap files stored in ~/.config/iloom-ai/recaps/ with correct naming
  • il recap --json command works and is fast
  • MCP config generation updated to include recap server
  • Server starts with Claude session (alongside issue_management)

Related

  • iloom-vscode#43 - POC Loom Context Panel (consumes this data)
  • Prompt updates (separate issue) - tells Claude when to use this MCP

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions