CPersona

by cloto-dev

Not rated
GitHub

About

Persistent AI memory server with 3-layer hybrid search, confidence scoring, and 16 tools. Zero LLM dependency.

Details

Author
cloto-dev
Categories
Database, AI, Other, Knowledge Base

Setup

Install CPersona in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/cloto-dev/cpersona

Follow the installation instructions in the repository README, then restart your MCP client.

Recall fusion mode (CPERSONA_RECALL_MODE)

- rrf(default) — Reciprocal Rank Fusion: merges the vector + FTS channels by rank only. Robust and scale-free, but discards score magnitude.
- rsf— Relative Score Fusion: per-query min-max-normalizes each channel's raw score (cosine for vector, bm25 for keyword) and sums them, so the keyword channel's bm25 magnitude survives the merge.Recommended for topic-drift-prone or space-less language (e.g. Japanese) contexts, where that magnitude is the discriminating signalrrfflattens away (≈ Weaviate'srelativeScoreFusion; see the ClotoCoreRECALL_CONTAMINATION_AB_2026-06-14report §10–12).Caveat:min-max normalization can over-cut small, closely-scored result sets whenautocutis enabled —rrfremains the default until that interaction is hardened.
- cascade— Sequential channel fill (legacy).

WithCPERSONA_CONFIDENCE_ENABLED=true, the fusion mode does not decide the order you get back.Fusion selects which candidates enter the result set; confidence scoring then re-sorts that set, and the quality gate keys on the confidence score rather than on the fused one. Measured on a 1,545-document corpus with 394 queries: with confidence on,rsfandrrfreturned the same rows in the same order forall 394queries; with it off, the two agreed on fewer than 10%. So if you set a fusion mode expecting a ranking change, either leave confidence off, or expect the mode to affect which memories are considered and not the order they come back in.

- ~10,700 LOCPython across focused modules, plus a 3,300-line vendored MCP common snapshot
- 819 test functionsacross 73 test modules — 1,030 cases once the behavioural matrix is parametrised (~24,100 LOC, more test code than server code), including structural-enforcement gates
- Schema v13(auto-migrating)
- MIT License

cpersona is an MCP server — it works with any MCP-compatible host:

- ](https://github.com/Cloto-dev/cpersona/blob/master/benchmarks/README.md)Claude Desktop
-
Claude Code
-
ClotoCore(AI agent platform, where cpersona originated)
- Any custom MCP client

cpersona is the memory layer ofClotoCore, an open-source AI agent platform written in Rust. While cpersona is fully standalone (MIT license), it was designed to give AI agents persistent, searchable memory within the ClotoCore ecosystem.

Every release is gated by a machine-verifiable quality process:

- Audit-gated releases— before a release is cut, the codebase goes through comprehensive multi-agent audit rounds (independent finders per dimension, each finding adversarially verified from multiple lenses). v2.4.39 shipped after three such rounds — 43 fixes, every one re-verified against the tree it landed on.
- Issue registry— every audited defect lives in
qa/issue-registry.jsonwith a machine-checkable code pattern;scripts/verify-issues.shverifies that every fix marker is still present (and every removed defect stays removed), so a regression or a silently-reverted fix fails loudly.
- Structural CI gates— invariants that a plain test can't express are enforced by AST- and behaviour-level gates in the pytest suite (run in CI on Python 3.11/3.13): every writer holds the shared write lock, agent-scoped SQL carries its isolation predicates, identity/dedup probes carry the project/channel axes, andcheck_healthperforms no embedding network I/O while holding the write lock.
- Release lifecycle standard— the release process itself is specified in
docs/RELEASE_LIFECYCLE_STANDARD.md(v1.0), piloted in this repository as the reference implementation for Cloto-family projects.

Releases follow a three-tier model —Stable(production-certified, critical fixes only),Current(newest release line, all fixes land here), andExperimental(alpha/beta pre-releases, opt-in). When a new line is certified Stable, the previous one keeps critical-fix support for 30 more days, then reaches EOL. Current status:2.4.x is the Stable line(latest v2.4.41) and2.5.x is the Current line(latest v2.5.4), where all fixes land while it awaits production-soak certification.

Known issue:v2.4.39 and earlier under-scan vector recall on corpora beyond a few hundred rows (bug-085; v2.4.38–v2.4.39 are the most affected — the limit clamp closed the only workaround). Fixed in v2.4.40; upgrading is strongly recommended. SeeSUPPORT.md § Known issues.

Known issue (Stable line):the 2.4.x line starts the HTTP transportunauthenticatedwhenCPERSONA_AUTH_TOKENis unset and the bind is a loopback address (bug-198, HIGH). A loopback bind does not bound reachability — tunnels, reverse proxies,kubectl port-forwardand published container ports all forward to127.0.0.1.If you serve 2.4.x over HTTP, setCPERSONA_AUTH_TOKEN.The startup enforcement that makes a missing token refuse to boot wherever it binds is in the Current line (since v2.5.3); the Stable line only warns.

Full policy:SUPPORT.md· specification:RELEASE_LIFECYCLE_STANDARD.md· security reports:[SECURITY.md.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.