CPersona
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CPERSONA_RRF_K | No | RRF smoothing parameter | 60 |
| CPERSONA_DB_PATH | No | SQLite database path | ./cpersona.db |
| CPERSONA_SEARCH_MODE | No | Search strategy (`rrf` or `cascade`) | rrf |
| CPERSONA_EMBEDDING_URL | No | Embedding server URL | http://127.0.0.1:8401/embed |
| CPERSONA_AUTO_CALIBRATE | No | Auto-calibrate on startup | false |
| CPERSONA_EMBEDDING_MODE | No | Embedding mode (`http` or `disabled`) | http |
| CPERSONA_CONFIDENCE_ENABLED | No | Include confidence metadata in results | false |
| CPERSONA_TASK_QUEUE_ENABLED | No | Enable background task queue | false |
| CPERSONA_VECTOR_SEARCH_MODE | No | Vector search mode | remote |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pause_persistenceA | Pause write operations on this MCP server for an opt-in TTL window. While paused, all write tools (store, archive_episode, update/delete/lock/unlock_memory, update_profile, import_memories, merge_memories, calibrate_threshold) return no-op responses with |
| resume_persistenceA | Re-enable persistence immediately, clearing any active no-persist TTL. Returns was_active=true if persistence was paused before this call. |
| persistence_statusA | Report whether persistence is currently paused and the TTL remaining (in seconds). |
| storeA | Store a message in agent memory for future recall. |
| recallA | Recall relevant memories using multi-strategy search (vector + FTS5 + keyword). |
| recall_with_contextA | Recall memories and merge with external conversation context. Automatically deduplicates, sorts chronologically, and returns a unified list. Replaces separate recall + manual merge in the caller. |
| get_profileC | Get the current profile for an agent. |
| update_profileA | Save a pre-computed agent profile to the database. |
| archive_episodeA | Archive a conversation episode with pre-computed summary, keywords, and resolved status. All LLM processing is performed by the caller. |
| list_memoriesB | List recent memories for an agent (for dashboard display). |
| list_episodesB | List archived episodes for an agent (for dashboard display). |
| delete_agent_dataA | Delete ALL data (memories, profiles, episodes) for a specific agent. Used by kernel during agent deletion. |
| calibrate_thresholdA | Auto-calibrate the vector search threshold from the null (random-pair) cosine distribution. Samples random memory pairs and places the threshold ABOVE the null mean so unrelated pairs are rejected. method='percentile' (default) uses a quantile of the null distribution (robust to anisotropic models such as bge-m3); method='zscore' uses mean + z*std. No labels used, purely statistical. Adapts to both embedding model and corpus characteristics. |
| set_recall_precisionA | Set an agent's recall precision (knob 3) and recalibrate its quality gate. precision = strict | balanced | lenient maps to a specificity weight beta of 2.0 / 1.0 / 0.5 in the gate separation objective (sensitivity + beta*specificity): strict sits the gate higher (fewer contaminants, more misses), lenient lower (fewer misses, more contaminants). A raw beta > 0 overrides the named level; an empty precision with beta <= 0 clears the per-agent override and returns the agent to the global CPERSONA_RECALL_PRECISION default. The gate is recalibrated at the new beta immediately and persisted, so the change is live without a restart. Precision is a per-agent setting, not a per-recall argument: the gate threshold is precomputed on the separation curve at a fixed beta, so this tool recalibrates once instead. |
| get_recall_precisionA | Read an agent's effective recall precision (knob 3) — the read-back companion to set_recall_precision. Returns the resolved specificity weight (beta) and its named precision level (strict / balanced / lenient, or 'custom' for a raw beta), and flags whether the value is a per-agent override or the global CPERSONA_RECALL_PRECISION default (overridden + global_precision / global_beta). Read-only: it never recalibrates and never persists, so a UI can load the current setting, let the user edit it, and write it back instead of the control being write-only. |
| delete_memoryA | Delete a single memory by ID. Ownership is enforced when agent_id is provided. |
| delete_episodeA | Delete a single episode by ID. Ownership is enforced when agent_id is provided. |
| update_memoryA | Update memory content by ID. Rejects if memory is locked. Ownership enforced when agent_id provided. |
| lock_memoryA | Lock a memory to prevent deletion and editing. Ownership enforced when agent_id provided. |
| unlock_memoryA | Unlock a memory to allow deletion and editing. Ownership enforced when agent_id provided. |
| get_queue_statusA | Get the status of the background task queue (pending tasks, retry config). |
| export_memoriesB | Export memories, episodes, and profiles to a JSONL file for backup or portability. |
| import_memoriesA | Import memories, episodes, and profiles from a JSONL file. Idempotent via msg_id deduplication. |
| merge_memoriesA | Merge memories, episodes, and profiles from one agent into another. Atomic one-shot equivalent of export→import without intermediate files. Strategy 'skip' deduplicates by msg_id (memories) and summary (episodes). |
| check_healthA | Check memory database health (20-check registry, each issue tagged with severity critical/warn/info). Detects contamination, duplicates, oversized content, embedding issues, FTS integrity (count + content-level), schema version/object drift (missing UNIQUE indexes or FTS triggers), SQLite file integrity, project_id naming drift, invalid JSON/timestamps, timestamp format drift, stale tasks, missing profiles, empty content, invalid/anonymous sources. Returns storage stats incl. project_id/channel distributions. Set fix=true to auto-repair (agent-scoped, locked-safe); critical file-integrity findings are report-only. Use checks parameter to run a subset. |
| deep_checkA | Deep heuristic analysis of memory data quality. Detects issues requiring recovery or judgment (anonymous sources, short/trivial content, stale profiles, orphaned episodes, stale threshold calibration, embedding-space near-duplicate pairs as merge candidates). near_duplicate and calibration_staleness are report-only: apply decisions via merge_memories / delete_memory / calibrate_threshold. Set fix=true to apply repairs. Use checks parameter to select specific checks. |
| migrate_channel_axisA | Re-channel bridge-type memories to their concrete channel (knob2 v2 default flip prep). Memories the kernel filed under the bridge type ('discord') are rewritten to the concrete channel recovered from the stored session_id ('{channel_id}:{user_id}:{chunk}' | '{channel_id}:shared' → channel_id), so per-channel recall can match them. Non-destructive (only the channel column changes) and idempotent (re-running is a no-op once moved). dry_run=true (default) reports the recoverable count, the channels that would be recovered, and an unrecoverable bucket (channel='discord' rows with no snowflake session_id) without mutating. globalize_unrecoverable=true moves the unrecoverable bucket to channel='' (global, matched by every channel-scoped recall) so the flip orphans nothing; default false (report only). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Cloto-dev/CPersona'
If you have feedback or need assistance with the MCP directory API, please join our Discord server