msgstack
A memory layer for your agentsMCP · Self-hosted · Open source

Your docs went stale.
Your agents didn't notice.

MsgStack keeps your API constraints, SLAs, deprecation timelines and config defaults as typed facts in a graph — versioned, with provenance. Agents query it over MCP. When one fact changes, everything that depends on it flags automatically.

002The graph — why retrieval isn't enough

Facts have dependencies. Embeddings don't.

Vector search finds text that resembles your question. It cannot tell you that the rate limit you just quoted is downstream of a gateway policy that changed last Tuesday. MsgStack stores facts as typed nodes — DEPENDS_ON, SUPERSEDES, CONTRADICTS — and walks them. Retrieval crosses spec boundaries; a change cascades.

003 — How traversal works
TRAVERSAL — get_impactGRAPH
> get_impact 441-B

  "Checkout is limited to 1000 req/min
   per API key."
  LOCKED · payments-api · v12

  changing this marks stale:
  ├─ integration-guide  DEPENDS_ON
  ├─ platform-slo/338   DEPENDS_ON
  └─ onboarding/104     INFORMS
003Schemas — one shape per kind of spec

Built for services, not campaigns.

An assertion is typed: a constraint, an SLA, a deprecation, a config default, an interface contract. Those are the categories a service owner actually maintains — and the ones an agent gets wrong most expensively.

004Change propagation — staleness that finds you

Edit one fact, invalidate the rest.

Two relationships carry staleness. When an assertion changes, everything joined to it by DEPENDS_ON or INFORMS is marked outdated and drops out of grounding results — transitively, and across spec boundaries. Nothing has to remember to check.

The propagation model
7
relationship types

DEPENDS_ON · INFORMS · SUPERSEDES · CONTRADICTS · OWNS · IMPLEMENTS · MENTIONS

2
propagate staleness

DEPENDS_ON and INFORMS cascade; the rest are navigational

3
content tiers

Verbatim · Structured · Grounded

transitive depth

A→B→C fully invalidates; cycles terminate

005Four tool calls · grounded, then verified

A real session, end to end.

I
Discover

list_specs returns every spec with its assertion count and how many are locked.

II
Retrieve

search_assertions fuses vector recall with graph expansion — results can come from a spec you didn't ask about.

III
Traverse

traverse_graph walks DEPENDS_ON and MENTIONS outward, returning the path that reached each fact.

IV
Check impact

get_impact shows the blast radius before you edit — the same walk that runs automatically on write.

RECORD — claude_mcp_sessionLIVE
Retrieval
2

Routes, fused. Vector recall for open questions, graph traversal for dependencies — combined with reciprocal rank fusion.

Locked facts
1:1

Tier 1 assertions are reproduced verbatim and validated after generation, not paraphrased toward.

Dependencies
0

Manual checks needed. Staleness cascades on write, transitively, across specs.

007Grounding in action — run the checker

Run the checker yourself.

MsgStack scores generated text against approved assertions. Simulate scanning a draft release note for claims that nothing in the graph supports.

AI Draft InputTarget: release-notes v4.2
This release raises checkout throughput. The endpoint now accepts unlimited requests per API key, and the gateway delivers sub-millisecond p99 latency. Availability remains a 99.99% uptime SLA for all paid tiers.

Verification Audit

100%
ALIGNMENT SCOREPending Verification
Claim Inspector
Click Run Grounding Checker above to verify the text.
Active Domain Contexts: developer-specs, security-spec, corporate-narrative
Apache 2.0 Open source

Self-hosted, yours entirely.

MCP server, admin UI, knowledge graph and artifact generation — open source and staying that way. Local vector index, no external vector database, one docker compose.

Request Early Access

MsgStack is open source and self-hostable. Join the developer waitlist for early access to updates, new grounding schemas, and MCP tooling.