Local-first strategic context and agent continuity layer via MCP (stdio + Streamable HTTP)
Consistorium demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive schemas with proper JSON Schema structure, and detailed descriptions. All 16 tools have explicit definitions with input schemas and annotations. Strengths: clear action verbs (context_list_*, context_get, context_upsert), structured parameter validation with regex patterns and enums, tool annotations (readOnlyHint/destructiveHint), and thoughtful composition (separate read/write tools). Weaknesses: output schemas are not documented in the tool definitions themselves (only inferred from implementation); some parameter descriptions could be more prescriptive about constraints; error handling guidance is minimal in tool descriptions; no batch variants despite agents likely calling list/get in loops.
Persist a bounded agent-to-agent handoff with canonical observed repository state separated from optional assertions.
Get one handoff's full structured detail.
List compact handoff summaries, optionally filtered by project/task; call context_handoff_get for detail.
List agent session artifacts (e.g., from Claude Code, Codex, Cline) discovered in configured projects.
List allowlisted strategy documents (README, design docs, etc.) for a project.
List all explicitly configured projects with their canonical path and git status. No arguments. Use this first to discover the project name, then call context_project_briefing.
Output schemas not documented in tool definitions. Tool descriptions do not specify what fields are returned, forcing LLMs to infer structure from implementation or trial-and-error. This violates pattern:tool-description and pattern:response-shaper.
Parameter descriptions lack prescriptive constraint guidance. E.g., 'recentLimit' says '1-20, default 8' in description but constraint is only in schema. Descriptions should state: 'Must be 1-20 (default 8)' so LLMs understand bounds without parsing JSON Schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
List git worktrees for a project.
Use this when the user asks what a project is, what happened recently, what is unfinished, what decisions exist, or what to do next. Returns one compact grounded briefing: live git state, recent commits, allowlisted strategy-doc excerpts, open tasks, latest handoffs, blockers, recorded decisions, and next actions. Distinguishes live repository observation from agent-recorded claims. Prefer this before chaining many other tools.
Get live repository detail: current branch, HEAD, worktrees, recent commits, and optional session artifacts.
Read the full text of one allowlisted strategy document.
Search project files by keyword or regex; returns matching file paths and line excerpts.
Get one agent session artifact's full content and metadata.
Get one task's full structured detail and refreshed live repository availability/state.
List compact task summaries; call context_task_get for the full task and live repository observation.
Create or safely update one bounded durable task record outside inspected repositories; existing tasks require the current expectedUpdatedAt version.
Get live worktree detail: branch, HEAD, dirty status, and recent commits.
No error handling guidance in tool descriptions. Tools do not document what errors are possible, when they are retryable, or what the LLM should do next. E.g., context_task_upsert mentions 'expectedUpdatedAt version' but does not explain what happens if it is stale or missing.
List tools lack pagination documentation. context_task_list, context_handoff_list, context_list_agent_sessions accept 'limit' but do not document whether results are truncated, how to fetch next page, or what total count is returned.
No batch variants for tools agents call in loops. Agents will likely call context_task_get or context_handoff_get repeatedly for each item from list results. A batch variant (e.g., context_task_get_batch) would reduce token waste and latency.