HelixMCP(生物MCP结构网关)
用于生物信息学计算+数据库工具的受控、可重复的MCP网关骨架:
- 工件优先数据模型(句柄、元数据、预览)
- PNG工件被识别为
image/png具有确定性标头预览元数据 - 策略门控工具调用(分配列表+配额)
- 运行/来源捕获(输入、输出、日志、校验和)
- Docker执行后端(只读rootfs,默认无网络)
- 用于意图级工具的MCP服务器界面
此存储库是有意创建的 计算机模拟 仅限于:它侧重于确定性执行、验证和作为软件的工件/来源处理。
快速入门(开发)
npm install
npm run dev测试
npm test
HELIXMCP_TEST_DOCKER=1 npm test混合工具包示例(Docker或Slurm)
samtools_flagstat支持backend: "docker" | "slurm"(通过策略默认;回退到"docker").- 这是相同的工具契约和确定性
run_id,后端选择执行结构(即时Docker vs排队Slurm)。 - 随着
backend: "slurm",工具检查点queued并返回arun_id加上Slurm元数据;使用slurm_job_collect摄入已申报out/输出为工件。 - 集
execution.default_backend: "slurm"在策略中将Slurm设置为默认值(需要slurm策略配置)。 - 有关集群烟雾测试,请参阅
docs/slurm_cluster_smoke.md.
FASTQ质量控制包(Slurm多步)
这 qc_bundle_fastq 该工具具有确定性和审计友好性。开 backend: "slurm" 它从不投票;只有当运行状态和工件在Postgres中可见时,它才会前进。
- 呼叫
qc_bundle_fastq(返回phase="fastqc_submitted"和expected_collect_run_ids). - 收集每次FastQC运行:调用
slurm_job_collect对于列出的每个跑步id。 - 呼叫
qc_bundle_fastq再次(返回phase="multiqc_submitted"以及要收集的MultiQC运行id)。 - 收集MultiQC运行:调用
slurm_job_collect对于该跑步id。 - 呼叫
qc_bundle_fastq最后一次得到phase="complete"最后bundle_report_artifact_id.
审计包导出(CLI)
导出并验证运行的离线审计包(目录或确定性) .tar):参见 docs/bundle_export.md.
配置
DATABASE_URL(可选):如果未设置,网关将使用内存中的Postgres(pg-mem)对于dev。GATEWAY_POLICY_PATH(默认值:policies/default.policy.yaml)GATEWAY_IMPORT_ROOT(可选):展开${GATEWAY_IMPORT_ROOT}在local_path_prefix_allowlist为了artifact_import随着local_path.OBJECT_STORE_DIR(默认值:var/objects)RUNS_DIR(默认值:var/runs):用于工具执行的每次运行工作区。AUTO_SCHEMA(默认值:true):适用db/schema.sql启动时(建议开发人员使用)。
下一步
- 支持Postgres+对象存储(请参阅
instructions.md) - 在策略边界后实现真正的执行器(Slurm/K8s适配器)
- 有关Slurm烟雾测试,请参阅
docs/slurm_cluster_smoke.md
许可证
Apache-2.0(见 LICENSE).
安全
看 SECURITY.md请通过GitHub安全公告(私人报告)报告漏洞。
稳定性
看 VERSIONING.md, TOOLPACK_ABI_V1.md,以及 EVENTS_V1.md 对于稳定性合同。
