References NSGC (National Society of Genetic Counselors) standardized pedigree nomenclature guidelines published in PubMed, ensuring compliance with Bennett 2008/2022 standards for medical pedigree documentation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pedigree MCP Servercreate a pedigree for a family with BRCA1 mutations across three generations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pedigree MCP Server
Installation
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"pedigree": {
"command": "npx",
"args": ["pedigree-mcp"],
"env": {}
}
}
}Build from Source
If you prefer to build from source:
git clone https://github.com/zzgael/pedigree-mcp.git
cd pedigree-mcp
npm install
npm run buildThen use in your MCP client configuration:
{
"mcpServers": {
"pedigree": {
"command": "node",
"args": ["/absolute/path/to/pedigree-mcp/dist/index.js"],
"env": {}
}
}
}Features
Bennett 2008 Standard Compliance
This implementation follows the NSGC Standardized Human Pedigree Nomenclature:
Symbol | Description | Property |
Square | Male |
|
Circle | Female |
|
Diamond | Unknown sex |
|
Filled shape | Affected individual |
|
Diagonal line | Deceased |
|
Arrow (lower-left) | Proband |
|
Double arrow (lower-left) | Consultand (person seeking counseling) |
|
Brackets [ ] | Adopted |
|
Double line | Consanguinity | Auto-detected from shared ancestors |
Text on double line | Consanguinity degree |
|
Horizontal bar | MZ (identical) twins |
|
Diagonal lines | DZ (fraternal) twins |
|
Dot in center | Carrier status |
|
Outlined dot | Obligate carrier (inferred) |
|
"P" inside symbol | Pregnancy |
|
"P" + weeks label | Pregnancy duration |
|
Small triangle | Early pregnancy loss (<20 weeks) |
|
Large triangle | Stillbirth (≥20 weeks) |
|
"EP" below symbol | Ectopic pregnancy |
|
Crossed lines (X) | Infertility |
|
Hash marks on line | Divorced/separated |
|
Line through offspring | No children by choice |
|
"A" in upper right | Ashkenazi ancestry |
|
"*" in upper left | Genetic anticipation |
|
"d. XXy" label | Age at death (auto-calculated) |
|
Arrow + "OUT" label | Adopted OUT (placed for adoption) |
|
Dashed brackets | Foster placement (temporary) |
|
Roman numerals I, II, III | Birth order in sibling group |
|
"E" marker (blue) | ART - Egg donor conception |
|
"S" marker (blue) | ART - Sperm donor conception |
|
"Em" marker (blue) | ART - Embryo donor conception |
|
"GC" marker (blue) | ART - Gestational carrier (surrogate) |
|
"SAB" label | Pregnancy outcome - Spontaneous abortion |
|
"TOP" label | Pregnancy outcome - Termination of pregnancy |
|
"SB" label | Pregnancy outcome - Stillbirth |
|
"Het" label (green) | Gene copy number - Heterozygous |
|
"Hom" label (green) | Gene copy number - Homozygous |
|
"CH" label (green) | Gene copy number - Compound heterozygous |
|
Dashed partnership line | Unmarried/common-law partnership |
|
Conditions (Bennett Standard - FREE TEXT)
Per Bennett 2008 standard, conditions are documented using free text. Simply provide a conditions array with any disease/condition name:
{
"conditions": [
{ "name": "Breast cancer", "age": 42 },
{ "name": "Ovarian cancer", "age": 55 }
]
}Examples:
{ "name": "Huntington's disease", "age": 45 }{ "name": "Type 2 diabetes" }(no age = affected status only){ "name": "Cystic fibrosis" }{ "name": "Hereditary hemochromatosis", "age": 38 }
Colors are auto-assigned from a palette based on unique condition names. Multiple conditions show as quadrants (male) or pie slices (female).
Genetic Testing Results
Supports any gene - use pattern {gene}_gene_test:
{
"brca1_gene_test": { "type": "T", "result": "P" },
"htt_gene_test": { "type": "T", "result": "P" },
"apoe_gene_test": { "type": "S", "result": "N" }
}Gene test result codes:
type:
T(tested),S(screening),-(unknown)result:
P(positive),N(negative),-(unknown/VUS)
Labels appear as: BRCA1+ (positive), HTT- (negative)
Tools
get_pedigree_documentation
Returns comprehensive documentation about the pedigree data format. Always call this first before generating a pedigree.
generate_pedigree
Generates a family pedigree tree in PNG or SVG format.
Parameters:
Parameter | Type | Default | Description |
|
| required | Array of family members |
|
| 800 | Image width in pixels |
|
| 600 | Image height in pixels |
|
| 35 | Node diameter in pixels |
|
| #ffffff | Background color |
|
| ['age'] | Attributes to display |
|
| 'png' | Output format: png (base64 image) or svg (XML text) |
Data Format
Individual Object
interface Individual {
// Required
name: string; // Unique ID (max 7 chars)
sex: "M" | "F" | "U"; // Male, Female, Unknown
// Identity
display_name?: string; // Human-readable name for display (max 13 chars)
top_level?: boolean; // Founding individual (no parents)
proband?: boolean; // Index case
// Relationships
mother?: string; // Mother's name (must exist in dataset)
father?: string; // Father's name (must exist in dataset)
// Demographics
age?: number; // Current age
yob?: number; // Year of birth
status?: number; // 0 = alive, 1 = deceased
// Twins (Bennett standard)
mztwin?: string; // MZ twin group ID (identical)
dztwin?: string; // DZ twin group ID (fraternal)
// Special indicators (Bennett standard)
carrier?: boolean; // Carrier status (dot in center)
pregnant?: boolean; // Current pregnancy (P inside symbol)
terminated?: boolean; // Stillbirth/SAB (small triangle)
divorced?: boolean; // Divorced from partner (hash marks)
noparents?: boolean; // Adopted (brackets around symbol)
// Conditions (Bennett standard - FREE TEXT)
conditions?: Array<{
name: string; // Any condition: "Breast cancer", "Huntington's disease", etc.
age?: number; // Age at diagnosis/onset
}>;
// Genetic tests (pattern: {gene}_gene_test)
brca1_gene_test?: { type: "-"|"S"|"T", result: "-"|"P"|"N" };
brca2_gene_test?: { type: "-"|"S"|"T", result: "-"|"P"|"N" };
// ... any gene test
}Examples
📸
See the full gallery of standardized pedigree scenarios demonstrating Bennett 2008/2022 compliance, including gender diversity, twins, consanguinity, ART indicators, and complex multi-generation families.
Basic Three-Generation Pedigree
[
{"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"}}
]Neurological Condition Pedigree
[
{"name": "GF", "sex": "M", "top_level": true, "status": 1, "conditions": [{"name": "Huntington's disease", "age": 52}]},
{"name": "GM", "sex": "F", "top_level": true},
{"name": "Father", "sex": "M", "mother": "GM", "father": "GF", "conditions": [{"name": "Huntington's disease", "age": 48}]},
{"name": "Mother", "sex": "F", "top_level": true},
{"name": "Proband", "sex": "M", "mother": "Mother", "father": "Father", "proband": true, "age": 25, "carrier": true}
]Twins Example
[
{"name": "Dad", "sex": "M", "top_level": true},
{"name": "Mom", "sex": "F", "top_level": true},
{"name": "Twin1", "sex": "M", "mother": "Mom", "father": "Dad", "mztwin": "mz1"},
{"name": "Twin2", "sex": "M", "mother": "Mom", "father": "Dad", "mztwin": "mz1"},
{"name": "DZTwin1", "sex": "M", "mother": "Mom", "father": "Dad", "dztwin": "dz1"},
{"name": "DZTwin2", "sex": "F", "mother": "Mom", "father": "Dad", "dztwin": "dz1"}
]Complex Family with Bennett Features
[
{"name": "GF", "sex": "M", "top_level": true, "status": 1},
{"name": "GM", "sex": "F", "top_level": true, "carrier": true},
{"name": "Father", "sex": "M", "mother": "GM", "father": "GF", "divorced": true},
{"name": "Mother", "sex": "F", "top_level": true},
{"name": "Child1", "sex": "F", "mother": "Mother", "father": "Father", "proband": true, "noparents": true},
{"name": "Loss", "sex": "U", "mother": "Mother", "father": "Father", "terminated": true}
]Development
# Install dependencies
npm install
# Run in development mode (watch)
npm run dev
# Run all tests
npm test
# Build for production
npm run build
# Type check
npx tsc --noEmitTesting
159 tests total covering:
Validation (parent references, gender constraints)
SVG rendering (all symbol types, indicators)
Condition markers and multi-condition pie charts
Gene test formatting
Twin rendering (MZ with bar, DZ without)
Consanguinity detection
Bennett 2008 compliance (carrier, pregnancy, termination, divorced)
Edge cases (deep pedigrees, wide generations, half-siblings)
References
License
MIT License - see LICENSE