Skip to main content
Glama

⚡ dakera-mcp

CI Crate npm Downloads License: MIT LoCoMo 88.2% Glama Docs dakera.ai Playground

MCP server for Dakera AI. Gives any MCP-compatible AI agent persistent, queryable memory — with smart token management built in.

Works with Claude, Claude Code, and any MCP-compatible framework.

Part of Dakera AI — the memory engine for AI agents.

The Dakera memory engine scores 88.2% Recall@20 on LoCoMo (1,540 questions · LLM-judge scored) — benchmark details


Architecture: 14 core tools + on-demand discovery

Starting every agent session with 60+ tool schemas wastes ~15K tokens before you write a single message. dakera-mcp solves this with hybrid tool exposure:

  • 14 tools loaded by default — the 12 highest-frequency memory operations + 2 meta-discovery tools

  • On-demand expansion — use dakera_discover_tools and dakera_load_tools to fetch additional tool schemas only when you need them

Default tool set (core profile)

Tool

Purpose

dakera_store

Store a memory with importance, tags, and type

dakera_recall

Semantic recall by query text

dakera_search

Advanced memory search with tag/type filters

dakera_session_start

Start a session to group related memories

dakera_session_end

End a session with optional summary

dakera_batch_recall

Bulk filter-based recall (by tags, importance, time)

dakera_forget

Delete specific memories by ID

dakera_hybrid_search

Combined vector + BM25 search

dakera_fulltext_search

BM25 full-text search

dakera_knowledge_graph

Build a knowledge graph from a seed memory

dakera_extract

Extract entities and structure from free-form text

dakera_batch_forget

Bulk delete by tags, type, or time range

dakera_discover_tools

Search the full tool catalog by keyword or tier

dakera_load_tools

Load full schemas for specific tools on demand

Profiles & token cost

Profile

Tools

~Tokens

How to enable

core

14

~2,964

Default — always loaded

admin

32

~5,975

DAKERA_MCP_PROFILE=admin

power

69

~13,205

DAKERA_MCP_PROFILE=power

all

87

~16,212

DAKERA_MCP_PROFILE=all

Accessing additional tools

# In your agent: discover what's available
dakera_discover_tools(tier="power")
→ returns names + descriptions, no schemas loaded

# Load schemas for the tools you want
dakera_load_tools(tools=["dakera_consolidate", "dakera_agent_stats"])
→ returns full inputSchema for each tool

Profile selection

The profile controls which tools appear in tools/list. Three ways to set it:

1. Per-request (in tools/list params):

{"profile": "power"}

2. Environment variable (applies to all requests):

DAKERA_MCP_PROFILE=power

3. Default: core (14 tools, ~2,964 tokens)


Related MCP server: Zep MCP Server

Run Dakera

The MCP server connects to a Dakera memory server. You need one running first:

docker run -d \
  --name dakera \
  -p 3300:3000 \
  -e DAKERA_ROOT_API_KEY=dk-mykey \
  ghcr.io/dakera-ai/dakera:latest

For persistent storage (recommended):

curl -sSfL https://raw.githubusercontent.com/Dakera-AI/dakera-deploy/main/docker-compose.yml \
  -o docker-compose.yml
DAKERA_API_KEY=dk-mykey docker compose up -d

curl http://localhost:3000/health  # → {"status":"ok"}

Full deployment guide (Docker Compose, Kubernetes, Helm): dakera-deploy


Install

npm / npx (Node.js 18+)

# Global install
npm install -g @dakera-ai/dakera-mcp

# Or run directly without installing
npx @dakera-ai/dakera-mcp

Homebrew (macOS / Linux)

brew install dakera-ai/tap/dakera-mcp

Cargo

cargo install dakera-mcp

Docker

docker pull ghcr.io/dakera-ai/dakera-mcp:latest

Binary download

Pre-built binaries for macOS, Linux, and Windows are available on the releases page.

Platform

File

macOS (Apple Silicon)

dakera-mcp-aarch64-apple-darwin.tar.gz

macOS (Intel)

dakera-mcp-x86_64-apple-darwin.tar.gz

Linux x64

dakera-mcp-x86_64-unknown-linux-musl.tar.gz

Linux arm64

dakera-mcp-aarch64-unknown-linux-musl.tar.gz

Windows x64

dakera-mcp-x86_64-pc-windows-msvc.zip


Connect

Add to .mcp.json (Claude Code) or claude_desktop_config.json (Claude Desktop):

{
  "mcpServers": {
    "dakera": {
      "command": "dakera-mcp",
      "env": {
        "DAKERA_API_URL": "http://localhost:3300",
        "DAKERA_API_KEY": "your-key"
      }
    }
  }
}

To start with the power profile (exposes 68 tools):

{
  "mcpServers": {
    "dakera": {
      "command": "dakera-mcp",
      "env": {
        "DAKERA_API_URL": "http://localhost:3300",
        "DAKERA_API_KEY": "your-key",
        "DAKERA_MCP_PROFILE": "power"
      }
    }
  }
}

Why This Exists

AI agents forget everything when the session ends. Dakera fixes that. This MCP server gives your agent a persistent memory layer with zero infrastructure overhead — point it at a Dakera instance and it works.

The 14-tool default keeps your context window lean. The meta-tools let you expand on demand when you need advanced operations like bulk vector upsert, knowledge graph traversal, or memory federation.

dakera.ai for hosted instance
→ Self-host with dakera-deploy

Documentation

Full docs
MCP reference

Repo

What it is

dakera-py

Python SDK

dakera-js

TypeScript SDK

dakera-cli

CLI

dakera-deploy

Self-host Dakera


dakera.ai · Documentation · Request Early Access

Part of the Dakera AI open-core ecosystem. Built with Rust. Self-hosted. Zero dependencies.

Available Tools

14 tools
dakera_batch_forgetA

Bulk-delete memories matching filter criteria: tags, importance range, time window, or memory type. At least one filter is required to prevent accidental full-agent wipe. Deletion is permanent — use dakera_memory_importance to lower importance scores instead of deleting.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to match (all required)
agent_idYes
session_idNo
memory_typeNo
created_afterNoAfter Unix timestamp
created_beforeNoBefore Unix timestamp
max_importanceNoMax importance threshold
min_importanceNoMin importance threshold

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states that deletion is permanent, a critical behavioral consequence for a destructive operation. It also warns about the risk of a full-agent wipe if no filter is provided, which is transparent about the tool's potential impact. No annotations are present, so the description carries the full burden, and it meets that need.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using only two sentences to convey the purpose, safety requirement, and alternative action. It avoids redundancy and is well-structured, with the main action first followed by critical cautions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough context to understand the basic operation and safety constraints, but it does not explain the return value, error handling, or how multiple filters are combined (AND vs OR). Since there is no output schema, these gaps leave some ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description summarizes the filter types (tags, importance range, time window, or memory type) that map to most parameters, adding context beyond the schema. However, agent_id and session_id are not mentioned in the description, and the schema descriptions are uneven (memory_type lacks a description). Thus, parameter coverage is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: bulk-deleting memories that match specified filters. It distinguishes itself from singular deletion tools by using the explicit term 'Bulk-delete' and enumerating the filter dimensions (tags, importance range, time window, or memory type).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides important usage guidance, including the requirement that at least one filter must be provided to prevent accidental full wipe, and advises using an alternative for lowering importance instead of deletion. It does not explicitly compare with dakera_forget, but the safety and alternative guidance is useful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_batch_recallA

Filter-based memory listing by tags, importance range, time window, type, or session. Prefer over dakera_recall when semantic search is not needed. At least one filter required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to match (all required)
agent_idYes
session_idNo
memory_typeNo
created_afterNoAfter Unix timestamp
created_beforeNoBefore Unix timestamp
max_importanceNoMax importance (inclusive)
min_importanceNoMin importance (inclusive)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the burden. It implies a read-only listing operation without side effects. It does not mention any destructive actions, but also does not explicitly state read-only or discuss rate limits or auth, so slightly below perfect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, using three short sentences. It front-loads the core function and includes key usage constraints without any fluff. Each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides essential context such as the purpose, the alternative tool, and the filter requirement. However, it lacks details about the return format (no output schema) and does not describe all parameters explicitly, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 63% (5 of 8 parameters have descriptions). Tags, importance range, and time window are described, but agent_id, session_id, and memory_type lack descriptions. The description mentions filtering by type or session, but does not explicitly map these to the parameters, so agents must infer their meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it performs 'filter-based memory listing' with a specific verb and resource. Also differentiates from dakera_recall by explicitly noting the preference when semantic search is not needed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit condition for choosing this tool over dakera_recall ('when semantic search is not needed') and states the requirement that at least one filter must be provided. This gives clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_discover_toolsA

Search the Dakera tool catalog by keyword or tier (core/power/admin/meta) and return names and one-line summaries without loading full schemas. Call this first to find relevant tools, then use dakera_load_tools to fetch only the schemas you need — avoids loading the full catalog upfront.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNo
queryNoKeyword to search tool names/descriptions.

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool returns only names and summaries without loading full schemas, giving insight into its behavior and efficiency. However, it does not explicitly state that it has no side effects (e.g., read-only operation), which is left to inference. Since no annotations are provided, a bit more explicit safety disclosure would be ideal, but the current description is still reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, concise, and front-loads the primary purpose. It contains no filler words and each sentence adds value: the first states the function, the second provides usage guidance and efficiency rationale.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides sufficient context for an agent to decide when to use this tool: it is a discovery step that avoids loading full schemas. It also names the companion tool for schemas, making the workflow clear. The mention of output (names and summaries) covers the basic expectations even without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (tier and query) are mentioned in the description: 'by keyword or tier.' The description explains that tier is a filter with enum values (core, power, admin, meta, all) and query is a keyword for searching names/descriptions. This provides full semantic coverage without redundancy with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool searches the Dakera tool catalog by keyword or tier, which is a specific verb and resource. It also distinguishes this tool from others like dakera_load_tools by emphasizing it returns only names and summaries, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Call this first to find relevant tools, then use dakera_load_tools to fetch only the schemas you need.' This tells the agent exactly when to use this tool versus alternatives and highlights the efficiency benefit of avoiding full schema loads.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_extractA

Extract structured information (entities, topics, key phrases, summary) from arbitrary text using the configured provider hierarchy: per-request override → namespace default → server default → GLiNER local. Supported providers: gliner (zero-config local ONNX), openai, anthropic, openrouter, ollama, none.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to extract information from
namespaceNoNamespace whose default extractor config is used. If omitted, the server-level default is used.
entity_typesNoGLiNER entity type labels (e.g. ["person", "org", "location"]). Only used when provider is `gliner`.
extractor_overrideNoPer-request provider override — highest priority in the resolution hierarchy. Fields: provider, model, base_url, api_key.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. It explicitly states that api_key is 'Never persisted — used for this request only', and explains the resolution hierarchy (per-request override → namespace default → server default → GLiNER local). It also notes that entity_types are used only when provider is gliner. These details surface important behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence. It uses a colon to list the extracted information types and an arrow notation to concisely convey the resolution order. The list of supported providers is compact and informative. No redundant verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (nested override object, provider hierarchy, multiple providers), the description covers the essential operational details. It explains the provider resolution order, the role of namespace, and the persistence behavior of api_key. While it doesn't describe the output format or error scenarios, these are not explicitly required by any output schema or annotation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with each parameter described. The description adds meaningful context beyond the schema: it explains the provider override hierarchy, the namespace default behavior, and the conditional use of entity_types. The extractor_override nested object is also well-documented with its own description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Extract structured information (entities, topics, key phrases, summary) from arbitrary text'. The verb 'extract' and the specific resource (text) make the action unambiguous. It distinguishes itself from sibling tools by focusing on extraction rather than search, store, or recall operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides detailed guidance on when and how to use the tool, explaining the provider resolution hierarchy and listing supported providers. It clarifies that entity_types are only used with GLiNER and that api_key is request-scoped. While it doesn't explicitly contrast with alternatives, the provider hierarchy and parameter conditions give clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_forgetA

Permanently delete memories by ID or tag. Provide memory_ids for exact removal or tags to bulk-delete all memories sharing those tags. Deletion is immediate and irreversible — prefer dakera_memory_importance to suppress without deleting.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoDelete memories with these tags
agent_idYes
memory_idsNoSpecific memory IDs to delete

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that deletion is immediate and irreversible, and that using tags results in bulk deletion. With no annotations, this covers key behavioral aspects, though it does not mention potential side effects like cascading deletions or missing confirmation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the purpose, and well-structured. It covers purpose, usage, and an alternative in two sentences without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description does not need to explain return values. It covers the essential 'when' and 'how' but leaves gaps regarding agent_id semantics and the interaction between parameters, which could affect an agent's correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides descriptions for memory_ids and tags, but agent_id has no description in either the schema or the tool description. The description explains the usage of memory_ids and tags, but does not clarify the role of agent_id or whether the two parameters can be combined or are mutually exclusive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to permanently delete memories by ID or tag. It specifies the resource (memories) and the method (by ID or tag), and distinguishes it from sibling tools like dakera_batch_forget and dakera_memory_importance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'Provide memory_ids for exact removal or tags to bulk-delete all memories sharing those tags.' It also names an alternative (dakera_memory_importance) for a different use case (suppression instead of deletion), making the decision clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_knowledge_graphA

Build a knowledge graph from a seed memory using embedding similarity. Use to explore how a concept connects to stored knowledge. For BFS traversal of an existing linked graph use dakera_graph_traverse.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoGraph traversal depth (controls candidate count)
agent_idYes
memory_idYesSeed memory ID to build graph from
min_similarityNoMinimum similarity threshold 0.0-1.0

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to rely on, the description carries the full burden of disclosing behavioral traits. However, it only states the action ('build a knowledge graph') without clarifying whether this is a read-only operation, what side effects exist, or what the return structure looks like. The term 'build' could imply a mutation, but this is left ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with no redundant content. It front-loads the primary function, then adds the use case and the differentiation from the sibling tool. Every word contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, so the description should hint at what the tool returns. It does not mention the result format (e.g., nodes, edges, graph object) nor any error or edge-case behavior. Given the complexity of building a knowledge graph, the description is insufficient for an agent to fully anticipate the tool's output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 75% of parameters with descriptions, but the tool description adds no additional insight about any of them. The missing description for agent_id is not compensated for by the prose. The description does not clarify acceptable values, defaults, or interactions between parameters, leaving the semantics solely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function (build a knowledge graph using embedding similarity), its intended use case (explore concept connections), and explicitly differentiates it from a sibling tool (dakera_graph_traverse) for BFS traversal of existing graphs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit guidance on when to use this tool ('Use to explore how a concept connects to stored knowledge') and when to use an alternative ('For BFS traversal of an existing linked graph use dakera_graph_traverse'). No ambiguity remains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_load_toolsA

Fetch the full inputSchema for one or more named tools. Use after dakera_discover_tools. Returns schemas for found tools and a not_found list for unrecognized names.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolsYesTool names to load schemas for

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the output behavior in detail: it returns schemas for found tools and a not_found list for unrecognized names. This transparency about both success and failure cases exceeds typical descriptions and is fully transparent for a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences that directly state the function, usage timing, and output behavior. Every word serves a purpose, with no extraneous information or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool that fetches schemas, the description provides all necessary context: what it does, when to use it (after discover_tools), and what it returns (schemas plus not_found list). No additional information is needed for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'tools' is described as 'Tool names to load schemas for', which clearly explains its purpose and format. The schema description is comprehensive, and the tool description adds no ambiguity. Coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches the full inputSchema for one or more named tools, using specific verb 'Fetch' and resource 'tools'. It also distinguishes itself from siblings by specifying 'Use after dakera_discover_tools' and describing the return behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to use the tool ('Use after dakera_discover_tools'), providing clear timing guidance. It also implies it is the appropriate tool for loading schemas, while other tools like search or extract serve different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_recallA

Retrieve top-k memories semantically closest to a query. Prefer over dakera_batch_recall for query-based retrieval. Set include_associated=true to expand results via KG edges (1-3 hops).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSemantic query text
sinceNoOnly memories created at or after this ISO-8601 timestamp
top_kNoMax results to return
untilNoOnly memories created at or before this ISO-8601 timestamp
agent_idYes
min_importanceNoMin importance threshold
include_associatedNoInclude KG-linked memories in results

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the burden. 'Retrieve' implies a read-only operation, and the description adds detail about KG expansion behavior, but does not explicitly state side-effect-free or auth requirements. However, the read-only intent is clear from the verb.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, and every phrase provides useful information (top-k, semantic closeness, preference, include_associated). No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no output schema, the description provides the key usage context (preference over batch recall, KG expansion). However, the required agent_id parameter has no schema description and is not mentioned in prose, leaving a small gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to 'top_k' with 'top-k' and to 'include_associated' with the KG edge explanation. Since the schema already provides descriptions for most parameters, this adds context beyond the schema, though some parameters (e.g., agent_id) are not elaborated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (retrieve), the resource (memories), and the criterion (semantically closest to a query). It also distinguishes from the sibling dakera_batch_recall, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to prefer this over dakera_batch_recall for query-based retrieval, and advises setting include_associated to expand via KG edges. This gives clear when-to-use and alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_session_endA

Close an active session with an optional summary. Always call at run end (even on error) to avoid orphaned sessions; summary is retrievable via dakera_session_get.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryNoOptional session summary
session_idYesSession ID to end

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the consequence of not calling (orphaned sessions) and mentions that the summary is retrievable via another tool, adding behavioral context. However, it does not describe side effects like idempotency, error handling, or what happens if the session is already closed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose, followed by usage guidance and a cross-reference. No unnecessary words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers purpose, timing, and a related tool reference. It lacks a mention of return value or error scenarios, but these are not critical for such a straightforward operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented. The description adds only marginal value: it notes that the summary is optional and that it can be retrieved later via dakera_session_get. This does not significantly enhance the schema's documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Close') and the resource ('active session'), and mentions the optional summary. It is distinct from sibling tools like dakera_session_start, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to call the tool ('Always call at run end (even on error)') and the reason (to avoid orphaned sessions). It does not name alternatives or exclusions, but the directive is strong enough for an agent to know when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_session_startA

Open a new session, returning a session_id that groups stored memories under a shared context. Attach metadata such as task type or trigger source for later retrieval.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
metadataNoOptional session metadata

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies state creation (opening a session) and organizes memories, which is a side effect, but it does not detail permissions, authentication, or potential side effects on existing data. Since no annotations are provided, the description carries the full burden but only partially discloses behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences that directly convey the core purpose and the metadata usage. There is no redundant or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main behavior, return value, and the role of metadata, but it omits an explanation of agent_id and lacks details on error handling or session lifecycle. Given the tool's simplicity and lack of an output schema, the description is reasonably complete but has notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers two parameters, with metadata having a description in the schema and the prose. However, agent_id is required but has no description in the schema or the description text, leaving its purpose unexplained. With schema coverage at 50%, the description does not compensate for the missing agent_id semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: it opens a new session, returns a session_id, and groups stored memories under a shared context. It uses a specific verb ('open') and resource ('session'), distinguishing it from the other sibling tools like search or store.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context about attaching metadata for later retrieval, but does not explicitly state when to use this tool versus alternatives. It does not mention any specific conditions or exceptions, so usage guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dakera_storeA

Persist a new memory for an agent with importance weighting and optional tags. Use to save facts, decisions, or context for future retrieval. importance defaults to 0.5; set 0.8–1.0 for critical memories that must survive decay.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags for filtering
contentYesMemory content text
agent_idYes
expires_atNoExpiry Unix timestamp (seconds)
importanceNoImportance 0.0-1.0
session_idNoSession to associate with
memory_typeNoMemory type (episodic|semantic|procedural|working)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It mentions the importance default and decay behavior, and notes that tags are optional. It does not specify return values or error handling, but the core write semantics and importance decay are transparent enough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise and front-loaded with the primary action. It avoids unnecessary detail and keeps the most relevant usage guidance immediately visible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough context for an agent to decide when to use the tool, especially with the importance/decay explanation. It does not elaborate on every parameter, but the schema already covers those details, so the description fills the key contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (86%), and the description adds meaning beyond the schema by explaining the importance default (0.5) and the threshold for critical memories (0.8–1.0) that survive decay. It also clarifies that tags are optional, augmenting the parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with the verb 'persist' and the resource 'memory for an agent', and it distinguishes itself from sibling tools like dakera_search and dakera_forget by focusing on the write operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Use to save facts, decisions, or context for future retrieval', providing clear guidance on when to use. It does not explicitly state when not to use, but the sibling tool names make the contrast obvious, so the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv0.10.12
    • Addeddakera_batch_forget
    • Addeddakera_batch_recall
    • Addeddakera_discover_tools
    • Addeddakera_extract
    • Addeddakera_forget
    • Addeddakera_fulltext_search
    • Addeddakera_knowledge_graph
    • Addeddakera_load_tools
    • Addeddakera_recall
    • Addeddakera_search
    • Addeddakera_session_end
    • Addeddakera_session_start
    • Addeddakera_store
  2. 13 tool updatesv0.10.11
    • Removeddakera_batch_forget
    • Removeddakera_batch_recall
    • Removeddakera_discover_tools
    • Removeddakera_extract
    • Removeddakera_forget
    • Removeddakera_fulltext_search
    • Removeddakera_knowledge_graph
    • Removeddakera_load_tools
    • Removeddakera_recall
    • Removeddakera_search
    • Removeddakera_session_end
    • Removeddakera_session_start
    • Removeddakera_store
  3. 14 tool updatesv0.10.8
    • Addeddakera_batch_forget
    • Addeddakera_batch_recall
    • Addeddakera_discover_tools
    • Addeddakera_extract
    • Addeddakera_forget
    • Addeddakera_fulltext_search
    • Addeddakera_hybrid_search
    • Addeddakera_knowledge_graph
    • Addeddakera_load_tools
    • Addeddakera_recall
    • Addeddakera_search
    • Addeddakera_session_end
    • Addeddakera_session_start
    • Addeddakera_store

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation2/5

Multiple tools for semantic retrieval (dakera_search, dakera_recall) and search variants (fulltext, hybrid, batch_recall) have heavily overlapping purposes, making it hard to decide which to call. The distinction between search and recall is subtle and likely to cause misselection.

Naming Consistency2/5

All tools share the dakera_ prefix, but the verb/noun structure is inconsistent: some use bare verbs (search, store, recall, forget, extract), some compound verbs (batch_recall, session_start), and some noun phrases (knowledge_graph, fulltext_search). 'fulltext_search' also lacks an underscore convention.

Tool Count4/5

14 tools is within the typical 3–15 range and reasonable for a memory server covering storage, retrieval, sessions, extraction, and tool discovery, though slightly on the higher side.

Completeness4/5

The surface covers core memory operations (store, forget, multiple retrieval modes), sessions, knowledge graph construction, extraction, and tool metadata. It lacks an explicit update or get-by-id operation, but the provided features are largely sufficient for the domain.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A graph-based MCP server that provides AI coding agents with persistent memory to store patterns, track complex relationships, and retrieve knowledge across sessions. It leverages graph structures to handle temporal queries and relational paths that traditional vector stores often miss.
    244
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Open-source MCP memory server for AI agents — persistent, searchable, tiered memory across sessions. Works over stdio (Cursor, Claude Desktop) or HTTP+SSE. MIT licensed.
    7
    MIT