Coordination memory with verification: reconcile-against-GitHub, verdict freshness, provenance.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
A generic, project-agnostic memory / coordination / artifact server for multi-agent and multi-surface work. One FastAPI process serves a 30-tool MCP over Streamable HTTP, backed by Postgres (+ pgvector), deployed standalone on a Replit Reserved VM.
This is Tier 1 of the reusability contract: every project reuses it as-is. It carries zero domain terms β project identity lives in namespace values, never in tool names, tables, columns, or code.
verified_persisted), standardized
error payloads with remedies, write-time screening + quarantine, provenance
tiers (origin, model attribution, derived_from lineage), trust decay
(needs_reverification), PHI-safe tool_events telemetry, per-namespace
variant profiles, and an observation_log feedback channel.namespace.57P01/08xxx)
on a fresh pooled connection, and validates connections at checkout, so callers
no longer have to retry. Retries are idempotency-gated, so they never double-write.[[UNTRUSTED_DATA]], never reconstructed on read),
instruction-shaped writes are screened and quarantined (visible in the write ack;
include_quarantined: true opts reads back in), and reads come back wrapped in
<<<UNTRUSTED_DATA>>> markers; storage.sanitize.unwrap_value recovers the raw
value when a consumer needs it (e.g. to json.loads). Honest framing: these are
layers, not proofs β deterministic screens and wrappers are bypassable by an
adaptive attacker; adversarial evaluation is pending (see Phase 10 backlog in
DECISION-PROTOCOL.md)./admin dashboard.| Group | Tools |
|---|---|
| memory | memory_save memory_get memory_list memory_history memory_delete memory_search |
| handoff | handoff_save handoff_load handoff_list |
| session | session_create session_append_event session_get session_list session_events |
| artifact | artifact_put artifact_get artifact_list |
| coordination | coord_health coord_drift_scan coord_reconcile coord_curate |
| gate | intent_open skill_define gate_close_outcome gate_cache_status |
| sequence | session_bootstrap namespace_init recall |
| feedback | observation_log |
| admin | stats |
Sequences are the paths an agent should take. Correct use of this server has
always been a sequence β learn which database answered, resolve the profile,
check what is stale, then act β and that ordering used to live in tool
descriptions and skills, i.e. it was enforced by a model remembering advice
mid-task, and a skipped step produced no signal whatsoever. The three sequence
tools run their steps server-side in a fixed order and return steps_run, so
the ordering is something the server did rather than something a caller got
right. They are strictly additive: every primitive they are built from still
works exactly as before, for surgical use.
recall and memory_search now share ONE retrieval guard
(storage/retrieval.py): the same absolute floor and relative alpha the Intent
Gate applies. Previously memory_search had no floor at all while intent_open
had both, so the same store answered the same question differently depending on
which tool the caller reached for. They still differ in what they do with the
verdict β memory_search annotates every row and drops nothing, recall
filters by default and reports the rejected counts β but they can no longer
disagree about what counts as a match.
The Intent Gate (claude/intent-gate/INTENT_GATE_CHARTER.md) is a
per-namespace opt-in (variant_profiles.profile.intent_gate: "on"): mutating
tools gain a deterministic Tier-0 pre-flight (two-phase preview/confirm for
supersession + delete, dependency-freshness flags, compact gate ack block),
intent_open adds the Tier-1 memory-similarity critic, and Tier 2 (LLM
reasoning over the direct Anthropic API β never MCP sampling) ships behind
tier2: "on" (default off). Default-profile namespaces are byte-identical to
the pre-gate server.
/healthz (liveness) and the /admin token dashboard are served separately (not
MCP tools).
namespace == project == tenant. One namespace per project (e.g.
acme-billing), with conventional sub-scopes by key prefix (coord/β¦,
knowledge/β¦). Every per-project tool takes a required namespace and every
query filters on it β there are no implicit cross-project reads. The session
and session_event tables carry namespace too, so episodic memory is scoped
like everything else.
Artifacts are the deliberate exception: they are content-addressed (sha256) and dedup globally, so they are not tenant-scoped β the hash is the capability.
The per-surface tokens scope which client surface connects, not which project it may touch: any holder of any active token can pass any namespace, so namespace remains a soft boundary β real isolation for honest clients, not enforced against a misbehaving one.
v2 auth roadmap β per-project tokens/roles. A token scoped to
acme-billingmust not be able to read or writeother-project. Until then, treat the namespace boundary as a convention enforced by client configuration, not by the server. (See REUSABILITY.md β "namespace is the tenant boundary".)
MCP tokens are stored in Postgres (admin_auth_tokens) and rotatable from
/admin without a redeploy. There is one active token per surface:
| surface | label | how the client sends it |
|---|---|---|
| claude.ai web connector | web | ?token=<token> in the URL (the web connector can't send headers) |
| Claude Desktop and the Claude Code CLI | desktop-cli | Authorization: Bearer <token> |
| Cursor | cursor | Authorization: Bearer <token> (via .cursor/mcp.json) |
The gate accepts any active token, so each surface can be rotated or
revoked independently β rotating web never disturbs desktop-cli or
cursor. The
/admin page shows one card per surface with a ready-to-paste URL/command and
its own rotate button.
MCP_AUTH_TOKEN seeds the web token on initial boot (so an existing
claude.ai connector keeps working); desktop-cli and cursor are
auto-generated. After first boot the dashboard is the source of truth.
/admin is password-gated by ADMIN_PASSWORD (signed, HttpOnly session
cookie, CSRF-protected). Without it the dashboard refuses logins.GET /healthz, the streamed
GET /artifact/{sha256}, and /admin (which self-authenticates).Stateless transport. /mcp runs in stateless HTTP mode
(http_app(stateless_http=True)): every request is self-contained, with no
in-memory session affinity. Client sessions therefore survive VM
restarts/redeploys, and the three surfaces share no server-side session state.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-assist-coordination-memory)<a href="https://allmcps.com/mcp/mcp-assist-coordination-memory"><img src="https://allmcps.com/api/badge/mcp-assist-coordination-memory?style=directory" alt="MCP Assist β Coordination Memory on AllMCPs" /></a>