返回市场
认知-MCP

认知-MCP

作者:topoteretes9066 星标更新:2025-11-24

项目介绍

技术文档摘要

<div align="center"> <a href="https://github.com/topoteretes/cognee"> <img src="https://raw.githubusercontent.com/topoteretes/cognee/refs/heads/dev/assets/cognee-logo-transparent.png" alt="Cognee Logo" height="60"> </a> <br />

cognee-mcp - 运行 cognee 的内存引擎作为模型上下文协议服务器

<p align="center"> <a href="https://www.youtube.com/watch?v=1bezuvLwJmw&t=2s">演示</a> . <a href="https://cognee.ai">了解更多</a> · <a href="https://discord.gg/NQPKmU5CCg">加入 Discord</a> · <a href="https://www.reddit.com/r/AIMemory/">加入 r/AIMemory</a> </p>

GitHub forks GitHub stars GitHub commits Github tag Downloads License Contributors

<a href="https://www.producthunt.com/posts/cognee?embed=true&utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-cognee" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=946346&theme=light&period=daily&t=1744472480704" alt="cognee - Memory for AI Agents in 5 lines of code | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>

<a href="https://trendshift.io/repositories/13955" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13955" alt="topoteretes/cognee | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

在终端或IDE中为代理构建记忆,并从任何支持MCP的客户端查询。

</div>

✨ 特性

  • 多种传输方式 – 选择流式HTTP --transport http(推荐用于Web部署),SSE --transport sse(实时流式传输),或stdio(经典管道,默认)
  • API模式 – 连接到已运行的Cognee FastAPI服务器而不是直接使用Cognee(参见下方的API模式
  • 集成日志 – 所有操作写入一个循环文件(参见get_log_file_location())并在开发环境中镜像到控制台
  • 本地文件导入 – 直接从磁盘导入.md、源文件、Cursor规则集等
  • 后台流水线 – 长时间运行的cognify和codify任务在后台线程中启动;使用状态工具检查进度
  • 开发者规则引导 – 一次调用即可索引.cursorrules、.cursor/rules、AGENT.md及其相关文件到开发者规则节点集中
  • 清理与重置 – 使用单个清理调用来清除内存,以便重新开始

更多详细信息,请参阅我们的文档此处

🚀 快速开始

  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. 激活cognee mcp目录中的虚拟环境
    source .venv/bin/activate
    
  6. 在.env文件中设置您的OpenAI API密钥以进行快速设置,默认配置为cognee
    LLM_API_KEY="YOUR_OPENAI_API_KEY"
    
  7. 使用stdio(默认)运行cognee mcp服务器
    python src/server.py
    
    或通过SSE流式传输响应
    python src/server.py --transport sse
    
    或使用流式HTTP传输(推荐用于Web部署)
    python src/server.py --transport http --host 127.0.0.1 --port 8000 --path /mcp
    

您可以通过使用我们的模板创建.env文件来进行更高级的配置。要使用不同的LLM提供商/数据库配置,请参阅我们的文档获取更多信息。

🐳 Docker 使用

如果您希望在容器中运行cognee-mcp,有两种选项:

  1. 本地构建

    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_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
      # 对于stdio传输(默认)
      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
      • 更多(详见pyproject.toml
  2. 从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
    # 使用stdio传输(默认)
    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 vs 直接使用

Docker使用环境变量,而不是命令行参数:

  • ✅ Docker: -e TRANSPORT_MODE=http
  • ❌ Docker: --transport http(不起作用)

直接Python使用使用命令行参数:

  • ✅ 直接: python src/server.py --transport http
  • ❌ 直接: -e TRANSPORT_MODE=http(不起作用)

Docker API模式

要连接MCP Docker容器到主机上运行的Cognee API服务器:

简单使用(自动处理localhost):

# 在主机上启动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=your_auth_token \
  -p 8001:8000 \
  --rm -it cognee/cognee-mcp:main

注意: 容器会自动将localhost转换为host.docker.internal(适用于Mac/Windows/Docker Desktop)。您将在日志中看到转换的消息。

显式使用host.docker.internal(Mac/Windows):

# 或显式使用host.docker.internal
docker run \
  -e TRANSPORT_MODE=sse \
  -e API_URL=http://host.docker.internal:8000 \
  -e API_TOKEN=your_auth_token \
  -p 8001:8000 \
  --rm -it cognee/cognee-mcp:main

在Linux上(使用主机网络或容器IP):

# 选项1:使用主机网络(最简单)
docker run \
  --network host \
  -e TRANSPORT_MODE=sse \
  -e API_URL=http://localhost:8000 \
  -e API_TOKEN=your_auth_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=your_auth_token \
  -p 8001:8000 \
  --rm -it cognee/cognee-mcp:main

API模式下的环境变量:

  • API_URL:正在运行的Cognee API服务器的URL
  • API_TOKEN:认证令牌(可选,如果API启用了认证则需要)

注意: 当在API模式下运行时:

  • 数据库迁移会被自动跳过(API服务器自行处理其数据库)
  • 部分功能受限(参见API模式限制

🔗 MCP客户端配置

在使用Docker启动您的Cognee MCP服务器后,您需要配置您的MCP客户端以连接到它。

SSE传输配置(推荐)

使用SSE传输启动服务器:

docker run -e TRANSPORT_MODE=sse --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main

配置您的MCP客户端:

Claude CLI(最简单)

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传输配置(替代方案)

使用HTTP传输启动服务器:

docker run -e TRANSPORT_MODE=http --env-file ./.env -p 8000:8000 --rm -it cognee/cognee-mcp:main

配置您的MCP客户端:

Claude CLI(最简单)

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"
    }
  }
}

注意: 只启用您实际运行的服务器以避免连接错误。

🌐 API模式

MCP服务器可以运行在两种模式下:

直接模式(默认)

MCP服务器直接导入并使用cognee库。这是默认模式,具有完整的功能支持。

API模式

MCP服务器通过HTTP请求连接到已运行的Cognee FastAPI服务器。这在以下情况下非常有用:

  • 您有一个中心化的Cognee API服务器正在运行
  • 您希望将MCP服务器与知识图谱后端分离
  • 您需要多个MCP服务器共享同一知识图谱

在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

API模式与Docker:

# 在Mac/Windows上(使用host.docker.internal访问主机)
docker run \
  -e TRANSPORT_MODE=sse \
  -e API_URL=http://host.docker.internal:800