Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CPERSONA_RRF_KNoRRF smoothing parameter60
CPERSONA_DB_PATHNoSQLite database path./cpersona.db
CPERSONA_SEARCH_MODENoSearch strategy (`rrf` or `cascade`)rrf
CPERSONA_EMBEDDING_URLNoEmbedding server URLhttp://127.0.0.1:8401/embed
CPERSONA_AUTO_CALIBRATENoAuto-calibrate on startupfalse
CPERSONA_EMBEDDING_MODENoEmbedding mode (`http` or `disabled`)http
CPERSONA_CONFIDENCE_ENABLEDNoInclude confidence metadata in resultsfalse
CPERSONA_TASK_QUEUE_ENABLEDNoEnable background task queuefalse
CPERSONA_VECTOR_SEARCH_MODENoVector search moderemote

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 persisted: false and id: "no-persist" instead of writing to the database. Read tools (recall, list_*, get_profile, etc.) are unaffected. This affects only this MCP server (cpersona). Call cscheduler's pause_persistence too if you want both paused. Use for benchmarking, AB testing, or ephemeral exploration where memory contamination must be avoided. Default TTL: 1800 seconds (30 minutes); upper bound: 86400 seconds (1 day).

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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