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.
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
- Create or edit a file in
ngs360_mcp_server/tools/ - Define a
register_*_tools(mcp, client)function - 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 runsGET/PUT /runs/{run_id}— Get/update a runGET /runs/{run_id}/samplesheet— Sample sheetGET /runs/{run_id}/metrics— Demux metricsGET/POST /runs/demultiplex— Demux workflowsPOST/GET/DELETE /runs/{run_id}/samples— Sample associationsPOST/GET /jobs— Submit and list batch jobsGET/PUT /jobs/{job_id}— Get/update jobGET /jobs/{job_id}/log— Job logsPOST/GET /projects— Create and list projectsGET/PUT/PATCH /projects/{project_id}— Project CRUDPOST/GET /projects/{project_id}/samples— Project samplesPOST /projects/{project_id}/actions/submit— Pipeline submissionPOST/GET /files— File record managementGET/PATCH/DELETE /files/{file_id}— File operationsGET /files/list— S3 browserGET /search— Global searchPOST/GET /workflows— Workflow identityPOST/GET /workflows/{id}/versions— VersionsPUT/GET/DELETE /workflows/{id}/aliases— AliasesPOST/GET/DELETE /workflows/.../deployments— DeploymentsPOST/GET /pipelines— Pipeline CRUDPOST/DELETE /pipelines/{id}/workflows— Workflow membershipPOST/GET/DELETE /qcmetrics— QC recordsGET/POST /qcmetrics/search— QC searchPOST/GET/PUT/DELETE /vendors— Vendor managementGET/PUT /settings— Application settingsPOST/GET /platforms— Platform registryGET/POST /manifest— Manifest operations
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.