NTDeliver MCP Server
# NTDeliver MCP Server
MCP server exposing NTDeliver purchase order and milestone data (1,729 POs, 2014-2027).
Supports two transport modes: **stdio** (local) and **HTTP/SSE** (hosted, shared URL).
---
## Quick start — local use
```bash
npm install
npm start
```
Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"ntdeliver": {
"command": "node",
"args": ["/full/path/to/ntdeliver-mcp/src/index.js"]
}
}
}
```
---
## Shared access — one URL, no install required
### Railway (recommended)
1. Push this repo to GitHub
2. Go to [railway.app](https://railway.app), create a project from the repo
3. Set env vars: `MCP_TRANSPORT=http`, `PORT=3000`
4. Railway detects the Dockerfile and deploys automatically
Your MCP URL: `https://your-app.up.railway.app/sse`
### Render
1. Create a Web Service from the repo
2. Set env vars: `MCP_TRANSPORT=http`, `PORT=10000`
### Local HTTP mode (for testing)
```bash
MCP_TRANSPORT=http PORT=3000 node src/index.js
# Health check: curl http://localhost:3000/health
```
---
## Connecting to a hosted server
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"ntdeliver": {
"url": "https://your-app.up.railway.app/sse"
}
}
}
```
Share that URL — anyone adds the same block and gets live NTDeliver data.
---
## Tools
| Tool | Description |
|------|-------------|
| `ntd_schema` | Column names, row count, milestone list, known filter values, sample row |
| `ntd_list_pos` | Filter POs by country, donor, drug, region, year, shipment mode |
| `ntd_get_po` | Full record + all milestones for a single PO number |
| `ntd_get_milestones` | Milestone dates and progress for matching POs |
| `ntd_milestone_completion` | % of POs with each milestone recorded, across any filter set |
| `ntd_summary_stats` | PO counts and tablet totals grouped by donor/country/drug/region/year |
| `ntd_list_values` | All distinct values for any column |
| `ntd_days_to_mda` | POs sorted by days until MDA, with optional max-days filter |
Known donors: GSK, Eisai, Merck USA, Merck KGaA, J&J
Known drugs: ALB, DEC, IVM, MEB, PZQ, TCZ
Known regions: AFRO, AMRO, EMRO, EURO, SEARO, WPRO
Years: 2014-2027
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: schema discovery, listing/filtering POs, getting full details, milestone queries, aggregate statistics, value enumeration, and days-to-MDA analysis. No two tools overlap in function, making selection unambiguous.
All tools share the 'ntd_' prefix, but the naming convention is inconsistent: some use verb_noun ('list_pos', 'get_po', 'get_milestones', 'list_values'), while others are noun phrases ('schema', 'milestone_completion', 'summary_stats', 'days_to_mda'). This mixed pattern reduces predictability.
With eight tools, the server is well-scoped for a read-only data exploration API focused on NTD delivery POs. Each tool adds unique value without redundancy, and the count is appropriate for the domain's complexity.
The tool set covers all likely needs for querying an NTD delivery database: schema introspection, filtered lists, single-record details, milestone tracking, aggregate statistics, value discovery, and a specialized analytical query. There are no obvious gaps for a read-only server.