家谱内存MCP服务器
一个生产就绪、自包含的家谱研究存储服务器,旨在作为LLM代理的MCP工具运行。该服务存储结构化的系谱数据,如人员、事件、地址、关系、来源和附件,同时为自动化研究代理提供一个干净的工具API。
本自述文件包括:
- 概述
- 特性
- 需求
- 目录结构
- 安装
- 部署
- 重置数据库
- 备份和恢复
- 工具参考(摘要)
- 让我们加密TLS(Traefik)
- 故障排除
- 许可证
______________________________________________________________________
概述
家谱内存MCP服务器公开了AI代理可以调用的工具端点:
- 添加和搜索人员
- 记录事件、地址、职业、关系
- 将元数据存储在归档源上
- 日志网络抓取
- 保存附件
- 跟踪重复项和验证状态
后端: PostgreSQL 16 服务器: Python快速API+MCP
______________________________________________________________________
特性
- 完整家谱数据模型
- 模块化MCP工具定义
- 基于UUID的安全主键
- 抓取日志以避免重复抓取
- 附件元数据+可选下载器
- 关系映射和重复标记
- 已准备好进行集装箱化部署
______________________________________________________________________
需求
- 码头工人
- Docker Compose(建议使用v2)
- Python 3.11+如果在容器外运行
可选生产组件:
- Traefik(反向代理)
- 让我们加密TLS
- 场外备份
______________________________________________________________________
目录结构
genealogy-memory-mcp/
├── Dockerfile
├── server.py
├── schema.sql
├── requirements.txt
├── reset_genealogy_memory.sh
├── docker-compose.production.yml
├── docker-compose.override.yml
└── .env.example______________________________________________________________________
安装
1.克隆存储库
git clone https://github.com/yourname/genealogy-memory-mcp.git
cd genealogy-memory-mcp2.复制环境文件
cp .env.example .env必要时调整凭据。
3.构建容器
docker build -t genealogy-memory-mcp .______________________________________________________________________
部署
用途:
docker compose -f docker-compose.yml --env-file .env up -d生产包括:
- 重新启动策略(
restart: always) - 两种服务的健康检查
- 命名卷用于稳定的数据库存储
环境变量
设置这些 .env:
DB_HOST=genealogy-memory-db
DB_PORT=5432
DB_NAME=genealogy
DB_USER=genealogy
DB_PASSWORD=your_secure_password______________________________________________________________________
重置数据库
使用重置工具:
./reset_genealogy_memory.sh这将:
- 停止集装箱
- 移除容器
- 摧毁
db-data目录(或DATA_DIR以(权力)否决 - 重新创建PostgreSQL
- 应用
schema.sql
覆盖路径:
DATA_DIR=/custom/dir SCHEMA_FILE=./schema.sql ./reset_genealogy_memory.sh这 删除所有家谱数据.
______________________________________________________________________
备份和恢复
备份PostgreSQL
docker exec genealogy-memory-db pg_dump -U genealogy genealogy > backup.sql恢复
cat backup.sql | docker exec -i genealogy-memory-db psql -U genealogy -d genealogy______________________________________________________________________
工具参考(摘要)
下面是此服务器公开的MCP工具的简明摘要。每个工具都可用于任何兼容MCP的客户端或代理。
个人工具
- add_person –创建新的人员记录。
- get_person –通过UUID检索人员。
- 查找_人员_简单 –按部分名称搜索。
- set_person_已验证 –将某人标记为已验证/未验证。
- 集合_人员_状态 –更新研究状态和注释。
源代码工具
- add_source –为存档或外部记录添加元数据。
事件工具
- add_事件 -添加生活事件(出生、结婚、死亡等)。
- list_person_events –列出一个人的事件。
专业工具
- add_职业 添加工作或职业。
- 列表_人员_职业 –列出一个人的所有工作。
地址工具
- 添加地址 –添加地址或居住信息。
- 列表_人员_地址 列出一个人的地址。
随机工具
- 添加附件 –为附件添加元数据。
- 添加附件元数据 –注册可下载的附件。
- 员工专用附件 –下载标记为提取的附件。
评论工具
- 添加注释 –添加免费文本评论。
- list_person_comments –列出某人的评论。
关系工具
- 添加关系 –建立关系(父母、配偶、兄弟姐妹等)。
- get_person_关系 为一个人建立关系。
- set_possible_duplicate_of –将记录标记为可能的重复项。
爬行工具
- log_crawl –日志抓取URL元数据。
- get_unprocessed_crawls –列出需要处理的爬网条目。
- mark_crawl已处理 –将爬网记录标记为已处理。
______________________________________________________________________
让我们加密TLS(Traefik)
要使用Traefik/Let’s Encrypt在HTTPS后面运行MCP服务器:
需求
- 域名(例如:
genealogy.yourdomain.com) - 指向服务器公共IP的DNS
- Traefik作为反向代理运行
- 端口80和443打开
Traefik标签示例
添加到生产中的MCP服务组成:
labels:
- "traefik.enable=true"
- "traefik.http.routers.genealogy.rule=Host(`genealogy.yourdomain.com`)"
- "traefik.http.routers.genealogy.entrypoints=websecure"
- "traefik.http.routers.genealogy.tls.certresolver=letsencrypt"
- "traefik.http.services.genealogy.loadbalancer.server.port=8020"这暴露了:
https://genealogy.yourdomain.com使用Let's Encrypt的自动TLS。
Traefik必须单独设置:
- ACME存储(
acme.json) - 让我们加密解析器
- Web和websecure入口点
______________________________________________________________________
故障排除
Postgres尚未就绪
如果API显示连接失败,请确保:
docker exec genealogy-memory-db pg_isready -U genealogy -d genealogy无法访问MCP
检查日志:
docker logs genealogy-memory集装箱启动时发生碰撞
可能是架构不匹配:
docker exec -it genealogy-memory-db psql -U genealogy -d genealogy -c "\dt"确认表存在。
______________________________________________________________________
许可证
麻省理工学院
______________________________________________________________________
