github
cognee‑mcp - 将Cognee记忆引擎作为模型上下文协议服务器运行
演示视频 . 了解更多 · 加入Discord · 加入r/AIMemory社区
为智能体构建记忆系统,并通过支持MCP协议的任意客户端进行查询——无论是终端还是IDE环境均可使用。
更多详细信息请参阅官方文档。
git clone https://github.com/topoteretes/cognee.git
cd cognee/cognee-mcp
pip install uv
uv sync --dev --all-extras --reinstall
source .venv/bin/activate
LLM_API_KEY="您的OPENAI_API密钥"
或通过SSE流式传输响应python src/server.py
或使用流式HTTP传输(推荐Web部署)python src/server.py --transport sse
python src/server.py --transport http --host 127.0.0.1 --port 8000 --path /mcp
如需高级配置,请使用我们的模板创建.env文件。 要使用不同的LLM提供商/数据库配置,请查阅官方文档获取更多信息。
如需在容器中运行cognee-mcp,您有两种选择:
本地构建
确保位于/cognee根目录,且.env文件仅包含LLM_API_KEY(及您选择的配置)。
移除旧镜像并重新构建:
docker rmi cognee/cognee-mcp:main || true
docker build --no-cache -f cognee-mcp/Dockerfile -t cognee/cognee-mcp:main .

运行容器:
# HTTP传输(推荐Web部署)
docker run -e TRANSPORT_MODE=http --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main
# SSE传输
docker run -e TRANSPORT_MODE=sse --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main
# 标准输入输出传输(默认)
docker run -e TRANSPORT_MODE=stdio --env-file ./.env --rm -it cognee/cognee-mcp:main

运行时安装可选依赖:
通过设置EXTRAS环境变量可在运行时安装可选依赖:
# 安装单个可选依赖组
docker run \
-e TRANSPORT_MODE=http \
-e EXTRAS=aws \
--env-file ./.env \
-p 8000:8000 \
--rm -it cognee/cognee-mcp:main
# 安装多个可选依赖组(逗号分隔)
docker run \
-e TRANSPORT_MODE=sse \
-e EXTRAS=aws,postgres,neo4j \
--env-file ./.env \
-p 8000:8000 \
--rm -it cognee/cognee-mcp:main

可选依赖组列表:
aws - S3存储支持postgres / postgres-binary - PostgreSQL数据库支持neo4j - Neo4j图数据库支持neptune - AWS Neptune支持chromadb - ChromaDB向量存储支持scraping - 网页抓取能力distributed - Modal分布式执行langchain - LangChain集成llama-index - LlamaIndex集成anthropic - Anthropic模型groq - Groq模型mistral - Mistral模型ollama / huggingface - 本地模型支持docs - 文档处理codegraph - 代码分析monitoring - Sentry & Langfuse监控redis - Redis支持从Docker Hub拉取(无需构建):
# HTTP传输(推荐Web部署)
docker run -e TRANSPORT_MODE=http --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main
# SSE传输
docker run -e TRANSPORT_MODE=sse --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main
# 标准输入输出传输(默认)
docker run -e TRANSPORT_MODE=stdio --env-file ./.env --rm -it cognee/cognee-mcp:main

运行时安装可选依赖:
# 从Docker Hub镜像安装可选依赖
docker run \
-e TRANSPORT_MODE=http \
-e EXTRAS=aws,postgres \
--env-file ./.env \
-p 8000:8000 \
--rm -it cognee/cognee-mcp:main

Docker使用环境变量,而非命令行参数:
-e TRANSPORT_MODE=http--transport http(无效)直接Python使用需用命令行参数:
python src/server.py --transport http-e TRANSPORT_MODE=http(无效)将MCP Docker容器连接到主机运行的Cognee API服务器:
# 在主机启动Cognee API服务器
python -m cognee.api.client
# 以API模式运行MCP容器 - localhost会自动转换!
docker run \
-e TRANSPORT_MODE=sse \
-e API_URL=http://localhost:8000 \
-e API_TOKEN=您的认证令牌 \
-p 8001:8000 \
--rm -it cognee/cognee-mcp:main

注意: 容器在Mac/Windows/Docker Desktop环境下会自动将localhost转换为host.docker.internal。您将在日志中看到转换提示。
# 或显式指定host.docker.internal
docker run \
-e TRANSPORT_MODE=sse \
-e API_URL=http://host.docker.internal:8000 \
-e API_TOKEN=您的认证令牌 \
-p 8001:8000 \
--rm -it cognee/cognee-mcp:main

# 方案1:使用主机网络(最简单)
docker run \
--network host \
-e TRANSPORT_MODE=sse \
-e API_URL=http://localhost:8000 \
-e API_TOKEN=您的认证令牌 \
--rm -it cognee/cognee-mcp:main
# 方案2:使用主机IP地址
# 首先获取主机IP:ip addr show docker0
docker run \
-e TRANSPORT_MODE=sse \
-e API_URL=http://172.17.0.1:8000 \
-e API_TOKEN=您的认证令牌 \
-p 8001:8000 \
--rm -it cognee/cognee-mcp:main

API模式环境变量说明:
API_URL: 运行的Cognee API服务器URLAPI_TOKEN: 认证令牌(可选,当API启用认证时必需)注意: 在API模式下运行时:
使用Docker启动Cognee MCP服务器后,需要配置MCP客户端以连接至服务器。
以SSE传输模式启动服务器:
docker run -e TRANSPORT_MODE=sse --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main

配置MCP客户端:
claude mcp add cognee-sse -t sse http://localhost:8000/sse
验证连接:
claude mcp list
应显示服务器已连接:
检查MCP服务器状态... cognee-sse: http://localhost:8000/sse (SSE) - ✓ 已连接
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_MODE=http --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main

配置MCP客户端:
claude mcp add cognee-http -t http http://localhost:8000/mcp
验证连接:
claude mcp list
应显示服务器已连接:
检查MCP服务器状态... cognee-http: http://localhost:8000/mcp (HTTP) - ✓ 已连接
Claude(~/.claude.json)
{
"mcpServers": {
"cognee": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
}
}

Cursor(~/.cursor/mcp.json)
{
"mcpServers": {
"cognee-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"
}
}
}

注意: 仅启用实际运行的服务器以避免连接错误。
MCP服务器可在两种模式下运行:
MCP服务器直接导入并使用cognee库。此为默认模式,支持完整功能。
MCP服务器通过HTTP请求连接到已运行的Cognee FastAPI服务器。适用于以下场景:
以API模式启动MCP服务器:
# 首先启动Cognee FastAPI服务器(默认端口8000)
cd /path/to/cognee
python -m cognee.api.client
# 然后以API模式启动MCP服务器
cd cognee-mcp
python src/server.py --api-url http://localhost:8000 --api-token YOUR_AUTH_TOKEN

不同传输协议的API模式:
# 使用SSE传输
python src/server.py --transport sse --api-url http://localhost:8000 --api-token YOUR_TOKEN
# 使用HTTP传输
python src/server.py --transport http --api-url http://localhost:8000 --api-token YOUR_TOKEN

Docker中的API模式:
# Mac/Windows系统(使用host.docker.internal访问宿主机)
docker run \
-e TRANSPORT_MODE=sse \
-e API_URL=http://host.docker.internal:8000 \
-e API_TOKEN=YOUR_TOKEN \
-p 8001:8000 \
--rm -it cognee/cognee-mcp:main
# Linux系统(使用宿主机网络)
docker run \
--network host \
-e TRANSPORT_MODE=sse \
-e API_URL=http://localhost:8000 \
-e API_TOKEN=YOUR_TOKEN \
--rm -it cognee/cognee-mcp:main

API模式的命令行参数:
--api-url: 运行中的Cognee FastAPI服务器基础URL(如http://localhost:8000)--api-token: API认证令牌(可选,若API启用认证则必需)API模式的Docker环境变量:
API_URL: 运行中的Cognee FastAPI服务器基础URLAPI_TOKEN: 认证令牌(可选,若API启用认证则必需)API模式限制: 部分功能仅在直连模式下可用:
codify(代码图谱管道)cognify_status/codify_status(管道状态跟踪)prune(数据重置)get_developer_rules(开发者规则检索)list_data(详细数据列表)基础操作如cognify、search、delete和list_data(所有数据集)在两种模式下均可用。
MCP服务器通过工具暴露其功能。可从任何MCP客户端(Cursor、Claude Desktop、Cline、Roo等)调用这些工具。
cognify: 将数据转化为结构化知识图谱并存储于内存
cognee_add_developer_rules: 将核心开发者规则文件摄入内存
codify: 分析代码仓库,构建代码图谱并存储于内存
delete: 从数据集中删除特定数据(支持软/硬删除模式)
get_developer_rules: 检索基于先前交互生成的所有开发者规则
list_data: 列出所有数据集及其数据项(含删除操作所需的ID)
save_interaction: 记录用户代理交互及查询-回答对
prune: 重置cognee以重新开始(移除所有数据)
search: 查询内存 - 支持GRAPH_COMPLETION、RAG_COMPLETION、CODE、CHUNKS、SUMMARIES、CYPHER和FEELING_LUCKY
cognify_status/codify_status: 跟踪管道进度
数据管理示例:
# 列出所有可用数据集及数据项
list_data()
# 列出特定数据集中的数据项
list_data(dataset_id="your-dataset-id-here")
# 删除特定数据(软删除 - 更安全,保留共享实体)
delete(data_id="data-uuid", dataset_id="dataset-uuid", mode="soft")
# 删除特定数据(硬删除 - 移除孤立实体)
delete(data_id="data-uuid", dataset_id="dataset-uuid", mode="hard")

使用调试器运行:
mcp dev src/server.py
打开带超时的检查器:
http://localhost:5173?timeout=120000
开发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
我们致力于为社区提供愉快且尊重的开源体验。详见CODE_OF_CONDUCT。