Design · MODEL CONTEXT PROTOCOL

sirusb samtools mcp

A Model Control Protocol implementation for samtools, providing a standardized interface for working with SAM/BAM/CRAM files.

连接能力

sirusb samtools mcp 为 AI Agent 提供什么

  • View and convert SAM/BAM/CRAM files
  • Sort alignment files
  • Index BAM/CRAM files
  • Generate statistics
  • Merge multiple BAM files
  • Calculate read depth
  • Index FASTA files
  • And more...
  • **File Format Support**: Handle SAM (text), BAM (binary), and CRAM (compressed) alignment files
  • **Format Conversion**: Convert between SAM, BAM, and CRAM formats seamlessly
  • **Region-Specific Analysis**: Extract and analyze specific genomic regions
  • **Flag-Based Filtering**: Filter reads based on SAM flags
  • **Performance Optimization**: Multi-threaded operations for sorting and merging
  • **Statistical Analysis**: Generate comprehensive alignment statistics
  • Clone the repository:
  • Install dependencies:
  • View BAM file:
  • Sort BAM file:
  • Index BAM file:
  • View specific region with flags:
  • Sort by read name:
  • Calculate depth with multiple input files:

安全

MCP 收录不等于安全审核

MCP 服务器可能获得模型上下文、凭据、本地文件或调用外部系统的权限。连接 Agent 前,请检查代码、环境变量、网络行为、软件包来源与维护状态。

README

仓库文档

MseeP.ai Security Assessment Badge

SAMtools MCP (Model Control Protocol)

A Model Control Protocol implementation for SAMtools, providing a standardized interface for working with SAM/BAM/CRAM files.

Features

  • View and convert SAM/BAM/CRAM files
  • Sort alignment files
  • Index BAM/CRAM files
  • Generate statistics
  • Merge multiple BAM files
  • Calculate read depth
  • Index FASTA files
  • And more...

Core Capabilities

  • File Format Support: Handle SAM (text), BAM (binary), and CRAM (compressed) alignment files
  • Format Conversion: Convert between SAM, BAM, and CRAM formats seamlessly
  • Region-Specific Analysis: Extract and analyze specific genomic regions
  • Flag-Based Filtering: Filter reads based on SAM flags
  • Performance Optimization: Multi-threaded operations for sorting and merging
  • Statistical Analysis: Generate comprehensive alignment statistics

Tools Overview

Tool Description Key Features
view View and convert alignment files - Format conversion (SAM/BAM/CRAM)
- Region filtering
- Flag-based filtering
- Header manipulation
sort Sort alignment files - Coordinate-based sorting
- Name-based sorting
- Memory per thread control
- Multi-threading support
index Index BAM/CRAM files - BAI index generation
- CSI index support
- CRAM index creation
merge Merge multiple BAM/CRAM files - Multi-file merging
- Thread-enabled processing
- Header reconciliation
depth Calculate read depth - Per-base depth calculation
- Region-specific analysis
- Multi-file support
flagstat Generate alignment statistics - Comprehensive flag statistics
- Quality checks
- Paired-end metrics
idxstats BAM/CRAM index statistics - Reference sequence stats
- Mapped/unmapped counts
- Length information
faidx Index FASTA files - FASTA indexing
- Region extraction
- Sequence retrieval

Installation

Using Docker (Recommended)

The easiest way to use SAMtools MCP is through Docker:

# Pull the Docker image
docker pull nadhir/samtools-mcp:latest

# Run the container
docker run -it --rm nadhir/samtools-mcp:latest

# To process BAM files, mount a volume:
docker run -it --rm -v /path/to/your/bam/files:/data nadhir/samtools-mcp:latest

Local Installation

  1. Clone the repository:
git clone https://github.com/your-username/samtools_mcp.git
cd samtools_mcp
  1. Install dependencies:
pip install uv
uv pip install -r requirements.txt

Configuration

MCP Server Configuration

To configure the MCP server to use the Docker image, add the following to your MCP configuration file:

{
  "servers": {
    "samtools": {
      "type": "docker",
      "image": "nadhir/samtools-mcp:latest",
      "volumes": [
        {
          "source": "/path/to/your/data",
          "target": "/data"
        }
      ]
    }
  }
}

Local MCP Configuration

To configure the MCP to run using uv, add the following to your ~/.cursor/mcp.json:

{
  "samtools_mcp": {
    "command": "uv",
    "args": ["run", "--with", "fastmcp", "fastmcp", "run", "/path/to/samtools_mcp.py"]
  }
}

Replace /path/to/samtools_mcp.py with the actual path to your samtools_mcp.py file.

Usage

Basic Commands

  1. View BAM file:
from samtools_mcp import SamtoolsMCP

mcp = SamtoolsMCP()
result = mcp.view(input_file="/data/example.bam")
  1. Sort BAM file:
result = mcp.sort(input_file="/data/example.bam", output_file="/data/sorted.bam")
  1. Index BAM file:
result = mcp.index(input_file="/data/sorted.bam")

Advanced Usage

  1. View specific region with flags:
result = mcp.view(
    input_file="/data/example.bam",
    region="chr1:1000-2000",
    flags_required="0x2",
    output_format="SAM"
)
  1. Sort by read name:
result = mcp.sort(
    input_file="/data/example.bam",
    output_file="/data/namesorted.bam",
    sort_by_name=True
)
  1. Calculate depth with multiple input files:
result = mcp.depth(
    input_files=["/data/sample1.bam", "/data/sample2.bam"],
    region="chr1:1-1000000"
)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

在 GitHub 查看 README

社区

收藏、评分与讨论

正在载入社区数据…