- Home
- MCP servers
- Bio-MCP FastQC Server
Bio-MCP FastQC Server
- python
0
GitHub Stars
python
Language
5 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
You can run FastQC and MultiQC quality control analyses on sequencing data using a Bio-MCP FastQC Server. It lets you perform QC on single files or batches, and generate combined reports, making it easier to gauge data quality and streamline downstream workflows.
How to use
You interact with the server through an MCP client to request quality control analyses. Use the single-file tool to analyze an individual FASTQ or FASTA file and get a detailed QC report. Use the batch tool to run QC on many files in a directory, then generate a consolidated MultiQC report to summarize results across samples. If you are working with large datasets or many files, you can enable a queue system to run analyses asynchronously and retrieve results when they are ready.
How to install
Prerequisites you need before installing: Python is required to run the server. You should also have Git installed for cloning the repository.
# Clone and install
git clone https://github.com/bio-mcp/bio-mcp-fastqc.git
cd bio-mcp-fastqc
pip install -e .
# Or install directly
pip install git+https://github.com/bio-mcp/bio-mcp-fastqc.git
Configure the MCP client to connect to the server by adding an entry for this MCP in your Claude Desktop configuration.
{
"mcpServers": {
"bio_fastqc": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/bio-mcp-fastqc"
}
}
}
Additional setup and notes
If you plan to run analyses from the command line or automate tasks, you may need to set environment variables to customize paths, timeouts, and queue integration. Common variables include paths to the FastQC and MultiQC executables, maximum file size, and processing timeouts. When using a queue for asynchronous processing, you can configure the queue URL so that long-running jobs are handled efficiently.
Configuration and environment
The server supports both local execution and asynchronous processing through a queue system. You can enable a queue by providing a queue URL so that large datasets or batch analyses run in the background and you can check their status later.
services:
fastqc-server:
build: .
volumes:
- ./data:/data
environment:
- BIO_MCP_QUEUE_URL=http://queue-api:8000
depends_on:
- queue-api
`
Security and maintenance
Keep the server dependencies up to date by updating the Python environment and re-installing if needed. When exposing the server over a network, ensure that access is controlled and that any queue or storage endpoints are secured.
Troubleshooting and tips
If analyses do not start, verify that the Python runtime can locate the src.server module and that the working directory is correct. For batch analyses, confirm that the input directory contains valid FASTQ/FASTA files and that file permissions allow read access.
Notes
This server is designed to work with FastQC and MultiQC to provide detailed quality control insights for sequencing data, including per-base quality metrics, GC content, adapter contamination, and duplication levels. Use the generated reports to guide downstream QC steps such as trimming or filtering.
Available tools
fastqc_single
Run FastQC on a single FASTQ or FASTA file and return a detailed QC report with pass/warn/fail status per module.
fastqc_batch
Run FastQC on all FASTQ/FASTA files within a directory and return summary statistics for all processed files.
multiqc_report
Generate a MultiQC report that aggregates FastQC results (and other analyses) into an interactive HTML document.
fastqc_single_async
Queue a single-file FastQC analysis for asynchronous processing.
fastqc_batch_async
Queue a batch FastQC analysis for asynchronous processing.
multiqc_report_async
Queue the generation of a MultiQC report for asynchronous processing.
get_job_status
Check the progress of an asynchronous job.
get_job_result
Retrieve the result of a completed asynchronous job.
cancel_job
Cancel a running asynchronous job.