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.
WHAT IT CONNECTS
What sirusb samtools mcp gives an 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:
SECURITY
An MCP listing is not a security review
An MCP server may receive model context, credentials, local files, or permission to call external systems. Review its code, requested environment variables, network behavior, package provenance, and maintenance status before connecting it to an agent.
README
Repository documentation
A Model Control Protocol implementation for SAMtools, providing a standardized interface for working with SAM/BAM/CRAM files.
- 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
| 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 |
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- Clone the repository:
git clone https://github.com/your-username/samtools_mcp.git
cd samtools_mcp- Install dependencies:
pip install uv
uv pip install -r requirements.txtTo 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"
}
]
}
}
}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.
- View BAM file:
from samtools_mcp import SamtoolsMCP
mcp = SamtoolsMCP()
result = mcp.view(input_file="/data/example.bam")- Sort BAM file:
result = mcp.sort(input_file="/data/example.bam", output_file="/data/sorted.bam")- Index BAM file:
result = mcp.index(input_file="/data/sorted.bam")- View specific region with flags:
result = mcp.view(
input_file="/data/example.bam",
region="chr1:1000-2000",
flags_required="0x2",
output_format="SAM"
)- Sort by read name:
result = mcp.sort(
input_file="/data/example.bam",
output_file="/data/namesorted.bam",
sort_by_name=True
)- Calculate depth with multiple input files:
result = mcp.depth(
input_files=["/data/sample1.bam", "/data/sample2.bam"],
region="chr1:1-1000000"
)Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
COMMUNITY