Skip to main content
Glama

cognee MCP 服务器

手动安装

MCP 服务器项目

  1. 克隆cognee仓库

  2. 安装依赖项

brew install uv
cd cognee-mcp
uv sync --dev --all-extras --reinstall
  1. 使用以下命令激活 venv

source .venv/bin/activate
  1. 将新服务器添加到您的 Claude 配置中:

该文件应位于此处:~/Library/Application\ Support/Claude/

cd ~/Library/Application\ Support/Claude/

如果不存在,则需要在此文件夹中创建 claude_desktop_config.json 确保将您的路径和 LLM API 密钥添加到下面的文件中使用您选择的编辑器,例如 Nano:

nano claude_desktop_config.json
{
	"mcpServers": {
		"cognee": {
			"command": "/Users/{user}/cognee/.venv/bin/uv",
			"args": [
        "--directory",
        "/Users/{user}/cognee/cognee-mcp",
        "run",
        "cognee"
      ],
      "env": {
        "ENV": "local",
        "TOKENIZERS_PARALLELISM": "false",
        "LLM_API_KEY": "sk-"
      }
		}
	}
}

重新启动您的 Claude 桌面。

通过 Smithery 安装

要通过Smithery自动安装 Cognee for Claude Desktop:

npx -y @smithery/cli install cognee --client claude

在 server.py 中定义 cognify 工具重新启动您的 Claude 桌面。

要使用调试器,请运行:

mcp dev src/server.py

打开检查器并超时:

http://localhost:5173?timeout=120000

要在开发认知时应用新的变化,您需要执行以下操作:

  1. cognee 文件夹中的poetry lock

  2. uv sync --dev --all-extras --reinstall

  3. mcp dev src/server.py

发展

为了使用本地 cognee 构建,请在 cognee repo 的根目录中运行:

poetry build -o ./cognee-mcp/sources

构建过程完成后,将cognee-mcp/pyproject.toml中的 cognee 库依赖项从

cognee[postgres,codegraph,gemini,huggingface]==0.1.38

cognee[postgres,codegraph,gemini,huggingface]

之后将以下代码片段添加到同一个文件( cognee-mcp/pyproject.toml )。

[tool.uv.sources]
cognee = { path = "sources/cognee-0.1.38-py3-none-any.whl" }

Available Tools

5 tools
call_toolA

Call a tool by name with the given arguments.

Use this to execute tools discovered via search_tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the tool to call
argumentsNo

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not mention potential side effects, required permissions, or the fact that this tool may execute arbitrary actions. This lack of transparency is risky for an agent.

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 concise sentences with no redundant information. The description is efficient and to the point.

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 explains the basic purpose and links to search_tools, but it lacks details on error handling, return values, or behavioral constraints. Given the tool's generic nature, this is acceptable but not comprehensive.

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?

Only the 'name' parameter has a description in the schema; 'arguments' is not described. The description adds minimal value by implying arguments are passed, but does not clarify structure or constraints, leaving significant ambiguity.

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 (call a tool) and the target (by name with arguments), and it is distinct from the sibling tools which perform specific operations like remember or recall.

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 to use this for executing tools discovered via search_tools, giving a clear use case. It does not elaborate on when not to use it, but the guidance is sufficient for typical scenarios.

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

forgetA

Delete data from memory.

Can target a single data item, a specific dataset (by name or id), or everything the user owns. Removes data from the relational DB, graph DB, and vector DB.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_idNoUUID of a single data item to delete. Must be paired with `dataset` or `dataset_id` so the owning dataset is unambiguous.
datasetNoDataset name to delete entirely.
dataset_idNoUUID of the dataset to delete entirely, or to scope `data_id`.
everythingNoIf true, delete ALL data across all datasets.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/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 disclosure burden. It does disclose the destructive scope and that data is removed from relational, graph, and vector databases, which is useful context beyond the schema. However, it omits important behavioral traits such as whether deletion is permanent/recoverable, whether permissions are required, and what happens if no targeting argument is supplied.

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 short, front-loaded sentences plus a concise scope bullet. Every phrase adds value, with no repetition of schema fields or filler content.

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 tool has four optional parameters and no annotations, so a robust description should clarify edge cases like no-argument invocation, argument conflicts, and irreversible consequences. The existence of an output schema reduces the need to describe return values, but significant semantic guidance is still missing.

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 the baseline is 3. The description paraphrases the targeting options (single item, dataset by name or id, everything) but adds no new parameter-specific semantics; for example, it does not clarify precedence or mutual exclusivity beyond what the schema already states.

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 opening sentence 'Delete data from memory' uses a specific verb and resource, and the scope bullet (single item, dataset, or everything) clearly distinguishes it from siblings like remember, recall, and search_tools. It also states the underlying stores affected, leaving no doubt about the tool's function.

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 clearly implies this is the deletion counterpart to remember and is appropriate whenever stored data must be removed. However, it does not explicitly state when not to use it, mention alternatives for non-destructive operations, or give guidance about argument exclusivity and fallback behavior.

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

recallA

Search memory with auto-routing and session awareness.

When session_id is provided without datasets or search_type, searches session cache first by keyword matching. Falls through to the permanent knowledge graph if no session results match.

Auto-routing picks the best search strategy when search_type is not specified.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural language query to search for.
top_kNoMaximum results to return (default: 10).
datasetsNoComma-separated dataset names to search within.
session_idNoSession ID for session-first search.
search_typeNoOverride auto-routing. Options: GRAPH_COMPLETION, GRAPH_COMPLETION_COT, RAG_COMPLETION, CHUNKS, SUMMARIES, TEMPORAL, FEELING_LUCKY, etc.
system_promptNoOverride the synthesis prompt for completion searches. When omitted, falls back to COGNEE_MCP_RECALL_SYSTEM_PROMPT / _FILE if configured on the server.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations present, the description carries the disclosure burden and it does reveal non-obvious behavior: session-first keyword matching, fallback to the permanent knowledge graph, and automatic search-strategy selection. It does not discuss side effects, permissions, or rate limits, but for a search action the main routing behavior is 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 tight and front-loaded, with the main purpose in the first sentence and exactly two supporting details about routing/fallback. No filler or repetition.

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 presence of an output schema and thorough parameter documentation, the description covers the non-obvious routing behavior needed to understand the tool. It lacks explicit guidance about edge cases or alternatives, but the combination of description plus schema is adequate for confident invocation.

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?

Input schema coverage is 100%, so the schema already documents all six parameters; the tool description adds useful conditional context around session_id, datasets, and search_type but does not explain query, top_k, dataset syntax, or system_prompt beyond the schema. This meets the baseline for high schema coverage.

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 opens with a specific verb and resource ('Search memory') and adds distinguishing behavioral qualifiers ('auto-routing and session awareness'), which separates it from the write/remove siblings (remember, forget). Subsequent sentences clarify the scope with session-cache and knowledge-graph behavior.

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 clear invocation context: when session_id is supplied without datasets/search_type it searches the session cache first and falls through to the knowledge graph, and auto-routing applies when search_type is omitted. It does not explicitly name alternative tools or exclusion scenarios, but the parameter-condition guidance is sufficient for most recall usage.

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

rememberA

Store data in memory.

Two modes depending on whether session_id is provided:

Without session_id (permanent memory): Runs the full add + cognify pipeline to ingest data and build the knowledge graph.

With session_id (session memory): Stores the data in the session cache only. Fast, no entity extraction. Omit session_id when the content should be stored as permanent graph memory.

Pass either data (text) or filename + content_base64 (a file upload, up to 10 MB), not both. File uploads are permanent-memory only and don't support session_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoThe text content to store. Mutually exclusive with filename/content_base64.
filenameNoOriginal filename for a file upload. Used to derive the stored document's name. Requires content_base64.
backgroundNoQueue permanent ingestion as a background task and return immediately instead of waiting for the pipeline. Use when the caller has a request deadline shorter than ingestion takes. Ignored with session_id, which is already fast. Errors surface via cognify_status, not the return value.
session_idNoSession ID. When set, stores in session cache only.
dataset_nameNoTarget dataset name. Defaults to the current MCP client's agent-scoped dataset (e.g. "cursor_vscode_memory"), or "main_dataset" if no client identity is detected.
custom_promptNoCustom prompt for entity extraction (permanent mode only).
content_base64NoBase64-encoded file content to ingest. Requires filename.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden of disclosing behavior. It explains the pipeline variants, performance characteristics, error handling (errors via cognify_status), and constraints on file uploads. This is thorough for a memory storage tool.

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

Conciseness4/5

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

Well-structured with clear sections for modes and input constraints, but slightly verbose. It could be tightened while retaining key information.

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 tool's complexity (two modes, multiple parameters, file uploads) and the existence of an output schema, the description covers the essential nuances thoroughly. Minor omissions like return format are handled by the output schema.

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 coverage is 100%, so the schema already documents parameters. The description adds value by explaining mode interplay (e.g., background ignored with session_id) and mutual exclusivity, but many details are already in schema descriptions.

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 stores data in memory and distinguishes two modes (permanent vs session memory) based on session_id. It explicitly contrasts with sibling tools like recall and forget.

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 explicit guidance on when to use each mode, when to omit session_id, and constraints on data vs file uploads (mutually exclusive). It clarifies that file uploads are permanent-only and that background mode is for avoiding deadline issues.

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

search_toolsA

Search for tools using natural language.

Returns matching tool definitions ranked by relevance, in the same format as list_tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural language query to search for tools

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It states that it returns matching tool definitions ranked by relevance, which is a behavioral trait. It also mentions the format is same as list_tools, which is useful. However, it doesn't disclose any side effects, rate limits, or other behavioral details. Given the tool is a search operation, this is adequate but not rich.

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, two sentences, and front-loaded with the purpose. Every sentence adds value: the first states what it does, the second clarifies the return format. No waste.

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 tool is simple with one parameter and an output schema. The description explains the return format (same as list_tools) and ranking by relevance. Given the simplicity and the presence of an output schema, the description is complete enough. It could mention that it's a read-only operation, but that's not critical.

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 the schema already documents the single parameter 'query' as a natural language query. The description adds no additional meaning beyond that. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/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: searching for tools using natural language. It specifies the action (search) and the resource (tools), and distinguishes it from siblings like list_tools by mentioning the return format. However, it doesn't explicitly differentiate from other sibling tools like call_tool, but the purpose is clear.

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 implies usage: when you need to find tools by natural language query. It mentions the return format is same as list_tools, which gives some context. However, it doesn't explicitly state when to use this vs alternatives, nor does it provide exclusions or alternative tool references. The guidance is minimal but not misleading.

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. Dates show when Glama detected each change.

  1. 5 tool updatesv1.5.1
    • Changedforget2 fields changed
      • addedInput schema / properties / data_id
        Added value: +{
        +  "default": null,
        +  "description": "UUID of a single data item to delete. Must be paired with `dataset`\nor `dataset_id` so the owning dataset is unambiguous.",
        +  "type": "string"
        +}
      • addedInput schema / properties / dataset_id
        Added value: +{
        +  "default": null,
        +  "description": "UUID of the dataset to delete entirely, or to scope `data_id`.",
        +  "type": "string"
        +}
    • Removedopen_cognee_workspace
    • Changedremember1 field changed
      • addedInput schema / properties / background
        Added value: +{
        +  "default": false,
        +  "description": "Queue permanent ingestion as a background task and return immediately\ninstead of waiting for the pipeline. Use when the caller has a request\ndeadline shorter than ingestion takes. Ignored with session_id, which\nis already fast. Errors surface via cognify_status, not the return\nvalue.",
        +  "type": "boolean"
        +}
    • Removedupload_file_ui
    • Removedvisualize_graph_ui
  2. 13 tool updatesv1.5.0
    • Addedcall_tool
    • Removedcognify_file
    • Removedcreate_dataset_json
    • Changedforget7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / dataset / description
        Added value: +"Dataset name to delete entirely."
      • removedInput schema / properties / dataset / title
        Removed value: -"Dataset"
      • addedInput schema / properties / everything / description
        Added value: +"If true, delete ALL data across all datasets."
      • removedInput schema / properties / everything / title
        Removed value: -"Everything"
      • removedInput schema / title
        Removed value: -"forgetArguments"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {},
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
    • Removedget_client_info_json
    • Removedlist_dataset_data_json
    • Removedlist_datasets_json
    • Changedopen_cognee_workspace2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"open_cognee_workspaceArguments"
    • Changedrecall15 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / datasets / description
        Added value: +"Comma-separated dataset names to search within."
      • removedInput schema / properties / datasets / title
        Removed value: -"Datasets"
      • addedInput schema / properties / query / description
        Added value: +"Natural language query to search for."
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • addedInput schema / properties / search_type / description
        Added value: +"Override auto-routing. Options: GRAPH_COMPLETION,\nGRAPH_COMPLETION_COT, RAG_COMPLETION, CHUNKS, SUMMARIES,\nTEMPORAL, FEELING_LUCKY, etc."
      • removedInput schema / properties / search_type / title
        Removed value: -"Search Type"
      • addedInput schema / properties / session_id / description
        Added value: +"Session ID for session-first search."
      • removedInput schema / properties / session_id / title
        Removed value: -"Session Id"
      • addedInput schema / properties / system_prompt / description
        Added value: +"Override the synthesis prompt for completion searches. When omitted,\nfalls back to COGNEE_MCP_RECALL_SYSTEM_PROMPT / _FILE if configured\non the server."
      • removedInput schema / properties / system_prompt / title
        Removed value: -"System Prompt"
      • addedInput schema / properties / top_k / description
        Added value: +"Maximum results to return (default: 10)."
      • removedInput schema / properties / top_k / title
        Removed value: -"Top K"
      • removedInput schema / title
        Removed value: -"recallArguments"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {},
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
    • Changedremember15 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / content_base64
        Added value: +{
        +  "default": null,
        +  "description": "Base64-encoded file content to ingest. Requires filename.",
        +  "type": "string"
        +}
      • addedInput schema / properties / custom_prompt / description
        Added value: +"Custom prompt for entity extraction (permanent mode only)."
      • removedInput schema / properties / custom_prompt / title
        Removed value: -"Custom Prompt"
      • addedInput schema / properties / data / default
        Added value: +null
      • addedInput schema / properties / data / description
        Added value: +"The text content to store. Mutually exclusive with\nfilename/content_base64."
      • removedInput schema / properties / data / title
        Removed value: -"Data"
      • addedInput schema / properties / dataset_name / description
        Added value: +"Target dataset name. Defaults to the current MCP client's\nagent-scoped dataset (e.g. \"cursor_vscode_memory\"), or\n\"main_dataset\" if no client identity is detected."
      • removedInput schema / properties / dataset_name / title
        Removed value: -"Dataset Name"
      • addedInput schema / properties / filename
        Added value: +{
        +  "default": null,
        +  "description": "Original filename for a file upload. Used to derive the stored\ndocument's name. Requires content_base64.",
        +  "type": "string"
        +}
      • addedInput schema / properties / session_id / description
        Added value: +"Session ID. When set, stores in session cache only."
      • removedInput schema / properties / session_id / title
        Removed value: -"Session Id"
      • removedInput schema / required
        Removed value: -[
        -  "data"
        -]
      • removedInput schema / title
        Removed value: -"rememberArguments"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {},
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
    • Addedsearch_tools
    • Changedupload_file_ui2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"upload_file_uiArguments"
    • Changedvisualize_graph_ui3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / dataset_name / title
        Removed value: -"Dataset Name"
      • removedInput schema / title
        Removed value: -"visualize_graph_uiArguments"
  3. 4 tool updatesv1.4.1
    • Addedcreate_dataset_json
    • Addedget_client_info_json
    • Addedrecall
    • Addedremember
  4. 4 tool updatesv1.4.0
    • Removedcreate_dataset_json
    • Removedget_client_info_json
    • Removedrecall
    • Removedremember
  5. 1 tool updatev1.0.2
    • Changedrecall1 field changed
      • changedInput schema / properties / top_k / default
        Previous value: -10New value: +15
  6. 11 tool updatesv1.0.1
    • First observedcognify_file
    • First observedcreate_dataset_json
    • First observedforget
    • First observedget_client_info_json
    • First observedlist_dataset_data_json
    • First observedlist_datasets_json
    • First observedopen_cognee_workspace
    • First observedrecall
    • First observedremember
    • First observedupload_file_ui
    • First observedvisualize_graph_ui

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a distinct role: remember stores data, recall retrieves it, forget deletes it, and call_tool/search_tools handle tool execution and discovery. No two tools overlap in purpose, and the descriptions clarify boundaries (e.g., remember vs. recall).

Naming Consistency5/5

All tool names are single imperative verbs (call, remember, recall, forget, search), following a consistent pattern of action words. No naming style clashes or vague synonyms are present.

Tool Count5/5

5 tools is well-scoped for a memory management server, covering the essential operations (CRUD plus meta utilities) without redundancy. Each tool earns its place.

Completeness5/5

The toolset covers the full lifecycle of memory: store (remember), retrieve (recall), and delete (forget), including support for permanent and session contexts. The inclusion of call_tool and search_tools addresses tool discovery and execution, making the surface complete for its purpose.

Maintenance

ActivityActive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Persistent knowledge memory layer for AI agents. Hybrid semantic + full-text search with pgvector, code dependency graph with blast-radius impact analysis, and incremental indexing for 7 languages. In-process ONNX embeddings, no external API required.
    46
    35
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides persistent knowledge graph memory for AI agents, enabling them to store, recall, and query facts about people, projects, and relationships across sessions.
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables LLMs to store, search, and manage memories with hybrid semantic and keyword search using ChromaDB and Neo4j for persistent memory and knowledge graph capabilities.
    -

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/topoteretes/cognee'

If you have feedback or need assistance with the MCP directory API, please join our Discord server