cognee-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ENV | No | Environment setting | local |
| LLM_API_KEY | Yes | API key for the LLM service | |
| TOKENIZERS_PARALLELISM | No | Control for tokenizers parallelism | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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. |
| code_searchA | Search Cognee's indexed code graph with a structured operation. This tool is for source-code structure, symbols, call/dependency paths,
impact, architecture, and index changes. It does not search conversational
memory. Choose an operation and pass its operation-specific fields in
|
| 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. |
| search_toolsA | Search for tools using natural language. Returns matching tool definitions ranked by relevance, in the same format as list_tools. |
| call_toolA | Call a tool by name with the given arguments. Use this to execute tools discovered via search_tools. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
The core memory verbs (remember/forget/recall) are cleanly separated by write/delete/read semantics, and the meta-pair search_tools/call_tool is unambiguous. The only mild overlap is recall vs code_search, since both are retrieval tools, but code_search explicitly scopes itself to the code graph and excludes conversational memory, which resolves most confusion.
All names are snake_case and fall into two coherent families: bare verbs for memory operations (remember, forget, recall) and verb_noun for infrastructure (call_tool, search_tools, code_search). This is a defensible grouping rather than chaos, though the bare-verb vs verb_noun split keeps it from being a fully uniform pattern.
Six tools is well within the sweet spot and each one covers a distinct responsibility: store, retrieve, delete, code-graph query, plus dynamic tool discovery and invocation. Nothing feels padded or missing at the surface-count level.
The lifecycle is largely covered: remember (create), recall (read), forget (delete), and a specialized code_search, with file upload and session modes handled via parameters. Gaps exist around explicitly updating existing memory and enumerating datasets/items (forget accepts a dataset name/id but nothing lists them), which agents can work around by re-storing or semantic recall.