NGS360 MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NGS360 MCP Servershow me the most recent sequencing runs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
WES | 8 tools | GA4GH Workflow Execution Service (run/monitor workflows) |
Related MCP server: openapi-mcp-bridge
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 |
|
| Base URL of the NGS360 API |
| (empty) | Bearer token for NGS360 authentication |
Usage
Running directly
ngs360-mcp-serverWith 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 toolsTesting with MCP Inspector
npx @modelcontextprotocol/inspector ngs360-mcp-serverAdding New Tools
Create or edit a file in
ngs360_mcp_server/tools/Define a
register_*_tools(mcp, client)functionRegister 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
GA4GH WES API (/ga4gh/wes/v1/*)
GET /service-info— WES service capabilitiesGET /runs— List workflow runsPOST /runs— Submit a workflow runGET /runs/{run_id}— Full run logGET /runs/{run_id}/status— Run statePOST /runs/{run_id}/cancel— Cancel a runGET /runs/{run_id}/tasks— List tasks for a runGET /runs/{run_id}/tasks/{task_id}— Get task details
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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