cognee-mcp
Servidor MCP de Cognee
Instalación manual
Un proyecto de servidor MCP
Clonar el repositorio de Cognee
Instalar dependencias
brew install uvcd cognee-mcp
uv sync --dev --all-extras --reinstallActivar el venv con
source .venv/bin/activateAgregue el nuevo servidor a su configuración de Claude:
El archivo debe estar ubicado aquí: ~/Library/Application\ Support/Claude/
cd ~/Library/Application\ Support/Claude/Debe crear claude_desktop_config.json en esta carpeta si no existe. Asegúrese de agregar sus rutas y la clave API de LLM al archivo a continuación. Use el editor de su elección, por ejemplo 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-"
}
}
}
}Reinicie su escritorio Claude.
Instalación mediante herrería
Para instalar Cognee para Claude Desktop automáticamente a través de Smithery :
npx -y @smithery/cli install cognee --client claudeDefina la herramienta cognify en server.py Reinicie su escritorio Claude.
Para utilizar el depurador, ejecute:
mcp dev src/server.pyInspector abierto con tiempo de espera transcurrido:
http://localhost:5173?timeout=120000Para aplicar nuevos cambios mientras desarrollas cognee necesitas hacer lo siguiente:
poetry locken la carpeta Cogneeuv sync --dev --all-extras --reinstallmcp dev src/server.py
Desarrollo
Para utilizar la compilación local de Cognee, ejecute en la raíz del repositorio de Cognee:
poetry build -o ./cognee-mcp/sourcesUna vez finalizado el proceso de compilación, cambie la dependencia de la biblioteca cognee dentro de cognee-mcp/pyproject.toml de
cognee[postgres,codegraph,gemini,huggingface]==0.1.38a
cognee[postgres,codegraph,gemini,huggingface]Después de eso, agregue el siguiente fragmento al mismo archivo ( cognee-mcp/pyproject.toml ).
[tool.uv.sources]
cognee = { path = "sources/cognee-0.1.38-py3-none-any.whl" }Available Tools
5 toolscall_toolA
Call a tool by name with the given arguments.
Use this to execute tools discovered via search_tools.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the tool to call | |
| arguments | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_id | No | UUID of a single data item to delete. Must be paired with `dataset` or `dataset_id` so the owning dataset is unambiguous. | |
| dataset | No | Dataset name to delete entirely. | |
| dataset_id | No | UUID of the dataset to delete entirely, or to scope `data_id`. | |
| everything | No | If true, delete ALL data across all datasets. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that records are removed from three types of databases, which is useful. However, it does not mention irreversibility, permission requirements, or potential cascading effects. This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct, leading with the primary action, then the targeting options, and finally the storage impact. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation, it covers the key aspects: what can be deleted, how scope is specified, and which storage layers are affected. It does not explain error scenarios or side effects beyond deletion, but that is not essential given the presence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents each parameter at 100% coverage. The description adds overarching semantics: it clarifies that data_id must be paired with a dataset identifier, and distinguishes three targeting modes. This guidance helps the agent correctly combine parameters beyond what individual descriptions provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Delete data from memory', a precise verb+resource pair, and enumerates the three deletion scopes (single item, dataset by name/id, everything). It also specifies that deletion spans relational, graph, and vector databases, clearly distinguishing it from siblings like remember and recall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for deletion but does not explicitly name alternatives or conditions. It could have said 'Use this instead of remember/recall for removing data' to guide the agent, but the intent is clear from context and sibling names.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query to search for. | |
| top_k | No | Maximum results to return (default: 15). | |
| datasets | No | Comma-separated dataset names to search within. | |
| session_id | No | Session ID for session-first search. | |
| search_type | No | Override auto-routing with one SearchType name. Completion types (answer written by an LLM): HYBRID_COMPLETION (the default when routing is off), GRAPH_COMPLETION, GRAPH_COMPLETION_COT, GRAPH_COMPLETION_CONTEXT_EXTENSION, GRAPH_COMPLETION_DECOMPOSITION, GRAPH_SUMMARY_COMPLETION, RAG_COMPLETION, TRIPLET_COMPLETION, TEMPORAL, AGENTIC_COMPLETION. Retrieval-only types (no LLM): CHUNKS, CHUNKS_LEXICAL, SUMMARIES, SKILLS, CODE. Other: CYPHER, NATURAL_LANGUAGE, CODING_RULES, GRAPH_REPORT, FEELING_LUCKY. An unknown name is rejected with a validation error. | |
| system_prompt | No | Override the synthesis prompt for completion searches. When omitted, falls back to COGNEE_MCP_RECALL_SYSTEM_PROMPT / _FILE if configured on the server. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the behavioral disclosure burden and does it reasonably well by explaining session-first fallback and automatic strategy selection. It does not describe result formatting or failure modes, but those are partly covered by the output schema and the search_type validation note in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and each sentence adds behavior detail without repetition or filler. The paragraph breaks make the routing rules scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-style search tool with a rich input schema and an output schema, the description plus schema covers invocation, routing, fallback, and override behavior. Nothing essential is missing for an agent to select and call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented; the description adds value by explaining the conditional interaction between session_id, datasets, and search_type beyond the schema's field-level text. It clarifies that search_type is an override of routing and that session behavior changes when session_id is supplied alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 identifies the key behaviors ('auto-routing and session awareness'), so an agent can tell it is a retrieval tool. It does not explicitly distinguish recall from the sibling search_tools, keeping it one step below a fully differentiated purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete routing conditions: when session_id is present without datasets or search_type, search the session cache first, then fall through to the knowledge graph; and auto-routing applies when search_type is omitted. It gives clear context for invoking the tool correctly, though it does not mention when to prefer it over sibling tools such as search_tools.
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, then the self-improvement loop (improve) unless self_improvement=False.
With session_id (session memory): Stores the data in the session cache. Direct mode may also bridge it to the graph in the background; API mode uses typed cache entries and does not bridge to the graph. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | The text content to store. Mutually exclusive with filename/content_base64. | |
| filename | No | Original filename for a file upload. Used to derive the stored document's name. Requires content_base64. | |
| background | No | Queue 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_id | No | Session ID. Stores in cache; direct mode may also bridge to the graph unless self_improvement is False. | |
| dataset_name | No | Target 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. | |
| ontology_key | No | One or more uploaded ontology keys for extraction (permanent mode only). API mode uses ontologies uploaded by the authenticated API user. Local mode uses the default user's ontology store. Omit to keep the configured server ontology. | |
| custom_prompt | No | Custom prompt for entity extraction (permanent mode only). | |
| content_base64 | No | Base64-encoded file content to ingest. Requires filename. | |
| self_improvement | No | False skips automatic improvement after permanent ingestion; add and cognify still run. In direct session mode, False disables the background session-to-graph bridge. API session entries are cache-only regardless of this flag. Default True. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses significant behavior beyond any schema: it triggers an add+cognify pipeline plus an optional improve loop, warns that API session entries are cache-only and never bridge to the graph, and notes that background-task errors surface via cognify_status rather than the return value. The only minor flaw is referencing 'Direct mode' without defining it, but overall this is highly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into a short preamble and two mode paragraphs, front-loading the core purpose before details. Each sentence adds information (pipeline steps, background behavior, file limits), so it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's modes, parameter relationships, background behavior, and file-size cap, and an output schema exists so return values don't need to be spelled out. However, the terms 'Direct mode', 'Local mode', and 'API mode' are used without a single defining explanation, which could leave an agent unsure which mode applies in its context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all nine parameters, and the description adds relational context – data and filename/content_base64 are mutually exclusive, background only applies without session_id, and self_improvement controls the bridge in direct session mode. This goes beyond the schema's per-parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Store data in memory.') and then details two storage modes (permanent graph memory via add+cognify pipeline vs session cache), which clearly establishes the tool's function. It does not explicitly contrast with sibling tools like recall or forget, so it just misses the sibling-differentiation bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: use permanent mode when content should be stored as graph memory (omit session_id), and session mode when a session_id is provided. It also states constraints like mutual exclusivity of data vs filename/content_base64 and file uploads being permanent-only. It does not name sibling tools as alternatives, but the guidance is unambiguous.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query to search for tools |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
1 tool update
v1.6.1- Changed
remember2 fields changed- changed
Input schema / properties / self_improvement / descriptionPrevious value: -"Run the improve loop (triplet enrichment and, with sessions, the\nsession bridge) after cognify. Permanent mode only; default True.\nPass False for a plain add + cognify ingestion."New value: +"False skips automatic improvement after permanent ingestion; add and\ncognify still run. In direct session mode, False disables the background\nsession-to-graph bridge. API session entries are cache-only regardless\nof this flag. Default True." - changed
Input schema / properties / session_id / descriptionPrevious value: -"Session ID. When set, stores in session cache only."New value: +"Session ID. Stores in cache; direct mode may also bridge to the graph\nunless self_improvement is False."
3 tool updates
v1.6.0- Changed
forget6 fields changed- added
Input schema / properties / data_id / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / data_id / typeRemoved value: -"string" - added
Input schema / properties / dataset / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / dataset / typeRemoved value: -"string" - added
Input schema / properties / dataset_id / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / dataset_id / typeRemoved value: -"string"
- Changed
recall10 fields changed- added
Input schema / properties / datasets / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / datasets / typeRemoved value: -"string" - added
Input schema / properties / search_type / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / search_type / descriptionPrevious value: -"Override auto-routing. Options: GRAPH_COMPLETION,\nGRAPH_COMPLETION_COT, RAG_COMPLETION, CHUNKS, SUMMARIES,\nTEMPORAL, FEELING_LUCKY, etc."New value: +"Override auto-routing with one SearchType name. Completion types\n(answer written by an LLM): HYBRID_COMPLETION (the default when\nrouting is off), GRAPH_COMPLETION, GRAPH_COMPLETION_COT,\nGRAPH_COMPLETION_CONTEXT_EXTENSION, GRAPH_COMPLETION_DECOMPOSITION,\nGRAPH_SUMMARY_COMPLETION, RAG_COMPLETION, TRIPLET_COMPLETION,\nTEMPORAL, AGENTIC_COMPLETION. Retrieval-only types (no LLM):\nCHUNKS, CHUNKS_LEXICAL, SUMMARIES, SKILLS, CODE. Other: CYPHER,\nNATURAL_LANGUAGE, CODING_RULES, GRAPH_REPORT, FEELING_LUCKY.\nAn unknown name is rejected with a validation error." - removed
Input schema / properties / search_type / typeRemoved value: -"string" - added
Input schema / properties / session_id / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / session_id / typeRemoved value: -"string" - added
Input schema / properties / system_prompt / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / system_prompt / typeRemoved value: -"string" - changed
Input schema / properties / top_k / descriptionPrevious value: -"Maximum results to return (default: 10)."New value: +"Maximum results to return (default: 15)."
- Changed
remember14 fields changed- added
Input schema / properties / content_base64 / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / content_base64 / typeRemoved value: -"string" - added
Input schema / properties / custom_prompt / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / custom_prompt / typeRemoved value: -"string" - added
Input schema / properties / data / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / data / typeRemoved value: -"string" - added
Input schema / properties / dataset_name / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / dataset_name / typeRemoved value: -"string" - added
Input schema / properties / filename / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / filename / typeRemoved value: -"string" - added
Input schema / properties / ontology_keyAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "One or more uploaded ontology keys for extraction (permanent mode only).\nAPI mode uses ontologies uploaded by the authenticated API user. Local\nmode uses the default user's ontology store. Omit to keep the configured\nserver ontology." +} - added
Input schema / properties / self_improvementAdded value: +{ + "default": true, + "description": "Run the improve loop (triplet enrichment and, with sessions, the\nsession bridge) after cognify. Permanent mode only; default True.\nPass False for a plain add + cognify ingestion.", + "type": "boolean" +} - added
Input schema / properties / session_id / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / session_id / typeRemoved value: -"string"
5 tool updates
v1.5.1- Changed
forget2 fields changed- added
Input schema / properties / data_idAdded 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" +} - added
Input schema / properties / dataset_idAdded value: +{ + "default": null, + "description": "UUID of the dataset to delete entirely, or to scope `data_id`.", + "type": "string" +}
- Removed
open_cognee_workspace - Changed
remember1 field changed- added
Input schema / properties / backgroundAdded 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" +}
- Removed
upload_file_ui - Removed
visualize_graph_ui
13 tool updates
v1.5.0- Added
call_tool - Removed
cognify_file - Removed
create_dataset_json - Changed
forget7 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / dataset / descriptionAdded value: +"Dataset name to delete entirely." - removed
Input schema / properties / dataset / titleRemoved value: -"Dataset" - added
Input schema / properties / everything / descriptionAdded value: +"If true, delete ALL data across all datasets." - removed
Input schema / properties / everything / titleRemoved value: -"Everything" - removed
Input schema / titleRemoved value: -"forgetArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "items": {}, + "type": "array" + } + }, + "required": [ + "result" + ], + "type": "object", + "x-fastmcp-wrap-result": true +}
- Removed
get_client_info_json - Removed
list_dataset_data_json - Removed
list_datasets_json - Changed
open_cognee_workspace2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / titleRemoved value: -"open_cognee_workspaceArguments"
- Changed
recall15 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / datasets / descriptionAdded value: +"Comma-separated dataset names to search within." - removed
Input schema / properties / datasets / titleRemoved value: -"Datasets" - added
Input schema / properties / query / descriptionAdded value: +"Natural language query to search for." - removed
Input schema / properties / query / titleRemoved value: -"Query" - added
Input schema / properties / search_type / descriptionAdded value: +"Override auto-routing. Options: GRAPH_COMPLETION,\nGRAPH_COMPLETION_COT, RAG_COMPLETION, CHUNKS, SUMMARIES,\nTEMPORAL, FEELING_LUCKY, etc." - removed
Input schema / properties / search_type / titleRemoved value: -"Search Type" - added
Input schema / properties / session_id / descriptionAdded value: +"Session ID for session-first search." - removed
Input schema / properties / session_id / titleRemoved value: -"Session Id" - added
Input schema / properties / system_prompt / descriptionAdded value: +"Override the synthesis prompt for completion searches. When omitted,\nfalls back to COGNEE_MCP_RECALL_SYSTEM_PROMPT / _FILE if configured\non the server." - removed
Input schema / properties / system_prompt / titleRemoved value: -"System Prompt" - added
Input schema / properties / top_k / descriptionAdded value: +"Maximum results to return (default: 10)." - removed
Input schema / properties / top_k / titleRemoved value: -"Top K" - removed
Input schema / titleRemoved value: -"recallArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "items": {}, + "type": "array" + } + }, + "required": [ + "result" + ], + "type": "object", + "x-fastmcp-wrap-result": true +}
- Changed
remember15 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / content_base64Added value: +{ + "default": null, + "description": "Base64-encoded file content to ingest. Requires filename.", + "type": "string" +} - added
Input schema / properties / custom_prompt / descriptionAdded value: +"Custom prompt for entity extraction (permanent mode only)." - removed
Input schema / properties / custom_prompt / titleRemoved value: -"Custom Prompt" - added
Input schema / properties / data / defaultAdded value: +null - added
Input schema / properties / data / descriptionAdded value: +"The text content to store. Mutually exclusive with\nfilename/content_base64." - removed
Input schema / properties / data / titleRemoved value: -"Data" - added
Input schema / properties / dataset_name / descriptionAdded 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." - removed
Input schema / properties / dataset_name / titleRemoved value: -"Dataset Name" - added
Input schema / properties / filenameAdded value: +{ + "default": null, + "description": "Original filename for a file upload. Used to derive the stored\ndocument's name. Requires content_base64.", + "type": "string" +} - added
Input schema / properties / session_id / descriptionAdded value: +"Session ID. When set, stores in session cache only." - removed
Input schema / properties / session_id / titleRemoved value: -"Session Id" - removed
Input schema / requiredRemoved value: -[ - "data" -] - removed
Input schema / titleRemoved value: -"rememberArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "items": {}, + "type": "array" + } + }, + "required": [ + "result" + ], + "type": "object", + "x-fastmcp-wrap-result": true +}
- Added
search_tools - Changed
upload_file_ui2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / titleRemoved value: -"upload_file_uiArguments"
- Changed
visualize_graph_ui3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / dataset_name / titleRemoved value: -"Dataset Name" - removed
Input schema / titleRemoved value: -"visualize_graph_uiArguments"
4 tool updates
v1.4.1- Added
create_dataset_json - Added
get_client_info_json - Added
recall - Added
remember
4 tool updates
v1.4.0- Removed
create_dataset_json - Removed
get_client_info_json - Removed
recall - Removed
remember
1 tool update
v1.0.2- Changed
recall1 field changed- changed
Input schema / properties / top_k / defaultPrevious value: -10New value: +15
11 tool updates
v1.0.1- First observed
cognify_file - First observed
create_dataset_json - First observed
forget - First observed
get_client_info_json - First observed
list_dataset_data_json - First observed
list_datasets_json - First observed
open_cognee_workspace - First observed
recall - First observed
remember - First observed
upload_file_ui - First observed
visualize_graph_ui
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: remember stores, forget deletes, recall searches, call_tool executes, and search_tools finds tools. No overlap or ambiguity exists between them.
Tool names mostly follow a verb pattern, but three are single verbs (remember, forget, recall) while two are verb_noun compounds (call_tool, search_tools). This is a minor inconsistency but still predictable and readable.
Five tools is well within the ideal 3-15 range, and each tool earns its place for a memory management server, covering core operations without excess.
The tool surface covers the full memory lifecycle: ingestion (remember), retrieval (recall), and deletion (forget), plus tool discovery and execution for extensibility. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Shared memory for AI agents, as a graph in your own Postgres. Writes never call an LLM.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to store, retrieve, and connect information in a Neo4j graph database as persistent memory, with semantic relationships, natural language search, and temporal tracking across conversations.9106 npm69MIT
- AlicenseNot gradedqualityAmaintenancePersistent 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.31 npm35MIT
- AlicenseNot gradedqualityDmaintenanceProvides persistent knowledge graph memory for AI agents, enabling them to store, recall, and query facts about people, projects, and relationships across sessions.MIT
- FlicenseNot gradedqualityFmaintenanceEnables LLMs to store, search, and manage memories with hybrid semantic and keyword search using ChromaDB and Neo4j for persistent memory and knowledge graph capabilities.-