NGS360 MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NGS360_API_URL | No | Base URL of the NGS360 API | http://localhost:8000 |
| NGS360_API_TOKEN | Yes | Bearer token for authentication |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_runsC | List sequencing runs with pagination and sorting. Args: page: Page number (1-indexed) per_page: Number of items per page sort_by: Field to sort by sort_order: Sort order (asc or desc) |
| get_runB | Get details of a specific sequencing run. Args: run_id: The run identifier (e.g., '240101_A00000_0001_FLOWCELLID') |
| create_runC | Create a new sequencing run. Args: run_id: Unique run identifier run_date: Run date in YYYY-MM-DD format machine_id: Instrument machine ID run_number: Run number (string) flowcell_id: Flowcell identifier experiment_name: Optional experiment name run_folder_uri: Optional URI to the run folder status: Optional status (In Progress, Uploading, Ready, Resync) run_time: Optional run time in HHMM format (4 digits) |
| update_run_statusA | Update the status of a sequencing run. Args: run_id: The run identifier run_status: New status (In Progress, Uploading, Ready, Resync) |
| search_runsC | Search sequencing runs using OpenSearch. Args: query: Search query string page: Page number (1-indexed) per_page: Number of items per page sort_by: Field to sort by (run_id or experiment_name) sort_order: Sort order (asc or desc) |
| get_run_samplesheetC | Get the sample sheet for a sequencing run. Args: run_id: The run identifier |
| get_run_metricsC | Get demultiplexing metrics for a sequencing run. Args: run_id: The run identifier |
| list_demux_workflowsB | List available demultiplex workflows. |
| get_demux_workflow_configB | Get configuration for a specific demultiplex workflow. Args: workflow_id: The workflow identifier run_id: Optional run ID to prepopulate s3_run_folder_path |
| submit_demux_jobC | Submit a demultiplex workflow job. Args: workflow_id: The workflow identifier run_id: The run to demultiplex inputs: Workflow input parameters |
| associate_sample_with_runB | Associate a sample with a sequencing run. Args: run_id: The run identifier sample_id: UUID of the sample to associate |
| get_samples_for_runB | List sample associations for a sequencing run. Args: run_id: The run identifier |
| clear_samples_for_runA | Remove all sample associations and cleanup for a run (re-demux scenario). Args: run_id: The run identifier |
| remove_sample_from_runC | Remove a single sample association from a run. Args: run_id: The run identifier sample_id: The sample identifier to remove |
| list_jobsA | List batch jobs with optional filtering and sorting. Args: skip: Number of records to skip limit: Maximum number of records to return user: Optional filter by username status_filter: Optional filter by status (SUBMITTED, PENDING, RUNNABLE, STARTING, RUNNING, SUCCEEDED, FAILED) sort_by: Field to sort by (defaults to submitted_on) sort_order: Sort order (asc or desc) |
| get_jobC | Get details of a specific batch job. Args: job_id: The job UUID |
| submit_jobB | Submit a new batch job to AWS Batch. Args: job_name: Name for the batch job job_definition: AWS Batch job definition ARN job_queue: AWS Batch job queue name command: Command string to execute user: Username submitting the job environment: Optional list of environment variables [{"name": "KEY", "value": "VAL"}] |
| update_jobB | Update a batch job's status or metadata. Args: job_id: The job UUID log_stream_name: Optional CloudWatch log stream name status: Optional new status (SUBMITTED, PENDING, RUNNABLE, STARTING, RUNNING, SUCCEEDED, FAILED) viewed: Optional viewed flag |
| get_job_logC | Get the full log output for a batch job. Args: job_id: The job UUID |
| get_job_log_paginatedA | Get paginated log output for a batch job. Args: job_id: The job UUID limit: Number of log lines to return (1-10000) next_token: Pagination token from previous response start_from_head: Start from beginning (true) or end (false) |
| list_projectsB | List projects with pagination and sorting. Args: page: Page number (1-indexed) per_page: Number of items per page sort_by: Field to sort by sort_order: Sort order (asc or desc) |
| get_projectB | Get details of a specific project. Args: project_id: The project identifier (e.g., 'P-1234') |
| create_projectB | Create a new project. Args: name: Project name attributes: Optional list of key-value attributes [{"key": "type", "value": "RNA-Seq"}] |
| update_projectA | Full replacement update of a project (PUT semantics). Attributes provided here replace all existing attributes. Args: project_id: The project identifier name: Optional new name attributes: Optional list of attributes (replaces all existing) |
| patch_projectA | Partially update a project (merge/upsert semantics). Unlike update_project, this does NOT remove attributes absent from the request. Args: project_id: The project identifier name: Optional new name attributes: Optional attributes to upsert |
| search_projectsB | Search projects by project_id or name. Args: query: Search query string page: Page number (1-indexed) per_page: Number of items per page sort_by: Field to sort by (project_id or name) sort_order: Sort order (asc or desc) |
| add_sample_to_projectC | Add a sample to a project. Args: project_id: The project identifier sample_id: Sample identifier string attributes: Optional sample attributes run_id: Optional run_id to associate the sample with |
| get_project_samplesC | Get samples for a project with pagination. Args: project_id: The project identifier skip: Number of records to skip limit: Maximum number of records to return sort_by: Field to sort by sort_order: Sort order (asc or desc) include_files: Whether to include file data for each sample |
| delete_sample_from_projectA | Delete a sample from a project (superuser only, irreversible). Args: project_id: The project identifier sample_id: The sample identifier to delete |
| submit_pipeline_jobB | Submit a pipeline job to AWS Batch for a project. Args: project_id: The project identifier action: Pipeline action (create-project or export-project-results) platform: Platform name (Arvados or SevenBridges) project_type: Pipeline workflow type (e.g., RNA-Seq, WGS) reference: Export reference (required for export action) auto_release: Auto-release flag for export action |
| ingest_vendor_dataC | Ingest vendor data for a project. Args: project_id: The project identifier files_uri: Source S3 bucket/prefix of data to ingest manifest_uri: S3 path to the vendor manifest |
| create_file_recordB | Create a new file record (external reference). At least one entity association is required. Args: uri: File location (s3://, file://, etc.) project_id: Project business key (string) sequencing_run_id: SequencingRun UUID qcrecord_id: QCRecord UUID pipeline_id: Pipeline UUID original_filename: Original filename before renaming size: File size in bytes source: Origin of file record created_by: User identifier storage_backend: Storage type (LOCAL, S3, AZURE, GCS) samples: Sample associations [{"sample_name": "S1", "role": "tumor"}] hashes: Hash values {"md5": "abc...", "sha256": "def..."} tags: Key-value metadata {"type": "alignment", "format": "bam"} |
| get_fileB | Get file metadata by UUID. Args: file_id: The file UUID |
| list_filesA | List or search files. Args: uri: Filter by URI (returns latest version) entity_type: Filter by entity type (PROJECT, SEQUENCING_RUN, SAMPLE, QCRECORD, PIPELINE) entity_id: Filter by entity ID (requires entity_type) include_archived: Include archived files page: Page number per_page: Items per page |
| get_file_versionsB | Get all versions of a file. Args: file_id: The file UUID (any version) |
| update_fileA | Update a file record (superuser only). Only provided fields are updated. Args: file_id: The file UUID uri: New URI original_filename: New original filename size: New file size source: New source created_by: New creator storage_backend: New storage backend |
| delete_fileA | Delete a file record and all associated data (superuser only, irreversible). Args: file_id: The file UUID |
| browse_s3A | Browse files and folders at an S3 URI. Args: uri: S3 URI to list (e.g., s3://bucket/folder/) |
| searchA | Search across all indices (projects, runs, samples) using OpenSearch. Args: query: Search query string n_results: Number of results to return per index |
| list_workflowsC | List workflows with pagination and sorting. Args: page: Page number (1-indexed) per_page: Number of items per page sort_by: Field to sort by sort_order: Sort order (asc or desc) |
| get_workflowC | Get details of a specific workflow. Args: workflow_id: The workflow UUID |
| create_workflowB | Create a new workflow identity. Args: name: Workflow name attributes: Optional key-value attributes [{"key": "category", "value": "alignment"}] |
| create_workflow_versionA | Create a new version for a workflow. Version number is auto-incremented. Args: workflow_id: The workflow UUID definition_uri: URI to the workflow definition file |
| list_workflow_versionsA | List all versions of a workflow. Args: workflow_id: The workflow UUID |
| get_workflow_versionA | Get a specific workflow version. Args: workflow_id: The workflow UUID version_id: The version UUID |
| set_workflow_aliasA | Set or update a workflow version alias (e.g., 'production'). Args: workflow_id: The workflow UUID alias: Alias name (e.g., production, development) workflow_version_id: UUID of the version to point to |
| list_workflow_aliasesA | List aliases for a workflow. Args: workflow_id: The workflow UUID alias: Optional filter to a specific alias name |
| delete_workflow_aliasC | Remove an alias from a workflow. Args: workflow_id: The workflow UUID alias: Alias name to remove |
| create_workflow_deploymentA | Deploy a workflow version on a specific platform. Args: workflow_id: The workflow UUID version_id: The version UUID engine: Platform name (e.g., Arvados, SevenBridges) external_id: Workflow identifier on the external platform |
| list_workflow_deploymentsA | List deployments for a workflow. Can list across all versions or for a specific version. Args: workflow_id: The workflow UUID version_id: Optional version UUID (if omitted, lists across all versions) alias: Optional alias filter (resolves to version) engine: Optional engine/platform filter |
| delete_workflow_deploymentC | Remove a platform deployment. Args: workflow_id: The workflow UUID version_id: The version UUID deployment_id: The deployment UUID |
| list_pipelinesB | List pipelines with pagination and sorting. Args: page: Page number (1-indexed) per_page: Number of items per page sort_by: Field to sort by sort_order: Sort order (asc or desc) |
| get_pipelineB | Get details of a specific pipeline. Args: pipeline_id: The pipeline UUID |
| create_pipelineB | Create a new pipeline (named collection of workflows). Args: name: Pipeline name version: Optional version string attributes: Optional key-value attributes workflow_ids: Optional list of workflow UUIDs to include |
| add_workflow_to_pipelineC | Add a workflow to a pipeline. Args: pipeline_id: The pipeline UUID workflow_id: UUID of the workflow to associate |
| remove_workflow_from_pipelineA | Remove a workflow from a pipeline. Args: pipeline_id: The pipeline UUID workflow_id: The workflow UUID to remove |
| create_qcrecordA | Create a new QC record with metrics and output files. Exactly one of project_id or sequencing_run_id must be provided. Args: project_id: Project-scoped record (e.g., P-1234) sequencing_run_id: Run-scoped record (run_id string) workflow_run_id: Optional workflow run UUID (provenance) metadata: Pipeline metadata {"pipeline": "RNA-Seq", "version": "2.0"} metrics: List of metric groups, each with: - name: Metric group name - samples: Optional [{"sample_name": "S1", "role": "tumor"}] - values: {"reads": 50000000, "alignment_rate": 95.5} output_files: Optional list of file records to create |
| get_qcrecordB | Get a specific QC record by UUID. Args: qcrecord_id: The QC record UUID |
| search_qcrecordsB | Search QC records with filters. Args: project_id: Filter by project ID sequencing_run_id: Filter by sequencing run_id string workflow_run_id: Filter by workflow run UUID latest: Return only newest record per scope (default True) page: Page number per_page: Results per page |
| search_qcrecords_advancedA | Search QC records with advanced filtering (POST). Args: filter_on: Filter dictionary, e.g.: {"project_id": "P-1234", "metadata": {"pipeline": "RNA-Seq"}} page: Page number per_page: Results per page latest: Return only newest record per scope |
| delete_qcrecordA | Delete a QC record and all associated data (irreversible). Args: qcrecord_id: The QC record UUID |
| list_vendorsA | List vendors with pagination and sorting. Args: skip: Number of records to skip limit: Maximum number of records to return sort_by: Field to sort by sort_order: Sort order (asc or desc) |
| get_vendorC | Get details of a specific vendor. Args: vendor_id: The vendor identifier |
| create_vendorD | Create a new vendor. Args: vendor_id: Unique vendor identifier name: Vendor display name description: Vendor description bucket: Optional S3 bucket associated with vendor |
| update_vendorC | Update a vendor's information. Args: vendor_id: The vendor identifier name: Optional new name description: Optional new description bucket: Optional new bucket |
| delete_vendorC | Delete a vendor. Args: vendor_id: The vendor identifier |
| get_settings_by_tagA | Get settings filtered by a tag key-value pair. Args: tag_key: Tag key to filter by (e.g., 'category') tag_value: Tag value to filter by (e.g., 'storage') |
| get_settingC | Get a specific setting by key. Args: key: The setting key identifier |
| update_settingB | Update a setting (value, name, description, tags). The key itself cannot be changed. Args: key: The setting key value: Optional new value name: Optional new display name description: Optional new description tags: Optional new tags list [{"key": "category", "value": "storage"}] |
| list_platformsA | List all registered workflow execution platforms. |
| get_platformA | Get a platform by name. Args: name: Platform name (e.g., Arvados, SevenBridges) |
| create_platformB | Create a new workflow execution platform. Args: name: Platform name (e.g., Arvados, SevenBridges) |
| get_latest_manifestA | Get the latest manifest file path from an S3 bucket. Searches recursively for CSV files containing 'manifest' in their name. Args: s3_path: S3 path to search (e.g., s3://bucket-name/path/to/manifests) |
| validate_manifestA | Validate a manifest CSV file from S3. Checks required fields, data format, value constraints, and file existence. Args: manifest_uri: S3/GS path to the manifest CSV file files_uri: S3/GS path where files in manifest are located manifest_version: Manifest version to validate against (e.g., 'DTS12.1') post_to_api: If true, post samples to API after successful validation |
| wes_get_service_infoA | Get information about the WES service. Returns supported workflow types, WES versions, filesystem protocols, workflow engine versions, default parameters, and system state counts. |
| wes_list_runsA | List workflow runs from the WES service. Returns a paginated list of workflow runs the caller has permission to see. Args: page_size: Number of runs to return per page page_token: Token for retrieving the next page of results |
| wes_run_workflowB | Submit a new workflow run to the WES service. Args: workflow_url: URL or relative path to the workflow definition (CWL/WDL) workflow_type: Workflow language type (e.g., "CWL", "WDL") workflow_type_version: Version of the workflow language (e.g., "v1.0") workflow_params: Input parameters for the workflow (JSON object) workflow_engine: Workflow engine to use (e.g., "cromwell", "toil") workflow_engine_version: Version of the workflow engine workflow_engine_parameters: Additional engine-specific parameters tags: Arbitrary key-value tags for the run |
| wes_get_run_logC | Get detailed information about a workflow run. Returns the run request, state, run log (stdout/stderr), task logs, and output files. Args: run_id: The workflow run identifier |
| wes_get_run_statusA | Get the current status of a workflow run. Returns an abbreviated status with the run_id and state (UNKNOWN, QUEUED, INITIALIZING, RUNNING, PAUSED, COMPLETE, EXECUTOR_ERROR, SYSTEM_ERROR, CANCELED, CANCELING, PREEMPTED). Args: run_id: The workflow run identifier |
| wes_cancel_runB | Cancel a running workflow. Args: run_id: The workflow run identifier to cancel |
| wes_list_tasksA | List tasks for a workflow run. Returns a paginated list of tasks executed as part of the workflow run. Args: run_id: The workflow run identifier page_size: Number of tasks to return per page page_token: Token for retrieving the next page of results |
| wes_get_taskA | Get details of a specific task within a workflow run. Returns log information including name, command, start/end time, stdout, stderr, exit code, and system logs. Args: run_id: The workflow run identifier task_id: The task identifier |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NGS360/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server