dna-analysis-mcp

vlad-ds/dna-analysis-mcp

3.3

If you are the rightful owner of dna-analysis-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The DNA Analysis Desktop Extension (DXT) is a Model Context Protocol (MCP) server designed for analyzing DNA data with a focus on privacy protection. It is packaged as a Desktop Extension for easy installation across DXT-compatible applications.

Tools
  1. list_subjects

    Lists all available DNA subjects with optional regex filtering.

  2. get_subject_info

    Retrieves personal information about a specific subject.

  3. get_test_info

    Gets metadata about the DNA test for a specific subject.

  4. query_snp_data

    Queries SNP data for specific RSIDs (maximum 10 per query).

DNA Analysis Desktop Extension (DXT)

āš ļø IMPORTANT DISCLAIMER: This tool is for educational and personal research purposes only. It is not intended for medical diagnosis, treatment decisions, or clinical use. Always consult with qualified healthcare professionals and genetic counselors for any health-related questions or decisions. The authors assume no responsibility for any actions taken based on the information provided by this tool.

A Model Context Protocol (MCP) server for analyzing DNA data with privacy protection, packaged as a Desktop Extension (DXT) for easy installation across DXT-compatible applications.

🧬 Features

  • List DNA Subjects: Browse available DNA test subjects in your collection
  • Subject Information: Get personal information about individuals
  • Test Metadata: Access DNA test details (company, date, array version, etc.)
  • SNP Queries: Query specific genetic variants by RSID (max 10 per query for privacy)
  • Privacy-First: All data processing happens locally on your machine
  • Cross-Platform: Works on macOS, Windows, and Linux

šŸ“¦ Installation

Quick Install (Recommended)

  1. Download the latest .dxt file from GitHub Releases
  2. Simply double-click on dna-analysis-mcp.dxt to install automatically in Claude Desktop

Alternative Installation

If the double-click method doesn't work:

  1. Download the .dxt file

    • Get dna-analysis-mcp.dxt from the GitHub releases
    • Or build from source (see Development section below)
  2. Install via Claude Desktop

    • Open Claude Desktop
    • Go to Settings → Extensions
    • Drag the .dxt file on the window

Prerequisites

  • Node.js 16.0.0 or higher (automatically handled by the .dxt file)
  • Claude Desktop or other DXT-compatible application

Manual Claude Desktop Integration

If not using DXT, you can manually add to claude_desktop_config.json:

{
  "mcpServers": {
    "dna-analysis": {
      "command": "node",
      "args": ["/ABSOLUTE_PATH/dna-analysis-mcp/server/index.js"],
      "env": {
        "DNA_PROFILES_DIRECTORY": "~/dna-profiles"
      }
    }
  }
}

šŸ“ Data Setup

Creating Your DNA Profiles Directory

After installation, you need to create the DNA profiles directory and add your data:

# Create the main directory
mkdir -p ~/dna-profiles

# Create your first subject folder (replace 'john_doe' with desired name)
mkdir -p ~/dna-profiles/john_doe

Directory Structure

DNA profiles are organized in the configured directory (default: ~/dna-profiles/):

~/dna-profiles/
ā”œā”€ā”€ john_doe/
│   ā”œā”€ā”€ snp.txt           # Required: Raw genetic data
│   ā”œā”€ā”€ subject_info.txt  # Optional: Personal information
│   └── test_info.txt     # Optional: Test metadata
ā”œā”€ā”€ jane_smith/
│   ā”œā”€ā”€ snp.txt
│   └── test_info.txt
└── ...

AI-Assisted Setup from DNA Export Files

If you have a DNA export file from 23andMe, AncestryDNA, or other services, you can use an AI agent to automatically convert it to the correct format. Copy this prompt and share your DNA export file with an AI agent:

I have a DNA export file that I need to convert for use with the DNA Analysis MCP Server. Please help me:

1. Analyze my DNA export file and convert it to the required format:
   - Create a tab-delimited file called `snp.txt` with this exact header: `rsid	chromosome	position	allele1	allele2`
   - Extract all SNP data rows that have valid RSIDs (format: rs followed by numbers)
   - Ensure proper tab separation between columns

2. Extract any available metadata and create these optional files:
   - `subject_info.txt` - Any personal information (name, age, gender, ethnicity, etc.)
   - `test_info.txt` - Test details (company name, test date, array version, quality scores, etc.)

3. Set up the directory structure:
   - Create `~/dna-profiles/[subject_name]/` directory (use appropriate subject name)
   - Place all three files in that directory
   - Create the main `~/dna-profiles/` directory if it doesn't exist

Please process my DNA export file and create the properly formatted files in the correct directory structure.

Manual Example Setup

Alternatively, here's how to set up your first subject with example data manually:

# Create example subject folder
mkdir -p ~/dna-profiles/john_doe

# Create the required SNP data file
cat > ~/dna-profiles/john_doe/snp.txt << 'EOF'
rsid	chromosome	position	allele1	allele2
rs3131972	1	230710048	A	G
rs1815739	11	66328095	C	T
rs4988235	2	135851076	T	T
EOF

# Create optional subject info file
cat > ~/dna-profiles/john_doe/subject_info.txt << 'EOF'
Name: John Doe
Age: 35
Gender: Male
Ethnicity: European
Notes: Personal genetic analysis
EOF

# Create optional test info file
cat > ~/dna-profiles/john_doe/test_info.txt << 'EOF'
Company: 23andMe
Test Date: 2024-01-15
Array Version: v5
Quality Score: 99.2%
Total SNPs: 650000
EOF

Required Files

snp.txt - Tab-delimited genetic data compatible with major DNA testing companies:

rsid	chromosome	position	allele1	allele2
rs3131972	1	230710048	A	G
rs1815739	11	66328095	C	T
rs4988235	2	135851076	T	T

Optional Files

  • subject_info.txt - Demographics, background, notes about the individual
  • test_info.txt - Test company, date, array version, quality metrics

šŸ› ļø Available Tools

list_subjects

Lists all available DNA subjects with optional regex filtering.

Parameters:

  • pattern (optional): Regex pattern to filter subject names

get_subject_info

Retrieves personal information about a specific subject.

Parameters:

  • subject_name (required): Name of the subject

get_test_info

Gets metadata about the DNA test for a specific subject.

Parameters:

  • subject_name (required): Name of the subject

query_snp_data

Queries SNP data for specific RSIDs (maximum 10 per query).

Parameters:

  • subject_name (required): Name of the subject
  • rsids (required): Single RSID string or array of RSIDs

šŸ”’ Privacy & Security

Local-Only Processing

  • āœ… All DNA data remains on your computer
  • āœ… No data transmission to external servers
  • āœ… AI sees only requested SNP data, not entire genome
  • āœ… No bulk data export capabilities

Built-in Protections

  • Query Limits: Maximum 10 RSIDs per query
  • File Size Limits: 100MB maximum file size protection
  • Timeout Protection: 30-second operation timeouts
  • Input Validation: Strict RSID format validation

šŸš€ Development

Building the .dxt file from Source

If you want to build your own .dxt file:

# Clone the repository
git clone https://github.com/vlad-ds/dna-analysis-mcp.git
cd dna-analysis-mcp

# Install dependencies
npm install

# Build the TypeScript source
npm run build

# Create the .dxt file
npx @anthropic-ai/dxt pack

This will create dna-analysis-mcp.dxt in the project root, ready for installation.

Development Commands

# Development build and run
npm run dev

# Clean build artifacts
npm run clean

# Test the server manually
node server/index.js

Testing

# Basic functionality test
npm test

# Manual testing with sample data
node server/index.js

šŸ‘¤ Author

Vlad Gheorghe

šŸ†˜ Support


āš ļø Important Privacy Notice: This extension is designed for personal use with your own genetic data. Always ensure you have proper consent and legal authority to analyze any DNA data you process.