Skip to main content

What it does

Generates an opening briefing for the current session by scanning active goals and recent decisions from Memory Crystal. Use this at the start of a session to establish context before proceeding with substantive work.

Parameters

ParameterTypeRequiredDefaultDescription
channelstringNoOptional channel identifier to scope the briefing (e.g., “claude-code”, “telegram”)

Returns

{
  "briefing": "string",
  "openGoals": [
    {
      "title": "string",
      "memoryId": "string"
    }
  ],
  "recentDecisions": [
    {
      "title": "string",
      "memoryId": "string"
    }
  ]
}
Field descriptions:
  • briefing — Human-readable overview of session context and active priorities
  • openGoals — Array of goal memories marked as active/pending
  • recentDecisions — Array of recent decision memories (typically from last 7 days)
  • Each memory includes title and memoryId for reference/drill-down
The text output also includes a formatted block showing:
  • The briefing text
  • Open goals (bulleted list, or “none” if empty)
  • Recent decisions (bulleted list, or “none” if empty)

Examples

Basic usage

// Get default session briefing
crystal_wake()

// Text output:
// Briefing: You are working on the Memory Crystal MCP server...
//
// Open goals
// - Implement KB filtering for multi-tenant isolation
// - Add vector search optimizations
//
// Recent decisions
// - Chose Convex mutations over HTTP actions for memory writes
// - Switched from single embedding to cached batch processing

Advanced usage

// Get channel-scoped briefing
crystal_wake({
  channel: "claude-code"
})

// Get briefing for a specific project context
crystal_wake({
  channel: "telegram-coaching"
})

// Result includes goals/decisions specific to that channel

When to use this vs alternatives

  • crystal_wake — At session start to establish context; summarizes goals and recent decisions
  • crystal_recall — When you need semantically relevant memories on a specific topic
  • crystal_what_do_i_know — When you want a broad topic scan without fixed recency/category filters
  • crystal_recent — When you need recent message history, not memory summaries

Error handling

ErrorCauseResolution
channel is not a stringMalformed channel inputProvide a string or omit the parameter
Embedding service unavailableOpenAI or vector database offlineRetry; check network and OPENAI_API_KEY
No goals or decisions foundNew session with no prior contextNot an error — returns empty arrays. Proceed with user’s request.
Authentication failedInvalid Convex JWT or API keyVerify auth configuration in Convex client setup

Notes

  • The briefing is generated fresh on each call, not cached.
  • Open goals are memories with category=goal and status=active. Recent decisions are category=decision within the last 7 days.
  • Channel filtering is optional; if omitted, returns cross-channel goals and decisions.
  • The formatted briefing output includes a defense header to prevent accidental instruction injection.
  • If no goals or decisions exist, the tool returns empty arrays but does not error.
  • The briefing is designed to be read by an AI before substantial work begins; it primes context without forcing action.