YantrikDB MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YANTRIKDB_API_KEY | No | Bearer token for network transports | |
| YANTRIKDB_DB_PATH | No | Database file path | ~/.yantrikdb/memory.db |
| YANTRIKDB_EMBEDDING_DIM | No | Embedding dimension | 384 |
| YANTRIKDB_EMBEDDING_MODEL | No | Sentence transformer model | all-MiniLM-L6-v2 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| rememberA | Store one or more memories in persistent cognitive memory. WHEN TO USE: Call proactively whenever the conversation reveals something worth remembering — decisions, preferences, facts about people, project context. Do NOT store ephemeral task details, code snippets, or git-derivable info. SINGLE: remember(text="User prefers dark mode", domain="preference", importance=0.7) BATCH: remember(memories=[{"text": "Alice is DevOps lead", "domain": "people"}, ...]) DRAFT: remember(summary="...long end-of-session summary...") — v0.8.0+ engine atomizes the summary into linked semantic facts; useful for the end-of-session auto-capture pattern. IMPORTANCE: 0.8-1.0 critical decisions | 0.5-0.7 useful context | 0.3-0.5 background Args: text: Memory text (for single memory). Be specific and searchable. memory_type: "semantic" (facts), "episodic" (events), "procedural" (how-to). importance: 0.0-1.0. Higher = remembered longer. domain: "work", "preference", "architecture", "people", "infrastructure", "health", "finance", "general". source: "user", "inference", "document", "system". valence: Emotional tone (-1.0 to 1.0). 0.0 neutral. metadata: Optional key-value pairs. namespace: For per-project isolation. certainty: Confidence 0.0-1.0. emotional_state: joy, frustration, excitement, concern, neutral. memories: List of memory dicts for batch. summary: For draft mode — long summary that the engine atomizes. idempotency_key: v0.10 engine — makes the write exactly-once: retrying with the same key + same text returns the SAME rid with no second write; same key + different text is an error. Engine-embedder (bundled) backend only. On batch, the key scopes per item as "{key}:{index}" if the atomic batch path is unavailable. |
| recallA | Search memories by semantic similarity, or refine low-confidence results. MODES:
WHEN TO USE: conversation start (summarize the user's first message); when the user references past decisions, people, preferences, or "last time"; when unsure about something the user assumes you know. Refine when first confidence < 0.5. After USING a recalled memory, reinforce it via memory(action="feedback", rid=..., feedback="relevant"). For "what is the CURRENT/latest X", prefer memory(action="chain_head") — similarity favors the most-similar revision, not the newest. QUERY: one short natural-language sentence (5-10 words), NOT a keyword list — keyword stuffing degrades quality. One focused question per call; separate calls for separate topics. TRUST SIGNALS: each hit's Args: query: Short natural language sentence (5-10 words). NOT a keyword list. top_k: Max results (default 10). 3-5 for focused, 10-20 for broad. memory_type: Filter: "semantic", "episodic", "procedural". domain: Filter: "work", "preference", "architecture", "people", etc. source: Filter: "user", "inference", "document", "system". namespace: Filter by namespace. include_consolidated: Include merged memories. include_superseded: v0.10 — recall EXCLUDES superseded records by default (current-by-default). Set True only for history / archaeology over a revision chain. expand_entities: Use knowledge graph boosting (default True). min_score_ratio: Drop hits scoring below this fraction of the TOP hit (0.8 = keep only near-as-good matches). Semantic search always returns top_k, even when one result is relevant and the rest are noise; this trims the tail instead of making you judge it. refine_from: Original query text to refine from. query becomes the refinement. refine_exclude: Memory IDs to exclude when refining. |
| forgetA | Permanently forget (tombstone) one or more memories. WHEN TO USE: When the user explicitly asks to forget something, or when a memory
is clearly wrong and correction isn't appropriate. Prefer Args: rid: Single memory ID to forget. rids: List of memory IDs to forget (batch mode). |
| correctA | Correct an existing memory in-place with a revision-history entry (engine v0.7.20+, Issue #47). WHEN TO USE: When the user corrects a recalled fact.
Preserves history via an append-only revision entry keyed on Args: rid: The memory ID to correct. reason: Required — why the correction was made. Non-empty. Recorded on the revision-history entry so future recall + audit can reconstruct why the memory changed. new_text: Optional new text (pass None to keep existing). new_importance: Optional updated importance (0.0-1.0). new_valence: Optional updated valence (-1.0 to 1.0). metadata_merge: Optional dict to merge into existing metadata (None = keep as-is). |
| thinkA | Run incremental cognitive maintenance — processes a small batch per call. DESIGNED TO BE CALLED OFTEN: Each call processes ~5 memories (configurable). Running regularly (e.g. at end of conversation) gradually maintains the entire database without blocking. Safe to call frequently. MODES:
Args: run_consolidation: Merge similar memories (default on). run_conflict_scan: Detect contradictions (default on). run_pattern_mining: Mine cross-domain patterns (default off, slow). consolidation_time_window_days: Only consolidate memories within this window (default 7 days). consolidation_limit: Batch size — max memories to process per call (default 5). Keep small for fast returns. maintenance_cycle: Run the full autonomous hygiene cycle instead. last_cycle_only: Just fetch the last cycle summary (read-only). dry_run: For maintenance_cycle — preview without persisting changes. burn_down_conflicts / prune_triggers_too / max_pending_triggers / recalibrate_importance / backfill_entities / auto_relate_in_cycle / max_auto_relate_edges / split_oversized / split_min_chars / repair_artifacts: Maintenance-cycle knobs. |
| memoryA | Manage individual memories — get, list, search, update importance, archive, hydrate, relevance feedback, fetch a chain-shaped namespace's head, or query revision history. ACTIONS:
Args: See action docs above. New args: namespace: Required for chain_head — the chain-shaped namespace. rid: Required for history/feedback — the record acted on. feedback: For feedback — "relevant" or "irrelevant". feedback_query: For feedback — the query that surfaced the memory. feedback_score / feedback_rank: For feedback — retrieval context. |
| graphB | Knowledge graph operations — entity relationships, memory↔entity links, record-to-record links, co-occurrence auto-relate, and link-expanded recall. ACTIONS:
Args: action: One of the actions above. entity / target / relationship / weight / rid / pattern / limit / days / namespace: Legacy entity-graph args. source_rid / target_rid / link_type: For record_link / record_unlink. direction: For linked_records — "outbound" / "inbound" / "both". dry_run: For auto_relate — preview without persisting. max_edges: For auto_relate — cap edges proposed/created. query: For recall_with_links — natural language search. top_k: For recall_with_links — max seed results. expand_links: For recall_with_links — hop budget for traversal. |
| conflictA | Manage memory conflicts (contradictions) — list, resolve, dismiss, reclassify, or batch-burn-down the unambiguous ones (v0.8.0+). ACTIONS:
Args: action: "list", "get", "resolve", "reclassify", "auto_resolve". conflict_id / status / strategy / winner_rid / new_text / resolution_note / new_type / limit: see action docs above. dry_run: For auto_resolve — preview without persisting. |
| triggerA | Manage proactive triggers + v0.8.0 bounded-backlog pruning. ACTIONS:
Args: action: One of the actions above. trigger_id: Required for acknowledge/deliver/act/dismiss. trigger_type: Filter by type (for pending/history). limit: Max results. dry_run: For prune — preview without persisting. max_pending: For prune — soft cap on the pending backlog (default 64). |
| sessionA | Session lifecycle — start, end, history, active check, stale cleanup, and the v0.9.0 boot-time digest. ACTIONS:
Args: action: "start", "end", "capture", "history", "active", "abandon_stale", "digest". session_id: For end. namespace: Memory namespace. client_id: Client identifier. metadata: For start — optional dict. summary: For end — optional closing note. For capture — REQUIRED, the session summary to segment into memories. domain: For capture — domain stamped on drafted memories. limit: For history. abandon_stale_hours: For abandon_stale — max age in hours. narrative_namespace: For digest — namespace for the narrative chain. scope: For digest — filter content aggregates to one namespace (per-tenant isolation); omit for a whole-DB digest. include_gaps: For digest — fold top knowledge gaps into the briefing. max_gaps: For digest — cap on gaps surfaced when include_gaps=True. max_decisions / max_conflicts / max_triggers: For digest — surface caps. snippet_chars: For digest — text-snippet length per item. |
| temporalA | Find stale or upcoming memories, or recall the past as it was known. ACTIONS:
Args: action: "stale", "upcoming", or "as_of". days: Inactivity threshold (stale) or look-ahead window (upcoming). limit: Max results. namespace: Optional filter. query: Search text (required for "as_of"). as_of: Past instant (required for "as_of"): "2026-08-01", "2026-08-01T14:30:00Z", "7d"/"24h" (ago), or unix seconds. |
| procedureA | Procedural memory — learn, surface, and reinforce strategies. ACTIONS:
EXAMPLES:
Args: action: "learn", "surface", "reinforce". text: Procedure description (for learn). query: What you're about to do (for surface). rid: Procedure ID (for reinforce). domain: Task domain. task_context: What kind of task (for learn). effectiveness: Initial effectiveness 0.0-1.0 (for learn). outcome: How well it worked 0.0-1.0 (for reinforce). top_k: Max results (for surface). namespace: Namespace. |
| categoryA | Substitution categories for conflict detection — list, inspect, teach, or reset. ACTIONS:
EXAMPLES:
Args: action: "list", "members", "learn", "reset". category_name: Required for members/learn/reset. members: For learn: [[token, confidence], ...]. source: For learn: "llm_suggested", "user_confirmed", "seed". |
| personalityA | AI personality traits derived from memory patterns. ACTIONS:
Traits: warmth, depth, energy, attentiveness (0.0-1.0). Args: action: "get" or "set". trait_name: For set: warmth, depth, energy, attentiveness. score: For set: 0.0-1.0. recompute: For get: re-derive from memory patterns first. |
| statsA | Engine statistics, health check, learned weights, privacy/leak audit, and skill substrate counts. Read-only — index maintenance moved to think(maintenance_op=...) in v0.10. ACTIONS:
Args: action: One of the actions above. namespace: Filter for stats. max_rids: For audit_leak — max candidate rids to inspect. |
| skillA | Substrate-native agent skill catalog — define, surface, record outcomes. Skills are structured catalog entries ( Schema-validated at write time:
ACTIONS:
EXAMPLE: skill(action="define", skill_id="workflow.git.commit_clean", body="Before commit: run pytest + lint...", skill_type="procedure", applies_to=["git", "release"]) — then surface(query=...) before similar work, and outcome(skill_id=..., succeeded=True/False) after using one. Args: action: "define", "surface", "outcome", "get", "list". skill_id: Dot-separated id (for define/get/outcome). body: Skill body, 50–5000 chars (for define). skill_type: procedure|reference|lesson|pattern|rule (for define). applies_to: Non-empty identifier list ≤10 entries (for define; optional filter for surface/list). triggers: Optional list of trigger phrases (for define). on_conflict: "reject" (default) or "replace" if skill_id exists. version: Optional semver-shaped version string. supersedes: Optional skill_id this one replaces. query: Natural-language search (for surface). top_k: Max results for surface. succeeded: Outcome boolean (for outcome). note: Optional outcome note. limit: Max results for list. |
| gapsA | Surface knowledge gaps — frequently-asked, poorly-answered queries (v0.9.0 engine demand log). The substrate logs every recall and tracks how often each query is asked
Args: min_count: Only surface queries asked at least this many times. max_avg_top_score: Only surface queries whose best recall score averages below this (lower = poorer answer). limit: Max gaps to return. |
| conversationA | Bounded encrypted working-memory ring buffer for raw conversation turns (v0.9.0 engine conversation primitive). Unlike ACTIONS:
Args: action: "record" | "recent" | "clear". namespace: Ring buffer namespace (separate buffers per agent / topic). role: "user" | "assistant" | "system" | "tool" — caller's choice. content: The verbatim turn text. max_turns: Ring size at record time (default 10). limit: How many recent turns to return. |
| taskA | Substrate-backed task / chore store (v0.9.0 engine). A thin general-purpose to-do tracker baked into yantrikdb — survives sessions, lives next to memories so future agents see open tasks at session_digest time. ACTIONS:
PRIORITY: "low" | "medium" | "high" — priority-ordered in Args: action: "add" | "get" | "list" | "update" | "delete". namespace: Per-project / per-agent isolation. title: Task description (for add). priority: "low" | "medium" | "high" (for add / update). parent_id: Optional parent task id (for add — sub-task tree). task_id: Task id (for get / update / delete). status: Filter (for list) or new value (for update). |
| packA | Signed, portable memory bundles — inspect, install, and trust packs. A pack is a sealed corpus another agent or vendor published. Mounted pack memories are recallable alongside your own but are DOWN-WEIGHTED (tier_multiplier < 1.0): what the user told you locally always outranks imported knowledge. READ ACTIONS (always available):
WRITE ACTIONS (operator-gated; set YANTRIKDB_ENABLE_PACK_WRITES=1):
Args: action: One of the read/write actions above. path: Pack file path (inspect / install / mount). pack_id: Pack identifier, e.g. "origin@1.0.0" (uninstall / unmount). pubkey: Publisher public key hex (trust / untrust). label: Human label for a trusted publisher (trust). allow_unverified_embedder: Mount despite an unverified embedder. Does NOT override a hard dimension mismatch. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| stats_resource | Current YantrikDB engine statistics — memory counts, entities, conflicts, patterns. |
| health_resource | Server health status — use to verify the memory system is operational. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/yantrikos/yantrikdb-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server