Skip to main content
Glama
pipeworx-io

who-iris

Official
by pipeworx-io
README.md
# @pipeworx/who-iris

Search **WHO's published output** — guidelines, technical reports, World Health
Reports, weekly epidemiological records and governing-body documents — through
IRIS, the Institutional Repository for Information Sharing.

Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1576+ live data sources.

## Tools

| Tool | Answers |
|---|---|
| `who_iris_search` | Find WHO publications by topic, disease, title or author |
| `who_iris_item` | Full record for one publication, with direct PDF download links |

## Why downloads are a second call

Download URLs are not in the search response, and DSpace's `embed=` parameter
does not carry them — bitstreams hang off the item's bundles. Fetching them for
every hit would cost two extra requests per result for links most callers never
open, so search returns the permanent handle URL and `who_iris_item` resolves
real file URLs on demand.

The bundle nesting is deeper than it looks: each bundle's `bitstreams` is itself
a paginated HAL collection, so files live at
`bundles[]._embedded.bitstreams._embedded.bitstreams[]`.

## Auth

None.

## Data sources

- WHO IRIS (DSpace 7 REST) — <https://iris.who.int/server/api/discover/search/objects?query=tuberculosis>
- IRIS front end — <https://iris.who.int/>

Note: `HEAD` on a bitstream content URL returns 500; `GET` serves the PDF
normally. That is a DSpace quirk, not a broken link.

## Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

```json
{
  "mcpServers": {
    "who-iris": {
      "url": "https://gateway.pipeworx.io/who-iris/mcp"
    }
  }
}
```

### What this endpoint actually serves

`tools/list` at `https://gateway.pipeworx.io/who-iris/mcp` returns the tools in the table
above **plus the shared Pipeworx meta-tools** — `ask_pipeworx`,
`discover_tools`, `search_within`, `remember`/`recall` and the rest of the
gateway-wide set. So the tool count you see is larger than this table: a
single-pack endpoint currently lists roughly 30 shared tools alongside the
pack's own. The connection's `initialize` response states its exact scope, and
is the authoritative answer for a given day.

This is deliberate, not multiplexing by accident. The meta-tools are what let a
scoped connection answer a question this pack does not cover — via
`ask_pipeworx`, which routes across the whole catalog — without you adding a
second MCP server. There is currently no way to mount a pack endpoint without
them; if the extra schemas cost you more context than the routing is worth,
connect to the full gateway once rather than to several pack endpoints.

Or connect to the full Pipeworx gateway to get every pack's tools listed
directly, instead of just this one's:

```json
{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}
```

Both URLs reach the same gateway and the same 1576+ data sources. The
only difference is which pack's tools are listed **directly**; `ask_pipeworx`
reaches all of them from either one.

## Standalone (no gateway account)

This package also runs as a local stdio MCP server — no Pipeworx account, no
gateway round-trip:

```json
{
  "mcpServers": {
    "who-iris": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-who-iris"]
    }
  }
}
```

Or run it directly to confirm it starts:

```bash
npx -y @pipeworx/mcp-who-iris
```

It speaks MCP over stdin/stdout and answers `initialize`/`tools/list`/`tools/call`
for **only** this pack's tools — none of the shared meta-tools the gateway
connection above adds. Same source, same tools, no ask_pipeworx routing.

## Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English —
this works on the pack endpoint above as well as on the full gateway:

```
ask_pipeworx({ question: "your question about Who Iris data" })
```

The gateway picks the right tool and fills the arguments automatically.

## More

- [Docs and guides](https://pipeworx.io/docs)
- [pipeworx.io](https://pipeworx.io)

## License

MIT