家庭物品知识图谱管理

一个基于Neo4j知识图谱和MCP协议的家庭物品追踪管理系统,支持物品、位置、分类及其关系的存储与查询。

  • by scoobydrew
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 scoobydrew/home-alog

使用说明

首页库存知识图谱

使用MCP和知识图跟踪家中物品的实验。

特性

  • Neo4j知识图谱:存储项目、位置、类别及其关系
  • MCP服务器:通过模型上下文协议公开知识图
  • 灵活的架构:跟踪具有购买日期、价值、数量和注释等属性的项目
  • 丰富的查询:按位置、类别查找项目,或获取详细的项目信息

先决条件

  1. Neo4j数据库:安装并运行Neo4j

    • 下载自 neo4j.com/下载
    • 或者使用Docker: docker run -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/your_password neo4j:latest
  2. Python 3.14+:此项目需要

设置

  1. 克隆并导航到项目:
    cd /run/media/drews/src/home-alog/home-alog
    

1.安装Neo4j

选项A:Docker(最简单)

docker run -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/your_password \
  neo4j:latest

选项B:下载

2.配置环境

cp .env.example .env
# Edit .env with your Neo4j password

3.安装依赖项

pip install -e .

4.填充样本数据

python examples/populate_sample_data.py

这将创建:

  • 5个地点(客厅、厨房、车库、工具箱、厨房抽屉)
  • 4个类别(电子产品、工具、厨房、家具)
  • 6个有关系的项目

5.运行MCP服务器

python -m home_alog.server.mcp_server

6.连接到克劳德桌面

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "home-alog": {
      "command": "python",
      "args": ["-m", "home_alog.server.mcp_server"],
      "cwd": "/run/media/drews/src/home-alog/home-alog/src",
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "your_password"
      }
    }
  }
}

项目结构

home-alog/
├── src/home_alog/
│   ├── database/
│   │   ├── __init__.py          # Database package exports
│   │   ├── connection.py        # Neo4j connection manager
│   │   ├── operations.py        # Graph CRUD operations
│   │   └── schema.py            # Graph schema definitions
│   ├── server/
│   │   ├── __init__.py          # Server package exports
│   │   └── mcp_server.py        # MCP server implementation
│   └── __init__.py              # Main package exports
├── examples/
│   └── populate_sample_data.py  # Sample data script
├── .env.example                 # Environment template
├── pyproject.toml               # Project dependencies
└── README.md                    # This file

可用工具

MCP服务器提供以下工具:

  • create_item -将新项目添加到库存
  • create_location -创建一个位置(房间、架子、盒子等)
  • create_category -创建项目类别
  • link_item_to_location -将物品放置在某个位置
  • link_item_to_category -将项目分配到类别
  • find_items_in_location -查找某个位置的所有项目
  • find_items_by_category -查找类别中的所有项目
  • get_item_details -获取详细的商品信息

示例用法

看 examples/populate_sample_data.py 以获取用示例数据填充图形的完整示例。

图形架构

节点类型

  • 物品:名称、描述、购买日期、价值、数量、备注
  • 位置:名称、类型(房间/架子/盒子)、描述
  • 类别:名称、描述
  • 人:名称

关系类型

  • LOCATED IN:项目→ 位置
  • BELONGS_TO:项目→ 类别
  • 所有权_由:项目→ 人
  • 包含:位置→ 项目(与LOCATED_IN相反)

发展

要直接浏览图表,请执行以下操作:

  1. 打开Neo4j浏览器http://localhost:7474
  2. 运行Cypher查询,例如:
    MATCH (i:Item)-[:LOCATED_IN]->(l:Location)
    RETURN i.name, l.name