Command Palette

Search for a command to run...

UnylyUnyly
Browse all

NGS360 Server

FreeNot checked

Exposes the NGS360 bioinformatics platform REST API as MCP tools, enabling AI assistants to manage sequencing runs, projects, workflows, and more through natura

GitHubEmbed

About

Exposes the NGS360 bioinformatics platform REST API as MCP tools, enabling AI assistants to manage sequencing runs, projects, workflows, and more through natural language.

README

A Model Context Protocol (MCP) server that exposes the NGS360 REST API as tools for AI assistants.

Overview

This MCP server wraps the NGS360 bioinformatics platform API, providing tools for:

Domain Tools Description
Runs 14 tools Sequencing run CRUD, sample sheets, metrics, demultiplexing
Jobs 6 tools AWS Batch job submission, monitoring, and logs
Projects 11 tools Project CRUD, samples, pipeline actions, vendor ingestion
Files 7 tools File record management, S3 browsing
Search 1 tool Cross-index search (projects, runs, samples)
Workflows 11 tools Workflow identity, versions, aliases, deployments
Pipelines 5 tools Pipeline CRUD, workflow associations
QC Metrics 5 tools QC record creation, search, retrieval
Vendors 5 tools Vendor CRUD
Settings 3 tools Application settings management
Platforms 3 tools Workflow execution platform registry
Manifest 2 tools Manifest retrieval and validation
WES 8 tools GA4GH Workflow Execution Service (run/monitor workflows)

Installation

cd mcp-server
pip install -e .

Or with uv:

cd mcp-server
uv pip install -e .

Configuration

The server uses environment variables for configuration:

Variable Default Description
NGS360_API_URL http://localhost:8000 Base URL of the NGS360 API
NGS360_API_TOKEN (empty) Bearer token for NGS360 authentication

Usage

Running directly

ngs360-mcp-server

With Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "ngs360": {
      "command": "ngs360-mcp-server",
      "env": {
        "NGS360_API_URL": "https://your-ngs360-api.example.com",
        "NGS360_API_TOKEN": "your-bearer-token",
      }
    }
  }
}

With VS Code / Roo

Add to your MCP settings:

{
  "mcpServers": {
    "ngs360": {
      "command": "ngs360-mcp-server",
      "env": {
        "NGS360_API_URL": "https://your-ngs360-api.example.com",
        "NGS360_API_TOKEN": "your-bearer-token",
      }
    }
  }
}

Development

Project Structure

mcp-server/
├── pyproject.toml
├── README.md
└── ngs360_mcp_server/
    ├── __init__.py
    ├── client.py          # HTTP client wrapper for the NGS360 API
    ├── server.py          # MCP server entry point
    └── tools/
        ├── __init__.py
        ├── runs.py        # Sequencing run tools
        ├── jobs.py        # Batch job tools
        ├── projects.py    # Project & sample tools
        ├── files.py       # File management tools
        ├── search.py      # Cross-index search tools
        ├── workflows.py   # Workflow management tools
        ├── pipelines.py   # Pipeline management tools
        ├── qcmetrics.py   # QC metrics tools
        ├── vendors.py     # Vendor management tools
        ├── settings.py    # Settings tools
        ├── platforms.py   # Platform registry tools
        ├── manifest.py    # Manifest tools

Testing with MCP Inspector

npx @modelcontextprotocol/inspector ngs360-mcp-server

Adding New Tools

  1. Create or edit a file in ngs360_mcp_server/tools/
  2. Define a register_*_tools(mcp, client) function
  3. Register it in ngs360_mcp_server/server.py

Each tool is a decorated async function:

@mcp.tool()
async def my_new_tool(param1: str, param2: int = 10) -> dict:
    """Tool description shown to the AI assistant.

    Args:
        param1: Description of param1
        param2: Description of param2
    """
    return await client.get("/my/endpoint", params={"p": param1})

API Coverage

This MCP server covers the full NGS360 API surface at /api/v1/*:

  • POST/GET /runs — Create and list sequencing runs
  • GET/PUT /runs/{run_id} — Get/update a run
  • GET /runs/{run_id}/samplesheet — Sample sheet
  • GET /runs/{run_id}/metrics — Demux metrics
  • GET/POST /runs/demultiplex — Demux workflows
  • POST/GET/DELETE /runs/{run_id}/samples — Sample associations
  • POST/GET /jobs — Submit and list batch jobs
  • GET/PUT /jobs/{job_id} — Get/update job
  • GET /jobs/{job_id}/log — Job logs
  • POST/GET /projects — Create and list projects
  • GET/PUT/PATCH /projects/{project_id} — Project CRUD
  • POST/GET /projects/{project_id}/samples — Project samples
  • POST /projects/{project_id}/actions/submit — Pipeline submission
  • POST/GET /files — File record management
  • GET/PATCH/DELETE /files/{file_id} — File operations
  • GET /files/list — S3 browser
  • GET /search — Global search
  • POST/GET /workflows — Workflow identity
  • POST/GET /workflows/{id}/versions — Versions
  • PUT/GET/DELETE /workflows/{id}/aliases — Aliases
  • POST/GET/DELETE /workflows/.../deployments — Deployments
  • POST/GET /pipelines — Pipeline CRUD
  • POST/DELETE /pipelines/{id}/workflows — Workflow membership
  • POST/GET/DELETE /qcmetrics — QC records
  • GET/POST /qcmetrics/search — QC search
  • POST/GET/PUT/DELETE /vendors — Vendor management
  • GET/PUT /settings — Application settings
  • POST/GET /platforms — Platform registry
  • GET/POST /manifest — Manifest operations

GA4GH WES API (/ga4gh/wes/v1/*)

  • GET /service-info — WES service capabilities
  • GET /runs — List workflow runs
  • POST /runs — Submit a workflow run
  • GET /runs/{run_id} — Full run log
  • GET /runs/{run_id}/status — Run state
  • POST /runs/{run_id}/cancel — Cancel a run
  • GET /runs/{run_id}/tasks — List tasks for a run
  • GET /runs/{run_id}/tasks/{task_id} — Get task details

from github.com/NGS360/mcp-server

Install NGS360 Server in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install ngs360-mcp-server

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add ngs360-mcp-server -- uvx --from git+https://github.com/NGS360/mcp-server ngs360-mcp-server

FAQ

Is NGS360 Server MCP free?

Yes, NGS360 Server MCP is free — one-click install via Unyly at no cost.

Does NGS360 Server need an API key?

No, NGS360 Server runs without API keys or environment variables.

Is NGS360 Server hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install NGS360 Server in Claude Desktop, Claude Code or Cursor?

Open NGS360 Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare NGS360 Server with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs