remember, recall, and forget — plus cognify_status for tracking background ingestion. Every registered tool is callable by name, but only some of them appear in the server’s tools/list response by default — see Tool modes.
Unless noted otherwise, parameter names and defaults below reflect the current MCP server implementation.
Some MCP parameters use compact transport-friendly encodings:
datasetsis a comma-separated string, not a JSON array.top_kmust be between1and100.
Available Tools
Memory Tools
Memory Tools
The core memory API. These tools map to Cognee’s main operations and appear in
tools/list in every tool mode.`remember`
`remember`
Store content as permanent graph memory or session memory in one call. Accepts either text or a base64 file upload. See Remember.
Provide either
data or content_base64 (optionally with filename). Passing both, or neither, returns an error. With background=true the call returns before ingestion finishes, so failures cannot surface in the return value — check progress and any captured errors with cognify_status.File uploads are permanent-memory only: combining
content_base64 with session_id returns an error, and content that is not valid base64 or exceeds 10 MB is rejected. The stored document keeps the file’s basename (directory components stripped, .txt appended when there is no suffix).`recall`
`recall`
Retrieve memory with auto-routing and session-aware behavior. See Recall.
When
system_prompt is omitted, recall falls back to a server-side default synthesis prompt if the server sets COGNEE_MCP_RECALL_SYSTEM_PROMPT or COGNEE_MCP_RECALL_SYSTEM_PROMPT_FILE. An explicit system_prompt always takes precedence over the server-side default. If neither environment variable is set, behavior is unchanged. See Local Setup for configuration.`forget`
`forget`
Delete a single data item, a dataset, or all memory owned by the current user. See Forget.
At least one of
dataset, dataset_id, data_id, or everything=true must be provided; passing data_id alone returns an error. Malformed UUIDs are rejected with a message rather than a traceback.Discovery Tools
Discovery Tools
These are tools for finding other tools.
search_tools searches the server’s own tool catalog by natural-language query, and call_tool invokes a tool found that way — together they let an agent reach every registered tool without all of them being in tools/list.The pair only exists in default and minimal mode. In all mode the server does not create them: every tool is already in tools/list, so there is nothing to search for (see Tool modes).`search_tools`
`search_tools`
Find registered tools by natural-language query. Returns a JSON array of matching tools, each with its
name, description, full inputSchema, and any UI metadata — enough to call the tool without another round trip. Returns empty content when nothing matches.At most 10 tools are returned, and tools already in
tools/list are never among them. Matching is lexical and does not stem words, so multi-word, natural phrasings work best — for example "is my background ingestion finished?" returns cognify_status.`call_tool`
`call_tool`
Invoke a tool by name without it being in
tools/list — typically one just found through search_tools. Calling the found tool directly by name works just as well; the proxy exists for clients that only invoke listed tools.Returns the target tool’s result unchanged. Refuses to invoke
search_tools or call_tool themselves.Status Tools
Status Tools
`cognify_status`
`cognify_status`
Check the progress of background ingestion started by
remember(background=True). Reports active and completed pipeline jobs for a dataset, including failures that a backgrounded call could not return inline.This tool is registered but not advertised: it stays out of
tools/list in default and minimal mode, while remaining discoverable through search_tools and callable directly by name. It is listed in all mode (see Tool modes).Earlier versions of the server also registered
cognify, search, prune, improve, save_interaction, get_document, get_chunk_neighbors, list_data, delete, and delete_dataset as MCP tools, along with the workspace UI entry points (visualize_graph_ui, upload_file_ui, open_cognee_workspace) and the structured JSON tools the UI used (list_datasets_json, list_dataset_data_json, get_client_info_json, create_dataset_json). The workspace UI and all of these tools have been removed in every mode — use remember / recall / forget instead, and reach for the Python SDK or REST API when you need lower-level control such as explicit search types, or dataset listing and creation.Tool Modes
An MCP client learns which tools a server offers from the server’stools/list response. By default, Cognee MCP keeps that list short — the memory tools above — and exposes the rest through two discovery tools: search_tools, which finds a tool by natural-language query, and call_tool, which invokes it. A shorter list costs a connected agent less context on every turn.
Tools left out of tools/list stay registered and remain callable directly by name, so clients that invoke a tool without listing it first are unaffected.
Choose how much of the catalog is listed with the COGNEE_MCP_TOOL_MODE environment variable (or the --tool-mode server argument):
An unrecognized value logs a warning and falls back to
default.
default and minimal currently advertise the same set: the memory tools carry both the default and memory tags, so pinning either tag yields remember, recall, and forget. The two modes stay distinct because they pin by different tags — a tool added with only the default tag would appear in default but not in minimal.Finding and calling an unlisted tool
- Call
search_toolswith a natural-languagequery. Matches are returned with their fullinputSchema, so no extra round trip is needed before invoking one. - Call the tool you found, either directly by name or through the proxy:
call_tool(name="cognify_status", arguments={...}).
If you have an integration or script that depends on the full flat
tools/list response, set COGNEE_MCP_TOOL_MODE=all to restore the previous behavior. The mode is read when the server process starts, so changes require a restart. See Local Setup.Usage Notes
- Start with
rememberto store data andrecallto retrieve it; useforgetto remove a single item, a dataset, or all memory owned by the current user. - When a
remembercall would outlast your client’s request deadline, passbackground=trueand pollcognify_status— find it withsearch_toolsif your client only calls listed tools. - For lower-level control — explicit search types, custom graph models, dataset listing and creation — use the Python SDK or REST API.
- In shared-dataset setups, prefer the Python SDK or REST API when you need UUID-based dataset scoping for a dataset the current user did not create.
Next Steps
Client Integrations
Learn how to use these tools with your AI development environment