项目简介
Pedigree MCP Server是一个专为大型语言模型(LLM)应用设计的后端服务,它能将遗传学数据转换为标准化、专业级别的家族系谱图。该服务器严格遵循Bennett 2008 NSGC(美国遗传咨询师学会)的指南,以高质量PNG图像形式输出系谱图。它不仅能够高效地生成可视化图表,还能提供详细的系谱数据格式文档,帮助LLM客户端理解和准备数据。
主要功能点
- 生成专业遗传系谱图: 根据输入的家族成员数据(包含姓名、性别、亲属关系、健康状况、遗传检测结果等),自动绘制并生成符合遗传学标准的PNG格式系谱图。支持Bennett 2008标准中的多种符号,例如:
- 个体符号: 方形代表男性,圆形代表女性,菱形代表性别未知,小三角形代表胎死腹中/流产/终止妊娠。
- 健康状态: 填充符号代表受影响个体,斜线穿过符号代表已故,中间的圆点代表遗传病携带者,符号内的"P"代表怀孕。
- 亲属关系: 连接线表示婚姻或同居关系,双线表示近亲联姻(服务器会自动检测),水平条连接双胞胎(同卵或异卵)。
- 特殊情况: 符号周围的括号表示收养个体。
- 提供系谱数据格式文档: 能够获取关于系谱图数据格式的完整、全面的文档。这些文档详细说明了如何构建有效的家族成员数据集,包括每个个体所需的属性(如'name', 'sex', 'mother', 'father')、可选属性(如'age', 'yob', 'conditions', 'gene_test')以及相应的约束和使用示例。
- 支持多种健康状况和遗传检测结果: 允许用户使用自由文本描述个体的健康状况或疾病('conditions'),服务器会根据独特的条件名称自动分配颜色并以饼图或象限图表示在个体符号上。同时,支持多种基因检测结果的标记(如'BRCA1+'或'BRCA2-'),这些结果将作为文本标签显示在个体符号下方。
- 智能布局与验证: 服务器会自动进行系谱图的布局,确保图表清晰易读。在生成系谱图之前,它还会对输入数据集进行验证,确保家族关系逻辑正确,例如母亲必须为女性,父亲必须为男性,以及所有引用的父母都必须存在于数据集中。
安装步骤
- 环境准备: 确保您的系统已安装Node.js 18+版本和npm(或pnpm)包管理器。
- 下载仓库: 通过Git克隆或直接下载'pedigree-mcp'项目的代码到您的本地目录。例如,在命令行中执行 'git clone https://github.com/zzgael/pedigree-mcp.git'。
- 进入项目目录: 切换到刚下载的项目根目录,例如 'cd pedigree-mcp'。
- 安装依赖: 在项目目录中运行 'npm install' 来安装所有必要的项目依赖。
- 构建项目: 运行 'npm run build' 命令来编译项目。编译成功后,可执行的服务器文件通常会在 'dist/index.js' 路径下。
服务器配置
为了让您的MCP客户端(如Claude Desktop, GPT Workbench)连接并使用Pedigree MCP服务器,您需要在客户端的MCP服务器配置中添加相应的JSON条目。以下是配置信息的示例和说明:
示例配置 (JSON格式):
{ "mcpServers": { "pedigree": { // MCP服务器的唯一名称,您可以自定义,用于在客户端中识别此服务器 "command": "node", // 启动MCP服务器进程的命令。如果使用Node.js运行构建后的文件,通常是"node" "args": ["/path/to/your/pedigree-mcp/dist/index.js"], // 传递给启动命令的参数数组。请务必将 "/path/to/your/pedigree-mcp" 替换为您的Pedigree MCP服务器的实际安装路径 "env": {} // 可选的环境变量配置,可以留空或根据需要添加 } } }
如果您选择使用'npx'从npm包启动(前提是'pedigree-mcp'已作为npm包安装或可通过npx直接运行):
{ "mcpServers": { "pedigree": { "command": "npx", // 启动MCP服务器进程的命令,使用"npx"可以直接运行npm包 "args": ["pedigree-mcp"], // 传递给npx的参数,即npm包的名称 "env": {} } } }
请将上述JSON配置添加到您的MCP客户端的配置文件中。
基本使用方法
一旦MCP客户端成功连接并识别了Pedigree MCP服务器,您就可以通过调用其提供的工具来生成家族系谱图:
-
获取文档 ('get_pedigree_documentation'):
- 用途: 在您开始构建家族成员数据之前,强烈建议您首先调用此工具。它将返回关于系谱数据格式、可用属性、符号约定和示例的详细文档。
- 调用方式: 通过MCP客户端调用名为 'get_pedigree_documentation' 的工具,无需任何参数。
- 返回值: 一个包含详细文本内容的响应,您可以在客户端中阅读。
-
生成系谱图 ('generate_pedigree'):
- 用途: 当您已经准备好符合文档中描述的家族成员数据(一个 'Individual' 对象的数组)后,调用此工具来生成系谱图的PNG图像。
- 调用方式: 通过MCP客户端调用名为 'generate_pedigree' 的工具,并提供以下参数:
- 'dataset' (必需,数组): 一个JSON数组,其中每个元素都是一个'Individual'对象,代表一个家族成员。每个'Individual'对象应包含'name'(唯一标识符)、'sex'("M"、"F"或"U")、以及可选的'mother'、'father'(引用父母的'name')、'conditions'(疾病列表)、'proband'等属性。
- 'width' (可选,数字): 生成图像的宽度(像素),默认值为800。
- 'height' (可选,数字): 生成图像的高度(像素),默认值为600。
- 'symbol_size' (可选,数字): 系谱图中每个个体符号的直径(像素),默认值为35。
- 'background' (可选,字符串): 图像的背景颜色,例如'"#ffffff"'(白色),默认值为'"#ffffff"'。
- 'labels' (可选,字符串数组): 指定要在个体符号下方显示的额外文本标签,例如'["age"]'(显示年龄)、'["yob"]'(显示出生年份)或'["age", "yob"]'。疾病和基因检测标签总是自动显示。
- 返回值: 成功时,响应将包含两部分内容:
- 一段文本,提供系谱图的元数据,例如个体数量、代数和图像尺寸。
- 一个PNG图像数据(Base64编码),您可以直接在客户端中查看或保存。
示例:调用'generate_pedigree'工具并传入家族数据 您的MCP客户端调用可能类似这样,传入一个家族成员的JSON数组作为'dataset'参数:
[ {"name": "MGF", "sex": "M", "top_level": true}, {"name": "MGM", "sex": "F", "top_level": true, "conditions": [{"name": "Breast cancer", "age": 55}]}, {"name": "Mother", "sex": "F", "mother": "MGM", "father": "MGF", "conditions": [{"name": "Breast cancer", "age": 42}]}, {"name": "Father", "sex": "M", "top_level": true}, {"name": "Proband", "display_name": "Sarah", "sex": "F", "mother": "Mother", "father": "Father", "proband": true, "age": 25, "brca1_gene_test": {"type": "T", "result": "P"}} ]
服务器将处理此数据并返回相应的系谱图PNG图像。
信息
分类
AI与计算