数据管理工具
数据管理工具
相关源文件
本章引用的主要源码文件:
.github/actions/install_cognee/action.yml.github/workflows/cli_tests.yml.github/workflows/dockerhub-mcp.yml.github/workflows/test_mcp.ymlDockerfilecognee-mcp/Dockerfilecognee-mcp/README.mdcognee-mcp/entrypoint.shcognee-mcp/pyproject.tomlcognee-mcp/src/__init__.pycognee-mcp/src/client.pycognee-mcp/src/cognee_client.pycognee-mcp/src/server.pycognee-mcp/src/test_client.pycognee-mcp/tests/test_mcp_server_hardening.pycognee-mcp/uv.lockcognee/alembic/versions/7c5d4e2f8a91_add_parent_user_id_to_users.pycognee/modules/engine/models/__init__.pycognee/modules/tools/__init__.pycognee/modules/tools/path_safety.pycognee/modules/users/authentication/default/default_transport.pycognee/modules/users/authentication/get_api_auth_backend.pycognee/modules/users/authentication/get_client_auth_backend.pycognee/tests/cli_tests/cli_integration_tests/__init__.pycognee/tests/cli_tests/cli_integration_tests/test_cli_integration.pycognee/tests/cli_tests/cli_unit_tests/__init__.pycognee/tests/cli_tests/cli_unit_tests/test_cli_runner.pycognee/tests/unit/test_add_parent_user_id_migration.pydocker-compose.ymlentrypoint.sh
本文档介绍了管理数据入库、知识图谱构建和数据生命周期操作的 MCP 服务器工具。这些工具通过 cognee-mcp 服务器暴露,使 AI 助手能够向 Cognee 的知识图谱系统添加、处理、查询和删除数据。
概述
cognee-mcp 服务器暴露了与核心 Cognee 操作对应的主要数据管理工具。这些工具支持两种连接模式:直接模式(本地函数调用)和 API 模式(向 Cognee FastAPI 服务器发送 HTTP 请求)。
| 工具 | 用途 | API 模式支持 | 后台执行 |
|---|---|---|---|
cognify | 将数据转换为知识图谱 | ✅ 是 | ✅ 是 |
save_interaction | 将对话历史存储为记忆 | ✅ 是 | ✅ 是 |
prune | 重置所有数据和元数据 | ❌ 否 | ❌ 否 |
get_datasets | 列出可用数据集 | ✅ 是 | ❌ 否 |
get_data | 列出数据集中的数据项 | ✅ 部分支持 | ❌ 否 |
get_log_file_location | 查找当前操作日志 | ✅ 是 | ❌ 否 |
来源:cognee-mcp/src/server.py:203-210, cognee-mcp/src/server.py:657-662, cognee-mcp/src/server.py:829-834, cognee-mcp/src/cognee_client.py:20-37
工具执行架构
MCP 服务器采用两层架构,工具通过 @mcp.tool() 装饰器进行装饰,并委托给 CogneeClient,后者为直接函数调用和 HTTP API 请求提供了统一接口。
标题:"MCP 工具执行数据流"
工具执行流程 CogneeClient 在 __init__ 期间根据是否存在 api_url 来确定其操作模式 cognee-mcp/src/cognee_client.py:44-48。如果提供了 api_url,它会使用 httpx.AsyncClient 与远程服务器通信;否则,它会导入本地的 cognee 库 cognee-mcp/src/cognee_client.py:63-68。
来源:cognee-mcp/src/server.py:50-54, cognee-mcp/src/cognee_client.py:33-46
数据入库与处理
cognify 工具
cognify 工具是将非结构化数据转换为结构化知识图谱的主要入口点。它执行两个步骤:add(入库)和 cognify(图谱构建)。
实现细节: 为防止长时间运行的图谱构建导致 MCP 超时,该工具可以通过 _track_background 启动一个 asyncio.create_task() 并立即返回 cognee-mcp/src/server.py:92-97。它还会对本地文件执行文件路径校验,确保文件可访问,特别是在 Docker 内部运行时 cognee-mcp/src/server.py:155-157。
来源:cognee-mcp/src/server.py:203-346, cognee-mcp/src/cognee_client.py:107-149, cognee-mcp/src/cognee_client.py:150-198
save_interaction 工具
该工具将对话片段存储为持久化记忆。它映射到 cognee.add 操作,使用特定的 node_set 或元数据来标识其为交互历史 cognee-mcp/src/server.py:657-695。
参数:
interaction_data:对话的文本内容。dataset_name:目标数据集(默认值:"interactions")。
来源:cognee-mcp/src/server.py:657-695
开发者规则管理
Cognee 提供了一套专门的工具来管理"开发者规则"(例如 .cursorrules、AGENT.md)。这些规则存储在专用的节点集中,以便代理能够检索编码标准和项目特定的指令。
规则管理工具
| 工具 | 用途 |
|---|---|
bootstrap_developer_rules | 扫描工作区中的规则文件并将其入库 cognee-mcp/src/server.py:129-181。 |
add_rules | 手动向图谱添加特定规则和关联 cognee-mcp/src/server.py:406-432。 |
get_rules | 从 developer_rules 节点集中检索现有规则 cognee-mcp/src/server.py:434-453。 |
delete_rules | 从系统中删除规则 cognee-mcp/src/server.py:455-478。 |
来源:cognee-mcp/src/server.py:61-70, cognee-mcp/src/server.py:129-181, cognee-mcp/src/server.py:406-478
规则发现逻辑
bootstrap_developer_rules 工具会相对于 base_path 搜索以下文件:
.cursorrules.cursor/rulesCLAUDE.mdAGENT.md.clinerules
来源:cognee-mcp/src/server.py:129-139
生命周期与元数据工具
prune 工具
prune 工具用于重置 Cognee 环境。它仅限于直接模式使用,因为它会执行破坏性的文件系统和数据库操作,出于安全原因,这些操作通常不会通过公共 REST API 暴露 cognee-mcp/src/server.py:829-877。
作用范围:
data:清除所有已入库的文档和图谱节点。system:清除数据以及系统元数据(用户、数据集、管线历史)。
来源:cognee-mcp/src/server.py:829-877, cognee-mcp/src/cognee_client.py:284-307
数据集与数据发现
get_datasets:返回默认用户拥有的所有数据集列表cognee-mcp/src/server.py:697-710。get_data:返回特定数据集中的项目。在 API 模式下,目前仅限于列出数据集名称,而非单个文件内容cognee-mcp/src/cognee_client.py:314-338。
来源:cognee-mcp/src/server.py:697-726, cognee-mcp/src/cognee_client.py:314-338
系统可观测性
get_log_file_location
Cognee MCP 将所有后台操作记录到轮转日志文件中。该工具允许 AI 代理告知用户具体在哪里查找调试信息 cognee-mcp/src/server.py:334-340。
实现: 该工具调用 cognee.shared.logging_utils.get_log_file_location() 来获取路径 cognee-mcp/src/server.py:14。
来源:cognee-mcp/src/server.py:14, cognee-mcp/src/server.py:334-340
数据流:从自然语言到代码实体
下图展示了来自 MCP 客户端的自然语言请求如何转换为 Cognee 生态系统中的具体代码实体。
标题:"自然语言到代码实体映射"
映射总结:
- MCP 工具:
bootstrap_developer_rulescognee-mcp/src/server.py:129 - 客户端包装器:
CogneeClient.addcognee-mcp/src/cognee_client.py:107 - 核心逻辑:
cognee.addcognee-mcp/src/cognee_client.py:147 - 规则关联:
add_rule_associationscognee-mcp/src/server.py:62-63
来源:cognee-mcp/src/server.py:61-181, cognee-mcp/src/cognee_client.py:20-198