ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

cognee-mcp 完全指南:用 MCP 协议把 cognee 记忆引擎接入你的 Agent 与 IDE

cognee-mcp 完全指南:用 MCP 协议把 cognee 记忆引擎接入你的 Agent 与 IDE cognee-mcp 完全指南用 MCP 协议把 cognee 记忆引擎接入你的 Agent 与 IDE【免费下载链接】cogneeCognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.项目地址: https://gitcode.com/GitHub_Trending/co/cogneecognee-mcp 是 cognee 开源 AI 记忆平台为 Agent 提供跨会话持久长期记忆的自托管知识图谱引擎推出的 Model Context Protocol 服务端实现它把 cognee 的记忆能力包装成标准 MCP 工具让任何支持 MCP 的客户端——终端、Cursor、Claude Desktop、Cline、Roo 等——都能直接读写知识图谱记忆。本文将以 cognee-mcp/README.md 为主线结合 cognee-mcp/src/server.py、cognee-mcp/src/cognee_client.py 等源码完整讲解三种传输方式、三种连接模式、四个核心工具、工具面裁剪与 Agent 隔离等实战配置读完即可在本地或 Docker 中把 cognee 记忆引擎跑成一个可被任意 MCP 客户端调用的记忆服务。cognee-mcp 是什么把知识图谱记忆变成 MCP 工具cognee 的核心能力是把文本、文件、代码等内容通过 add cognify 流水线转化为带语义关联的知识图谱并提供 recall / search / forget 等记忆操作。cognee-mcp 是这一能力在 MCP 协议上的出口它在服务端直接 import cognee 库Direct 模式或通过 HTTP 代理到已运行的 cognee API 服务API 模式将记忆操作暴露为 MCP 工具使 Agent 可以把重要信息记住进长期图谱、在后续会话中回忆出来并在需要时忘记。按 README 的描述cognee-mcp 的核心特性包括多种传输方式Streamable HTTP--transport http推荐用于 Web 部署、SSE--transport sse实时流式、stdio经典管道默认Cloud 模式通过--serve-url或COGNEE_SERVICE_URL环境变量连接 Cognee CloudAPI 模式连接一个已在运行的 cognee FastAPI 服务器极简记忆 API只暴露remember、recall、forget三个工具给 Agent 记忆工作流集成日志所有操作写入轮转日志文件由get_log_file_location()返回路径开发环境同时镜像到控制台会话感知记忆通过同一个remember工具既能写入快速的会话缓存也能写入永久图谱记忆聚焦召回通过一个recall工具查询记忆支持可选的会话与搜索控制简单删除通过一个forget工具删除数据集或全部自有记忆。值得说明的是从源码看 MCP 服务器实际注册的工具不止三个remember、recall、forget之外还有cognify、search、improve、cognify_status、list_data、delete、delete_dataset、prune、get_document、get_chunk_neighbors、save_interaction等见 cognee-mcp/src/server.py。默认工具面tool mode只向客户端广告记忆三件套其余工具通过search_tools按需发现但始终可以按名称直接调用——这一点在工具面裁剪一节会详细展开。快速开始本地用 stdio 把记忆服务跑起来README 给出的最快上手路径基于 uv 与 Python 源码# 1. 克隆 cognee 仓库 git clone https://github.com/topoteretes/cognee.git # 2. 进入 cognee-mcp 子目录 cd cognee/cognee-mcp # 3. 安装 uv若尚未安装 pip install uv # 4. 用 uv 安装 cognee mcp 服务端所需全部依赖 uv sync --dev --all-extras --reinstall # 5. 激活虚拟环境 source .venv/bin/activate # 6. 在 .env 中配置 OpenAI API Key以默认 cognee 配置快速启动 # LLM_API_KEYYOUR_OPENAI_API_KEY # 7. 以 stdio默认运行 cognee mcp 服务端 python src/server.py按需切换传输方式# SSE 流式传输 python src/server.py --transport sse # Streamable HTTP推荐用于 Web 部署 python src/server.py --transport http --host 127.0.0.1 --port 8000 --path /mcp更高级的配置可以通过创建.env文件实现参考仓库根目录的.env.template模板例如切换不同的 LLM 提供商、向量库与图数据库。无 API Key 的替代方案如果你的 MCP 宿主host授予了sampling能力可以设置LLM_PROVIDERmcp-sampling将补全completion委托给宿主自己的模型此时无需LLM_API_KEY但 embeddings 仍需要一个提供商。README 特别提醒宿主支持程度不一——截至 2026 年初Claude Code 尚未授予 sampling 能力因此该方案在 Claude Code 下不可用具体请参考.env.template中的 MCP sampling 一节。从 cognee-mcp/src/server.py 的命令行解析main()中的argparse部分可以看到完整的启动参数参数默认值说明--transportstdio可选sse/stdio/http--host127.0.0.1HTTP 服务绑定主机--port8000HTTP 服务端口--path/mcpMCP HTTP 端点路径--log-levelinfo可选debug/info/warning/error--no-migrationFalse跳过数据库迁移--tool-modedefault可选default/minimal/all控制 tools/list 广告的工具--api-url环境变量COGNEE_BASE_URL已运行 cognee FastAPI 服务的地址--api-token环境变量COGNEE_API_KEYAPI 认证令牌--serve-url无Cognee Cloud / 远端实例 URL--serve-api-key无Cloud 实例 API Key启动时服务端会先尝试运行数据库迁移Direct 模式下见run_migrations()随后按传输类型进入_serve_with_cors()HTTP/SSE 由 uvicorn 托管并附加 CORS 中间件MCP_CORS_ALLOW_ORIGINS可配置允许来源默认http://localhost:3000或mcp.run_stdio_async()。HTTP/SSE 模式下还会额外暴露一个GET /health健康检查端点见mcp.custom_route(/health)供容器 HEALTHCHECK 探活。使用 uv 安装时的依赖要点cognee-mcp/pyproject.toml 揭示了依赖约束要求Python 3.10核心依赖cognee[postgres-binary,docs,neo4j]1.5.0,2.0.0本地开发时可取消注释cognee file:/...指向本地 cognee 源码并执行uv sync --reinstallfastmcp3.4.0,4.0.0README 强调工具可见性标签与 tool-search transform 依赖 FastMCP 3SDK 内置的旧版 fork 不具备这两个能力与mcp1.24.0,2.0.0Linux 上 torch 通过 PyTorch 官方 CPU wheel 索引解析避免拉下约 4.3GB 的 CUDA 依赖栈onnxruntime通过constraint-dependencies按 Python 版本锁定1.23.2for3.14。Docker 部署两种镜像来源与运行时可选依赖README 提供了两种容器化方式本地构建镜像或直接拉取 Docker Hub 官方镜像每次推送main分支时自动发布。方式一本地构建# 1. 在 /cognee 仓库根目录准备只含 LLM_API_KEY 及所需配置的 .env # 2. 移除旧镜像并重新构建 docker rmi cognee/cognee-mcp:main || true docker build --no-cache -f cognee-mcp/Dockerfile -t cognee/cognee-mcp:main . # 3. 运行 # HTTP 传输推荐用于 Web 部署 docker run -e TRANSPORT_MODEhttp --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main # SSE 传输 docker run -e TRANSPORT_MODEsse --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main # stdio 传输默认 docker run -e TRANSPORT_MODEstdio --env-file ./.env --rm -it cognee/cognee-mcp:main方式二拉取 Docker Hub 镜像无需克隆仓库# 拉取预构建镜像 docker pull cognee/cognee-mcp:main # 在当前目录创建最小 .env至少包含 LLM Key echo LLM_API_KEYYOUR_OPENAI_API_KEY .env # 同样支持三种传输方式命令同方式一运行时安装可选依赖EXTRAS容器支持在运行时通过EXTRAS环境变量按需安装 cognee 的可选依赖组逗号分隔多个# 单个可选组 docker run -e TRANSPORT_MODEhttp -e EXTRASaws --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main # 多个可选组逗号分隔 docker run -e TRANSPORT_MODEsse -e EXTRASaws,postgres,neo4j --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:mainREADME 列出的可用可选依赖组包括awsS3 存储、postgres/postgres-binaryPostgreSQL、neo4jNeo4j 图库、neptuneAWS Neptune、chromadbChromaDB 向量库、scraping网页抓取、langchain、llama-index、anthropic、groq、mistral、ollama/huggingface本地模型、docs文档处理、codegraph代码分析、tracingOpenTelemetry 追踪、redis等完整列表见 cognee-mcp/pyproject.toml。该逻辑实现在 cognee-mcp/entrypoint.sh读取EXTRAS后通过uv pip install cognee[$ALL_EXTRAS]$COGNEE_VERSION安装与当前镜像内 cognee 版本一致的可选组。重要Docker 用环境变量直接运行用命令行参数场景正确写法错误写法Docker-e TRANSPORT_MODEhttp--transport http无效直接 Pythonpython src/server.py --transport http-e TRANSPORT_MODEhttp无效容器入口脚本 cognee-mcp/entrypoint.sh 会把TRANSPORT_MODE翻译成--transport参数并针对非 stdio 模式自动追加--host 0.0.0.0 --port $HTTP_PORT设置DEBUGtrue且ENVdev|local时会以 debugpy 调试模式启动默认监听 5678 端口等待调试器接入。镜像细节源自 Dockerfilecognee-mcp/Dockerfile 采用多阶段构建uv 镜像装依赖 → python:3.12-slim 运行关键点包括以非 root 用户cogneeuid 1000运行数据存储目录固定为/cognee-storage/system与/cognee-storage/data通过SYSTEM_ROOT_DIRECTORY/DATA_ROOT_DIRECTORY环境变量指定便于与主镜像共享命名卷构建时预装 Kuzu/Ladybug 的 JSON 扩展以避免离线容器内 recall 时报 Extension: json ... has not been installed仅 HTTP/SSE 模式做健康检查stdio 模式直接视为健康。把服务接入 MCP 客户端SSE 与 HTTP 客户端配置MCP 服务启动后需要配置客户端连接。README 推荐 SSE 与 HTTP 两种方式。SSE 传输配置推荐docker run -e TRANSPORT_MODEsse --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:mainClaude CLI最简单claude mcp add cognee-sse -t sse http://localhost:8000/sse claude mcp list验证输出示例Checking MCP server health... cognee-sse: http://localhost:8000/sse (SSE) - ✓ Connected手动配置Claude~/.claude.json{ mcpServers: { cognee: { type: sse, url: http://localhost:8000/sse } } }Cursor~/.cursor/mcp.json{ mcpServers: { cognee-sse: { url: http://localhost:8000/sse } } }HTTP 传输配置备选docker run -e TRANSPORT_MODEhttp --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:mainClaude CLIclaude mcp add cognee-http -t http http://localhost:8000/mcp claude mcp list验证输出示例Checking MCP server health... cognee-http: http://localhost:8000/mcp (HTTP) - ✓ Connected手动配置Claude / Cursor分别将type改为http、URL 改为http://localhost:8000/mcp即可。也可以同时配置两个传输便于测试但只启用实际运行的那个服务否则会出现连接错误{ mcpServers: { cognee-sse: { type: sse, url: http://localhost:8000/sse }, cognee-http: { type: http, url: http://localhost:8000/mcp } } }三种连接模式Direct / Cloud / APIMCP 服务支持三种连接模式由 cognee-mcp/src/cognee_client.py 中的CogneeClient统一抽象use_api bool(api_url)决定走本地直调还是 HTTP 代理。Direct 模式默认MCP 服务直接 import 并使用 cognee 库搭配本地数据库SQLite、LanceDB、Ladybug 等。这是默认模式功能最全——get_document、get_chunk_neighbors、delete_dataset、prune、自定义图模型等仅在 Direct 模式下可用API 模式下这些工具会返回不可用提示见 cognee-mcp/src/server.py 中相应工具的判断逻辑。Cloud 模式连接 Cognee Cloud 或远端 cognee 实例。服务启动时调用cognee.serve()此后所有 SDK 操作透明地路由到云端本地无需任何数据库。通过 CLI 参数python src/server.py --serve-url https://your-instance.cognee.ai --serve-api-key ck_...通过环境变量零配置export COGNEE_SERVICE_URLhttps://your-instance.cognee.ai export COGNEE_API_KEYck_... python src/server.pyCloud 模式 Dockerdocker run \ -e TRANSPORT_MODEsse \ -e COGNEE_SERVICE_URLhttps://your-instance.cognee.ai \ -e COGNEE_API_KEYck_... \ -p 8000:8000 \ --rm -it cognee/cognee-mcp:mainCloud 模式参数与环境变量--serve-url/COGNEE_SERVICE_URL实例 URL、--serve-api-key/COGNEE_API_KEYAPI Key。Cloud 模式会自动跳过数据库迁移远端管理自己的数据库。API 模式MCP 服务通过 HTTP 请求连接一个已运行的 cognee FastAPI 服务器。适合已有集中式 cognee API 服务、希望 MCP 服务与知识图谱后端分离、或需要多个 MCP 服务共享同一个知识图谱的场景。# 1. 先启动 cognee FastAPI 服务默认端口 8000 cd /path/to/cognee python -m cognee.api.client # 2. 再以 API 模式启动 MCP 服务 cd cognee-mcp python src/server.py --api-url http://localhost:8000 --api-token YOUR_AUTH_TOKEN # 搭配不同传输 python src/server.py --transport sse --api-url http://localhost:8000 --api-token YOUR_TOKEN python src/server.py --transport http --api-url http://localhost:8000 --api-token YOUR_TOKENDocker API 模式重点宿主机 localhost 自动转换# Mac/WindowsDocker Desktoplocalhost 自动转换为 host.docker.internal docker run \ -e TRANSPORT_MODEsse \ -e API_URLhttp://host.docker.internal:8000 \ -e API_TOKENYOUR_TOKEN \ -p 8001:8000 \ --rm -it cognee/cognee-mcp:main # Linux推荐 host 网络最简单 docker run \ --network host \ -e TRANSPORT_MODEsse \ -e API_URLhttp://localhost:8000 \ -e API_TOKENYOUR_TOKEN \ --rm -it cognee/cognee-mcp:main # Linux备选用 docker0 网桥 IP如 172.17.0.1 docker run \ -e TRANSPORT_MODEsse \ -e API_URLhttp://172.17.0.1:8000 \ -e API_TOKENYOUR_TOKEN \ -p 8001:8000 \ --rm -it cognee/cognee-mcp:mainREADME 特别说明容器会自动把localhost转换为宿主机可达地址Mac/Windows/Docker Desktop 用host.docker.internal日志中会显示转换信息Linux 上建议直接用--network host或显式宿主机 IP。容器内的地址解析逻辑完整实现于 cognee-mcp/entrypoint.sh依次尝试host.docker.internalDocker Desktop→host.lima.internalColima/Lima→ 从/proc/net/route读取默认网关 IP纯 Linux Docker。API 模式环境变量变量说明API_URL已运行 cognee FastAPI 服务的 Base URLAPI_TOKEN认证令牌可选API 启用认证时必需API 模式注意点数据库迁移自动跳过API 服务自行管理 DB只暴露记忆 APIremember、recall、forget这些工具直接调用 cognee API 端点而cognify、search、list_data、delete、prune、improve及文档检索类辅助工具保持内部状态不作为 MCP 工具暴露。从 cognee-mcp/src/cognee_client.py 可以看到 API 模式下的鉴权细节解析到租户 ID 时URL 形如tenant-uuid.cognee.ai用X-Api-KeyX-Tenant-Id请求头否则回退到Bearer令牌。四个记忆工具remember / recall / forget / cognify_statusREADME 明确指出 MCP 服务通过工具暴露功能任何 MCP 客户端Cursor、Claude Desktop、Cline、Roo 等均可调用。三个广告内工具 一个按需发现工具remember —— 存储记忆传入data文本或filenamecontent_base64上传文件上限 10 MB带session_id仅写入快速会话缓存纯文本不做实体抽取不带session_id写入永久图谱记忆走完整 add cognify 流水线custom_prompt自定义实体抽取提示词仅永久模式backgroundTrue把永久摄取排入后台任务立即返回MCP 宿主通常有请求超时限制长流水线会被截断进度用cognify_status查询错误也通过该工具暴露而非返回值文件上传content_base64不支持session_id且data与content_base64互斥。# 存储永久记忆 remember(dataCognee MCP now exposes a focused memory API., dataset_namemain_dataset) # 存储会话记忆 remember(dataTemporary working note, session_idagent-session-1)recall —— 搜索记忆自动路由提供session_id时先搜会话缓存关键词匹配无结果时回退到永久知识图谱未指定search_type时自动路由选择最佳搜索策略也可用search_type显式覆盖如GRAPH_COMPLETION、GRAPH_COMPLETION_COT、RAG_COMPLETION、CHUNKS、SUMMARIES、TEMPORAL、FEELING_LUCKY等datasets为逗号分隔的数据集名列表top_k默认 15源码中recall默认top_k15而工具文档注释写 10实际以server_utils.validate_top_k校验为准上限 100system_prompt可覆盖合成提示词未提供时回退到服务端配置的COGNEE_MCP_RECALL_SYSTEM_PROMPT/COGNEE_MCP_RECALL_SYSTEM_PROMPT_FILE见 cognee-mcp/src/cognee_client.py 中_default_recall_system_prompt()。recall(queryWhat changed in the MCP server?, session_idagent-session-1)forget —— 删除记忆支持四种定位方式按数据集名dataset、按数据集 IDdataset_id、按单条数据data_id必须配合dataset或dataset_id消除歧义、或删除全部自有记忆everythingTrue。删除会同步清理关系型数据库、图数据库与向量数据库。# 删除一个数据集 forget(datasetmain_dataset) # 删除全部记忆 forget(everythingTrue)cognify_status —— 后台任务进度查询remember(backgroundTrue)启动的后台摄取进度报告数据集的活跃与已完成流水线作业包括后台调用无法内联返回的失败。默认不在 tools/list 中广告通过search_tools可发现且始终可按名称调用。默认查询cognify_pipeline向后兼容可用pipelines参数指定多个流水线名称API 模式下先通过 HTTP 解析数据集 ID再从GET /api/v1/datasets/status读取状态。此外服务端用有界环形缓冲每数据集保留最近 50 条见_TASK_ERROR_HISTORY记录后台任务错误并随状态结果一并返回。工具面裁剪COGNEE_MCP_TOOL_MODE 与 search_tools把所有工具一次性广告给 Agent 会消耗上下文并损害工具选择的准确率。因此默认情况下服务端只在tools/list中固定pin一小撮工具其余工具通过 FastMCP 内置的search_tools可发现——未广告的工具仍然可按名称调用。COGNEE_MCP_TOOL_MODEdefault # 固定remember, recall, forget COGNEE_MCP_TOOL_MODEminimal # 固定remember, recall, forget COGNEE_MCP_TOOL_MODEall # 不做 search 变换广告全部工具也可用--tool-mode按进程设置。在default/minimal模式下Agent 调用search_tools(query...)找到工具后直接按名称调用或经由call_tool代理调用。工具的层级tier通过registry.tool(tags{...})在定义处声明固定集合由装饰器派生而非维护独立列表——该设计见 cognee-mcp/src/tool_registry.py 与apply_tool_mode()的实现。search_tools最多返回TOOL_SEARCH_MAX_RESULTS10个工具这是基于 cognee-mcp/tests/test_tool_search_benchmark.py 的召回率扫描确定的在 500 个工具的目录上BM25 的 recallk 在 k5 到 k10 之间从 60% 提升到 80% 后趋于平稳——因为排序器曾把正确工具放在 5 宽的窗口之外。窗口只在真正调用搜索的那一轮消耗上下文tools/list则始终恒定。写工具时如何让搜索命中搜索在自然语言查询上表现良好。以下措辞都能让目标工具排在第一位由 cognee-mcp/tests/test_tool_search.py 覆盖查询返回is my background ingestion finished?cognify_statuscheck the progress of a pipeline jobcognify_status新增工具时只需记住一点匹配是纯词法的。FastMCP 的 BM25 分词器不做词干还原得分为零的工具会被丢弃因此查询与描述中不包含的词不会产生任何命中。多词查询通常包含若干匹配 token可以掩盖这一问题但过于简短的查询不行。所以用 Agent 实际会用的措辞写描述单复数都写上。召回率受词汇表约束而非TOOL_SEARCH_MAX_RESULTS。如果纯词法匹配不够用BaseSearchTransform保留了抽象的_search()方法可以无缝换入基于 cognee 自身 embeddings 的语义排序器而不必触碰其余管道。测试侧的证据cognee-mcp/tests/test_tool_search.py 验证了工具面门控的行为契约default 模式广告remember/recall/forgetsearch_tools/call_toolminimal 相同all 模式恢复扁平工具面且不含合成工具未知模式回退 defaultapply_tool_mode幂等重复调用不会叠加第二个 search transform隐藏工具既可按名直接调用也可经call_tool代理调用search_tools返回结果携带完整 input schema 以便 Agent 无需二次往返即可调用每个工具通过注册器自动获得MCP tool_name形式的用量日志。此外 cognee-mcp/tests/conftest.py 会在测试结束时报告从未被调用的工具设置COGNEE_MCP_STRICT_TOOL_COVERAGE1时可直接让 CI 失败。Agent 作用域每个客户端默认独立数据集默认情况下每个 MCP 客户端获得一个自动命名的数据集例如 Cursor →cursor_vscode_memory、Claude Code →claude_code_memory避免不同 Agent 意外共享记忆。数据集在客户端首次写入时按需创建。LLM 直接调用cognify、remember、improve、cognify_status时若省略dataset_name会路由到 Agent 作用域数据集显式传dataset_name可以覆盖例如dataset_namemain_dataset仍然有效。源码实现见 cognee-mcp/src/server.py 的_agent_scoped_default_dataset()从当前请求上下文的clientInfo.name读取客户端名经_sanitize_client_name()清洗剥离括号后缀、非字母数字字符替换为下划线后拼上_memory后缀当 Agent 作用域被禁用或取不到客户端身份时回退到main_dataset。如需禁用 Agent 作用域、让所有客户端共享默认的main_dataset在.env中设置COGNEE_MCP_AGENT_SCOPEDfalse禁用后不再自动创建任何客户端数据集。每数据集隔离ENABLE_BACKEND_ACCESS_CONTROLAgent 作用域决定工具默认使用哪个数据集名称而两个数据集在存储层是否真正隔离由 cognee 的ENABLE_BACKEND_ACCESS_CONTROL标志决定true默认每个(user, dataset)组合在.cognee_system/databases/dataset_uuid/下拥有独立的 Kuzu 图库与 LanceDB 向量库搜索严格按数据集隔离false所有数据集共享一个 Kuzu 图库与一个 LanceDB。数据集过滤对顶层数据点仍然生效但GRAPH_COMPLETION遍历可能拉取任何数据集中的相连节点。适用于单用户本地开发同时会取消 API 认证要求除非显式设置REQUIRE_AUTHENTICATIONtrue。切换模式不会自动清理任何数据——但数据不会迁移。一种模式下摄取的数据存放于与另一种模式不同的磁盘路径切换后不可见。变更该标志时应从干净状态开始# 停止服务后 DATA_ROOT/absolute/path/to/data-root rm -rf $DATA_ROOT/.cognee_system $DATA_ROOT/.data_storage # 编辑 .env 翻转 ENABLE_BACKEND_ACCESS_CONTROL重启并重新 cognify。DATA_ROOT设置为DATA_ROOT_DIRECTORY/SYSTEM_ROOT_DIRECTORY指向的目录若未设置这两项则为 cognee 安装目录。开发与调试调试mcp dev src/server.py然后用带超时的 Inspector 连接http://localhost:5173?timeout120000开发 cognee 过程中应用新变更的步骤按需更新 cognee 文件夹内的依赖uv sync --dev --all-extras --reinstallmcp dev src/server.py。使用本地 cognee 源码取消 cognee-mcp/pyproject.toml 中如下行的注释并设置 cognee 根路径#cognee[postgres,codegraph,gemini,huggingface,docs,neo4j] file:/Users/username/Desktop/cognee将file:/Users/username/Desktop/cognee替换为你的实际 cognee 根路径。在 mcp 目录用 uv 安装依赖uv sync --reinstall源码视角CogneeClient 的统一直调 / API 抽象cognee-mcp/src/cognee_client.py 是三种连接模式统一工作的重要实现细节。CogneeClient.__init__根据api_url决定模式API 模式创建httpx.AsyncClient5 分钟超时、跟随重定向——云 API 的集合路由带尾斜杠并做 307 重定向不跟随会静默读到空重定向体Direct 模式才import cognee。所有方法add、cognify、search、delete、remember、recall、forget、improve、get_pipeline_status、list_datasets等都按self.use_api分流。此外还有一些值得注意的工程细节上传处理API 模式支持三类 multipart 上传——文本按内容寻址MD5 摘要命名避免重复写入冲突、base64 文件与真实文件路径_build_upload自动选择base64 解码时对文件名做净化Path(filename).name剥离目录组件防路径穿越无扩展名时补.txt超时分级只读 GET数据集列表/状态使用 30 秒超时快速失败避免被挂起的请求冻结 5 分钟长 POST如 cognify保留 300 秒API 模式下的 cognify以run_in_background: True提交让服务端后台执行而不是长时间占用 HTTP 请求stdout 保护由于 MCP 用 stdout 传输 JSON-RPC所有 cognee 调用都包在redirect_stdout(sys.stderr)中把 cognee 内部 print 输出重定向到 stderr避免污染协议通道包括启动时迁移的输出后台任务钉住_track_background()用强引用集合保住 asyncio 后台任务防止事件循环在任务中途 GC 掉它fire-and-forget 任务的经典坑完成回调自动移除关停时以 10 秒有界超时排空。结尾从会跑到跑好的配置清单围绕 cognee-mcp/README.md 的完整链路落地一个生产可用的 cognee-mcp 服务通常需要依次确认传输方式stdio 本地 / SSE、HTTP 线上、连接模式Direct 本地库 / Cloud 云端 / API 复用现有服务、.env中的 LLM 与存储配置、工具面模式COGNEE_MCP_TOOL_MODE、Agent 作用域COGNEE_MCP_AGENT_SCOPED与存储层隔离ENABLE_BACKEND_ACCESS_CONTROL以及容器场景下的TRANSPORT_MODE/EXTRAS/API_URL等环境变量。每一层都有对应的源码实现与测试用例可查证这使 cognee-mcp 成为一个配置即契约、行为有测试的 MCP 服务端也让 Agent 记忆落地变得可预期、可排障、可扩展。【免费下载链接】cogneeCognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.项目地址: https://gitcode.com/GitHub_Trending/co/cognee创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进