Skip to main content
Glama
ShadowGraph

ShadowGraph

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SHADOWGRAPH_FILENoDisposable container-local MCP store. Do not upload private stores, authentication files or transcripts./tmp/shadowgraph/data.json
SHADOWGRAPH_MCP_COMPACTNoMust be 0 with the Workflow Profile; compact=1 conflicts and startup rejects it.0
SHADOWGRAPH_MCP_PROFILENoworkflow selects 20 ordinary memory tools, reusing existing handlers and authorization. Restart/reconnect to change a profile.workflow

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Local-first decision and scoped temporal memory. Session tools/list defines the callable tools, schemas and effect hints. Literal every-term lookup: shadowgraph_search. Ranked experience: shadowgraph_recall. Content matches plus one-hop neighbours: shadowgraph_retrieve. Project working set: shadowgraph_context. Full record behind a context line: shadowgraph_expand, with the returned expansion handle. A review signal is a saved reminder to revisit a decision. Reopen rules are saved conditions on rejected alternatives. shadowgraph_review rechecks conditions and saves reminders; shadowgraph_review_context also loads the working set; shadowgraph_reconsider rechecks and explains all verdicts, including unresolved conditions. These evaluation calls commit a revision even on repeats. shadowgraph_context does not save review signals. shadowgraph_review_signals, when advertised, reads already-saved reminders without reevaluation or signal creation. shadowgraph_ack_review takes the saved signal's id; a review item's reviewSignalId maps to its required id argument. Reading saved signals and evaluating conditions have different effects. Chosen approach: shadowgraph_record_decision. Tried action and result: shadowgraph_record_attempt. Project/key observation for conditions: shadowgraph_record_fact. Scoped reusable memory: shadowgraph_remember. What happened to an existing decision: shadowgraph_record_outcome. Supporting or contradicting evidence: shadowgraph_confidence_evidence, when advertised. Lifecycle transition: shadowgraph_update_status. Replacement relation between decisions: shadowgraph_supersede. Read-capable tools accepting accessId or grantId can save a bounded audit and revision when a key is presented. A grant widens reads, never write authority. IDs do not supply project/origin scope. Returned completeness and provenance describe the result limits. Full-only operator capabilities require an operator-selected Full session and reconnect. A named sibling is callable only when advertised. Profiles change advertisement, not stored memory or product capabilities.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
shadowgraph_record_decisionA

Record one decision: chosen option, assumptions, evidence, and rejected alternatives with reopenWhen rules. Use shadowgraph_record_attempt for something tried, shadowgraph_record_fact for an observation, shadowgraph_remember for a note. Appends a decision and a journal entry; without idempotencyKey each call adds another and commits a revision.

shadowgraph_record_attemptA

Record one attempt with its result; returns the stored attempt. Use shadowgraph_record_decision for a choice; shadowgraph_record_outcome updates an existing decision and its confidence. An attempt is a separate record. Appends an attempt and journal entry and commits a revision; idempotencyKey prevents duplicate retries. resultClass overrides wording-based failure classification.

shadowgraph_reviewA

Evaluate reopen rules and persist signals; return only due decisions as { items, completeness }, with signal IDs. shadowgraph_review_signals reads saved signals; shadowgraph_reconsider explains all verdicts; shadowgraph_review_context adds context; shadowgraph_ack_review closes a signal. Persists deduplicated owned signals; every call commits a revision. Grants widen audited reads only. No choice or lifecycle changes.

shadowgraph_searchA

Find direct content matches for every literal query term. shadowgraph_retrieve adds ordered neighbours; shadowgraph_recall ranks matches; shadowgraph_context prepares a working set. Own-scope read saves nothing; an access key commits a revision and bounded audit. Paginated matches and completeness. "redis timeout" requires both terms, not an exact phrase; empty query applies filters only.

shadowgraph_contextA

Read a planning working set without saving signals: decisions, stale facts, failed attempts and fired conditions. shadowgraph_search matches every term; shadowgraph_retrieve adds neighbours; shadowgraph_recall ranks memory; shadowgraph_review_context persists signals. No decision or signal writes. Unmatched-query diagnostics stay in memory until a later save. No immediate revision without an access key; a key saves a revision and audit.

shadowgraph_review_contextA

Load the project working set and persist signals from evaluating reopen rules. shadowgraph_context does not save signals; shadowgraph_review also persists them, returning due decisions only; shadowgraph_ack_review acknowledges one. Deduplicates owned signals; every call commits a revision. Grants widen audited reads only. No choice or lifecycle changes.

shadowgraph_rememberA

Add or reconcile one scoped memory, or apply an ADD/UPDATE/DELETE/NOOP plan, by identity tuple. Use shadowgraph_record_decision for a choice, shadowgraph_record_fact for an observation, shadowgraph_recall to read memory back. Identical content is a NOOP, new content supersedes and keeps history, DELETE invalidates; every call commits a revision.

shadowgraph_recallA

Rank relevant scoped memory and records by lexical, vector, graph and temporal signals. shadowgraph_search requires every term; shadowgraph_retrieve adds neighbours; shadowgraph_context prepares a working set. Own-scope read saves nothing; an access key commits a revision and bounded audit. Returns scores and available signals; no provider/vector means no semantic ranking. Omitted memory scope fields select null, not any user/run.

shadowgraph_record_factA

Record one observed fact as a project and key, with a claimed provenance class and optional validity window. Use for the fact keys reopenWhen rules name; shadowgraph_remember stores durable memory that is not an observation. Supersedes the previous active fact, keeping it as history. No input can make a fact verified. Each call commits a revision.

shadowgraph_record_outcomeA

Record what happened to an existing decision and update its evidence-weighted confidence. shadowgraph_confidence_evidence records evidence short of an outcome, shadowgraph_update_status changes the lifecycle state. One outcome contribution per decision: re-recording replaces it, updates the decision timestamp and commits a revision; it does not change lifecycle status.

shadowgraph_confidence_evidenceA

Update decision confidence with keyed supporting or contradicting evidence; no outcome is recorded. Use shadowgraph_record_outcome once the decision has played out, shadowgraph_record_fact for an observation that can reopen it. Reusing key cannot double-count, but restamps the decision and commits a revision; a new observation needs a new key.

shadowgraph_update_statusA

Move one decision to another lifecycle state. shadowgraph_supersede replaces a decision, shadowgraph_maintain alone produces stale, shadowgraph_record_outcome records the result. stale and superseded are system-owned and rejected. Setting the current state writes nothing but still commits a revision.

shadowgraph_expandA

Read the full current record behind an existing context line; use its expansion handle as input. shadowgraph_context supplies the handle; flatten its scope into top-level inputs. Own-scope read saves nothing; an access key commits a revision and bounded audit. Returns record, revision status and bounded counterparts. A stale digest yields revision_changed; inaccessible records yield unavailable.

shadowgraph_supersedeA

Mark one decision superseded by a replacement in the same project. shadowgraph_record_decision creates the replacement; shadowgraph_update_status changes state without replacement. Returns previous, replacement and relation. Both IDs must be owned in the same project/origin. History stays searchable; even repeats commit a revision.

shadowgraph_maintainA

Age due owned decisions to stale, expire due owned facts, then evaluate reopen rules. shadowgraph_review evaluates without aging; shadowgraph_validate diagnoses integrity. Maintenance does not repair or restore. Uses now or the clock; saves lifecycle changes and signals, even on repeats. Grants widen audited reads, not writes. Returns changed IDs, due items and stored signals, including acknowledged ones.

shadowgraph_retrieveA

Find content matches plus ordered graph neighbours. shadowgraph_search returns matches only; shadowgraph_recall ranks relevance; shadowgraph_context prepares a working set. Own-scope read saves nothing; an access key commits a revision and bounded audit. Paginated records with match/relationship reasons. Every term must match a seed; neighbours need not match. Both stay in scope.

shadowgraph_validateA

Diagnose record, graph and journal integrity without applying repairs. shadowgraph_maintain ages records; shadowgraph_review checks decision rules; shadowgraph_repair_plan (full mode only) proposes repairs; shadowgraph_rebuild (full mode only) checks journal replay. Own-scope read saves nothing; an access key commits a revision and bounded audit. For full-mode tools, ask the operator to unset SHADOWGRAPH_MCP_PROFILE and restart with SHADOWGRAPH_MCP_COMPACT=0.

shadowgraph_review_signalsA

Read saved review signals without reevaluating conditions or creating signals. shadowgraph_review rechecks conditions and creates signals; shadowgraph_ack_review acknowledges one. Without an access key, this read saves nothing. An access key commits a revision and bounded audit. Returns { items, completeness }, unpaginated.

shadowgraph_ack_reviewA

Acknowledge a saved review signal; changes its status, not the decision. Use reviewSignalId from shadowgraph_review or shadowgraph_review_context as id; shadowgraph_review_signals lists signals. Change decisions with shadowgraph_update_status or shadowgraph_supersede. Overwrites signal status and acknowledgedAt without a journal entry; rebuild cannot recover it. Each call commits a revision; repeats restamp it.

shadowgraph_reconsiderA

Explain all reopen verdicts, including unchanged and uncertain cases, and persist review signals. shadowgraph_review returns only due items; shadowgraph_ack_review closes a signal. Saves deduplicated owned signals and commits a revision. Grants widen audited reads only. No choice, confidence or lifecycle changes. review_recommended: condition fired; manual_review: unresolved evidence; unchanged: complete evaluation, no trigger.

Prompts

Interactive templates invoked by user choice

NameDescription
shadowgraph_consequential_taskWhat ShadowGraph records and returns about decisions, facts, attempts and outcomes.

Resources

Contextual data attached and managed by the client

NameDescription
ShadowGraph contextCurrent project context and open review signals.

TDQS

A3.9/5.0

Scored across 20 tools

Disambiguation3/5

The write/record tools are mostly distinct, but the read and review surface has several near-overlapping tools: search vs retrieve vs recall vs context, and review vs review_context vs reconsider vs review_signals. The descriptions explicitly cross-reference each other, which helps, but the subtle distinctions still create meaningful misselection risk.

Naming Consistency4/5

All tools use the same shadowgraph_ prefix and snake_case style, with mostly predictable verb_noun names. A few names are noun-only or less action-oriented, such as context and confidence_evidence, but the overall convention remains readable and consistent.

Tool Count3/5

Twenty tools is borderline heavy for this server, especially because several are specialized read/review variants. Each tool does appear to have a specific role in the complex memory/decision domain, but the surface feels larger than necessary.

Completeness4/5

The set covers the core lifecycle well: recording decisions, facts, attempts, memory, outcomes, confidence evidence, status changes, supersession, review, search, maintenance, and validation. Some referenced full-mode operations such as repair_plan and rebuild are not present, and explicit deletion/export paths are limited, but the main workflows are covered.

Maintenance

ActivityActive
ResponsivenessNo issues