NGS360 MCP Server

NGS360 MCP Server

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

Category
Visit Server

README

NGS360 MCP Server

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

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 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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured