Memory MCP Server

Memory MCP Server

未知

概述

内存 MCP 服务器是一个模型上下文协议服务器,提供知识图谱功能,用于在内存中管理实体、关系和观察。

安装

mcp install main.py -v MEMORY_FILE_PATH=/path/to/memory.jsonl

基本用法

实体管理

创建实体

result = await session.call_tool("create_entities", {
    "entities": [
        Entity(
            name="python-project",
            entityType="project",
            observations=["Started development on 2024-01-29"]
        ),
        Entity(
            name="john-doe",
            entityType="person",
            observations=["Software engineer", "Joined team in 2024"]
        )
    ]
})

获取实体

result = await session.call_tool("get_entity", {
    "entity_name": "python-project"
})

删除实体

result = await session.call_tool("delete_entities", {
    "names": ["python-project", "john-doe"]
})

关系管理

创建关系

result = await session.call_tool("create_relation", {
    "from_entity": "john-doe",
    "to_entity": "python-project",
    "relation_type": "created"
})

删除关系

result = await session.call_tool("delete_relation", {
    "from_entity": "john-doe",
    "to_entity": "python-project"
})

观察管理

添加观察

result = await session.call_tool("add_observation", {
    "entity": "python-project",
    "observation": "Completed initial prototype"
})

查询功能

搜索记忆

result = await session.call_tool("search_memory", {
    "query": "most recent workout"
})

获取完整图谱

result = await session.call_tool("get_graph", {})

清除记忆

result = await session.call_tool("flush_memory", {})

数据规则

实体名称

  • 小写字母开头
  • 可包含字母、数字和连字符
  • 最大长度100字符
  • 示例: python-project, meeting-notes-2024

实体类型

支持: person, concept, project, document, tool, organization, location, event

关系类型

支持: knows, contains, uses, created, belongs-to, depends-on, related-to

观察

  • 非空字符串
  • 最大长度500字符
  • 每个实体唯一
  • 应为客观陈述

错误处理

服务器使用标准错误类型:

  • NOT_FOUND: 未找到实体
  • VALIDATION_ERROR: 无效输入
  • ALREADY_EXISTS: 资源已存在
  • INVALID_RELATION: 无效关系
  • INTERNAL_ERROR: 服务器错误
if not result.success:
    if result.error_type == "NOT_FOUND":
        print(f"未找到实体: {result.error}")
    elif result.error_type == "VALIDATION_ERROR":
        print(f"验证错误: {result.error}")
    # 处理其他错误类型...