Brcna — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Brcna (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Server MCP per l'analisi di dati Bulk RNA-seq tramite agenti LLM. Permette di interrogare un dataset in linguaggio naturale. Esegue codice R e Python in un container Docker isolato, con anonimizzazione automatica dei campioni e controllo sulla privacy degli output.
agente che supporti il protocollo MCP)
cd container
docker build -t rnaseq-executor:latest .Nel container vengono installati pacchetti di R (DESeq2, edgeR, limma, clusterProfiler, fgsea) e le librerie di annotazione (org.Hs.eg.db, org.Mm.eg.db) per garantire funzionalita offline.
pip install -e .Registra il server nel tuo client MCP con questi parametri:
| Parametro | Valore |
|---|---|
| Comando | rnaseq-mcp |
COUNTS_FILE | percorso assoluto a counts.csv |
METADATA_FILE | percorso assoluto a metadata.csv |
I file di input consistono in 2 CSV:
counts.csv — matrice geni × campioni (gene ID come indice di riga)metadata.csv — tabella campioni × variabili (stesso indice di counts.csv)Una volta connesso il server, i tool disponibili sono:
| Tool | Descrizione |
|---|---|
list_data_files | Elenca i file in /data |
read_table | Anteprima di un CSV |
execute_r | Esegue codice R (sessione persistente) |
execute_python | Esegue codice Python (namespace persistente) |
get_outputs | Recupera i risultati da /output |
describe_session | Stato della sessione e pacchetti disponibili |
reset_session | Azzera container, stato e output |
Esempio di sessione:
Analizza i dati RNA-seq in /data confrontando treated vs control,
correggi per batch e genera volcano plot e heatmap.Viene fornito un esempio prompt di sistema in prompts/system_prompt.md.
All'avvio, il server:
S1, S2, ..., SNLa corrispondenza S1 → nome_reale viene scritta su host nel file:
/tmp/rnaseq-<session_id>/host_only/sample_mapping.jsonIl file non è montato nel container e non è accessibile tramite i tool MCP — il modello non può mai risalire ai nomi originali. Il formato è:
{ "S1": "nome_originale_1", "S2": "nome_originale_2", ... }Il file viene eliminato alla chiusura del server (o alla chiamata di reset_session). Per conservarlo, copialo manualmente prima di terminare la sessione:
cp /tmp/rnaseq-*/host_only/sample_mapping.json ./sample_mapping.jsonI file scritti in /output dal codice R/Python sono montati su host nella directory:
/tmp/rnaseq-<session_id>/output/Sono accessibili direttamente dal filesystem dell'host durante tutta la sessione, senza dover passare per il tool get_outputs. Quest'ultimo è utile principalmente per restituire i risultati al modello (ad es. per leggere una tabella CSV o visualizzare un plot nel contesto della conversazione).
I file vengono eliminati alla chiusura del server o alla chiamata di reset_session. Per conservarli:
cp -r /tmp/rnaseq-*/output/ ./risultati/DESeq2, edgeR, limma, ggplot2, pheatmap, ComplexHeatmap, EnhancedVolcano, clusterProfiler, fgsea, msigdbr, org.Hs.eg.db, org.Mm.eg.db, AnnotationDbi
MIT License — Copyright (c) 2026 Stefano Barbi
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.