heor-agent-mcp

finance MCP Server

AI-powered Health Economics and Outcomes Research (HEOR) MCP server — 45 tools across literature search (44 data sources incl. PubMed/ClinicalTrials.gov/Cochrane/NICE/CADTH/ICER), risk of bias (RoB 2/ROBINS-I/AMSTAR-2), cost-effectiveness modeling (Markov/PartSA/PSA/EVPPI), budget impact analysis, abstract screening, survival curve fitting (NICE DSU TSD 14), indirect comparisons (Bucher/NMA/MAIC/STC), pharmacovigilance study classification (EMA GVP rev 4), EU JCA PICO matrix analyzer, MAIC pipel

VerifiedInstall Ready
financefinance
5 views6 stars0 forksv1.23.1MIT

Why This Matters

Discovered via list:awesome-mcp-servers-punkpeye and last synced 3mo ago.

VerifiedInstall Ready
Source
list:awesome-mcp-servers-punkpeye
Stars
6
Last synced
3mo ago
Install
Instructions detected

Install

1. Install the package

npx heor-agent-mcp

2. Add to claude_desktop_config.json

{
  "mcpServers": {
    "heor-agent-mcp": {
      "command": "npx",
      "args": [
        "heor-agent-mcp"
      ]
    }
  }
}

Config file location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) / %APPDATA%\Claude\claude_desktop_config.json (Windows)

37
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (37)

validate_links

HTTP validation of citation URLs before presentation

FDA

US

knowledge_search

Full-text search across a project's raw/ and wiki/ trees

HAS

France

Streaming

yes (SSE)

EMA

EU

Embase

`ELSEVIER_API_KEY`

population_adjusted_comparison

MAIC and STC for population-adjusted indirect comparisons

chatgpt_adapter

The caps exist because ChatGPT Actions hard-fail at the 45-second response timeout. PSA, multi-run literature search, and full max_results would routinely exceed it. The web UI and MCP clients are unaffected. ### Build a Custom GPT (ChatGPT Plus / Team required) 1. Visit [chatgpt.com/gpts/editor](https://chatgpt.com/gpts/editor) and click **Create**. 2. **Configure** tab — fill in name (e.g., "HEORAgent"), description, and conversation starters. Paste the system prompt from `web/lib/claude.ts` (or write your own — the tool descriptions are self-documenting). 3. **Actions** → **Create new action** → **Import from URL** → paste: ``` https://web-michael-ns-projects.vercel.app/api/openapi ``` ChatGPT auto-imports all 17 endpoints with their schemas. 4. **Authentication** — choose **None** for the open public endpoint, or **API Key** with the `CHATGPT_ADAPTER_TOKEN` value if you've configured one (recommended for prod). 5. **Privacy policy URL** — required by GPT Store. Use the web UI's privacy URL or your own. 6. **Test** in the playground (right pane), then **Publish** → "Anyone with the link" or "GPT Store". ### Securing the adapter for production By default the `/api/v1/*` endpoint is open. Two layers of protection are recommended for any public-facing GPT: ```bash # 1. Token-gate the endpoint cd web vercel env add CHATGPT_ADAPTER_TOKEN production # generate a long random token # Configure the same token in your Custom GPT under Authentication → API Key # 2. Built-in rate limit # 60 req/min per IP is enforced automatically (lib/rateLimit.ts). # For multi-region/high-traffic prod, swap in @upstash/ratelimit + Vercel KV. ``` ### Sample call (manual, no GPT needed) ```bash curl -X POST https://web-michael-ns-projects.vercel.app/api/v1/utility_value_set \ -H "Content-Type: application/json" \ -d '{ "action": "estimate_impact", "indication_type": "non_cancer_qol_only", "baseline_utility": 0.85, "base_icer": 30000 }' ``` Returns the Biz 2026 baseline-utility-adjusted ICER projection (the new EQ-5D 5L impact estimator). --- ## HTTP Transport The server supports both **stdio** (default, for local MCP clients) and **Streamable HTTP** (for hosted deployment). ```bash # Stdio mode (default — for Claude Code, Claude Desktop) npx heor-agent-mcp # HTTP mode — for hosted deployment, Smithery, web UI backend npx heor-agent-mcp --http # port 8787 MCP_HTTP_PORT=3000 npx heor-agent-mcp # custom port ``` HTTP endpoints: - `POST/GET/DELETE /mcp` — MCP Streamable HTTP protocol - `GET /health` — health check - `GET /.well-known/mcp/server-card.json` — Smithery discovery --- ## Development ```bash git clone https://github.com/neptun2000/heor-agent-mcp cd heor-agent-mcp npm install npm test # 401 tests across 84 suites npm run build # Compile TypeScript to dist/ npm run dev # Run with tsx (no build step) ``` **Requires:** Node.js ≥ 20. --- ## Architecture ``` ┌────────────────────────────────────────────┐ │ MCP Host (Claude.ai / Claude Code / etc.) │ └────────────────┬───────────────────────────┘ │ stdio ┌────────────────▼──────────────────────────┐ │ heor-agent-mcp server │ │ ┌──────────────────────────────────────┐ │ │ │ 17 MCP tools (Zod-validated) │ │ │ ├──────────────────────────────────────┤ │ │ │ DirectProvider (default) │ │ │ │ ├─ 44 source fetchers │ │ │ │ ├─ Audit builder + PRISMA trail │ │ │ │ ├─ Markov / PartSA economic models │ │ │ │ ├─ Markdown + DOCX formatters │ │ │ │ └─ Knowledge base (YAML + MD) │ │ │ └──────────────────────────────────────┘ │ └───────────────────────────────────────────┘ │ ┌────────────┴─────────────┐ ▼ ▼ ┌────────────┐ ┌──────────────────┐ │ ~/.heor- │ │ External APIs │ │ agent/ │ │ (PubMed, NICE, │ │ projects/ │ │ ICER, CADTH, …) │ └────────────┘ └──────────────────┘ ``` --- ## License MIT — see [LICENSE](./LICENSE). --- ## Trust & Transparency HEORAgent is a **research and analysis tool** — not a clinical decision-support system. It is **not** classified as high-risk under the EU AI Act because it does not drive individual diagnosis, treatment, or monitoring; it falls under limited-risk transparency obligations only. Every output is intended for review by a qualified HEOR/HTA/PV professional before any action is taken. - **EU AI Pact signatory** — committed to AI governance, high-risk system mapping, and AI literacy promotion (voluntary commitments per the European Commission, ahead of the AI Act's August 2026 deadline). - **PRISMA-style audit trail** on every tool call (sources queried, succeeded, failed, assumptions applied). - **AI commentary explicitly labelled** — domain claims (ICERs, trial results, regulatory decisions) come exclusively from tool outputs, never from training-data recall. - **Methodology cited inline** — ISPOR, NICE DSU TSDs, NICE PMG36, Cochrane Handbook, GRADE, EMA GVP, Cope 2014, Phillippo 2016, Biz 2026. Full statement: **[/ai-transparency](https://web-michael-ns-projects.vercel.app/ai-transparency)** — risk classification, human oversight model, methodological references, and reporting channel. --- ## Disclaimer **All outputs are preliminary and for research orientation only.** Results require validation by a qualified health economist before use in any HTA submission, payer negotiation, regulatory filing, or clinical decision. This tool does not replace professional HEOR expertise. --- ## Distribution

evidence_indirect

Bucher and frequentist NMA with **automatic consistency check** vs direct h2h evidence (NICE DSU TSD 18)

project_create

Initialize a persistent project workspace

psa_iterations

up to 10,000

itc_feasibility

Assess the 3-assumption ITC framework and recommend Bucher / NMA / MAIC / STC / ML-NMR

knowledge_write

Write compiled evidence to the project wiki (Obsidian-compatible)

Observational

ROBINS-I (7 domains: confounding, selection, classification, deviations, missing data, measurement, reporting)

evidence_network

Build treatment comparison network and assess NMA feasibility

IQWiG

Germany

Tool

Purpose

survival_fitting

Fit 5 parametric distributions to KM data (NICE DSU TSD 14)

knowledge_read

Read any file from a project's knowledge base

literature_search

Search 44 data sources with a full PRISMA-style audit trail

budget_impact_model

ISPOR-compliant BIA with year-by-year output and treatment-displacement modelling

NICE

UK

screen_abstracts

PICO-based relevance scoring and study design classification

risk_of_bias

Cochrane RoB 2 / ROBINS-I / AMSTAR-2 with GRADE RoB domain summary

SERPAPI_KEY

</details> <details> <summary><b>HEOR Methodology & Utility Reference (3)</b></summary> - **ISPOR** — HEOR methodology and conference abstracts - **OHE (Office of Health Economics)** — EQ-5D value set research and HEOR methodology - **EuroQol Group** — EQ-5D instruments, value sets, and registry </details> --- ## Output Formats All tools support `output_format`: - **`text`** (default) — Markdown with formatted tables and headings - **`json`** — Structured objects for downstream tools - **`docx`** — Microsoft Word document, saved to disk, path returned in response DOCX files are saved to `~/.heor-agent/projects/{project}/reports/` (when a project is set) or `~/.heor-agent/reports/` (global). The tool response contains the absolute path — ready to attach to submissions or share with stakeholders. --- ## Audit Trail Every tool call returns a full audit record: - **Source selection table** — all 44 sources with used/not-used and reason - **Sources queried** — queries sent, response counts, status, latency - **Inclusions / exclusions** — counts with reasons - **Methodology** — PRISMA-style for literature, ISPOR/NICE for economics - **Assumptions** — every assumption logged with justification - **Warnings** — data quality flags, missing API keys, failed sources Suitable for inclusion in HTA submission appendices. --- ## Configuration ```bash # Optional — enterprise data sources ELSEVIER_API_KEY=... # Embase + ScienceDirect COCHRANE_API_KEY=... # Cochrane Library CITELINE_API_KEY=... # Citeline PHARMAPENDIUM_API_KEY=... # Pharmapendium CORTELLIS_API_KEY=... # Cortellis SERPAPI_KEY=... # Google Scholar # Optional — knowledge base location HEOR_KB_ROOT=~/.heor-agent # Default # Optional — localhost proxy for enterprise APIs behind corporate VPN HEOR_PROXY_URL=http://localhost:8787 # Optional — hosted tier (future) HEOR_API_KEY=... ``` --- ## Web UI A companion chat interface is available at: **https://web-michael-ns-projects.vercel.app** - Chat with Claude Sonnet 4.6 + all 22 HEOR tools - **BYOK (Bring Your Own Key)** — paste your Anthropic API key in the settings; it stays in your browser's localStorage and is never stored on our servers - Markdown rendering with styled tables, tool call cards with live progress timers, and theme-aware mermaid network diagrams - 12 example prompts covering literature search, CEA, BIA, NMA, ITC feasibility, RoB, EQ-5D 5L, EU JCA dossiers - Per-request MCP sessions (no cross-user session bleed) The web UI calls the hosted MCP server on Railway for tool execution. No setup required — just add your API key and start querying. ### Self-hosting the web UI ```bash cd web npm install echo "ANTHROPIC_API_KEY=sk-ant-..." > .env.local # optional server-side fallback npm run dev -- -p 3456 ``` Set `MCP_SERVER_URL` to point to your own MCP server instance (default: the public Railway deployment). --- ## ChatGPT Custom GPT > **🟢 Live:** [HEORAgent on ChatGPT →](https://chatgpt.com/g/g-69f651f588f48191b1d69d54409857ec-heoragent) > > Open in ChatGPT (Plus / Team / Enterprise account required), pick a conversation starter, and you're querying 44 HEOR data sources. HEORAgent is also available as a ChatGPT Custom GPT — useful when you (or your team) prefer the ChatGPT interface or have a ChatGPT Plus/Team account but no Anthropic API access. Behind the scenes, the web tier exposes an OpenAPI 3.1 adapter at `/api/openapi`, with one POST endpoint per tool at `/api/v1/{tool_name}`. ChatGPT speaks this contract natively. ### What's different from the Anthropic surface

cost_effectiveness_model

Markov / PartSA / decision-tree CEA with PSA, OWSA, CEAC, EVPI, EVPPI; QALY + evLYG support

Body

Country

Source

Env variable

hta_dossier

Draft submissions for NICE, EMA, FDA, IQWiG, HAS, and EU JCA — GRADE table uses structured RoB when `rob_results` passed; **inconsistency uses I² when `heterogeneity_per_outcome` passed**; **GRADE upgrading (Guyatt 2011) supported via `upgrading_per_outcome`**

RCT

RoB 2 (5 domains: randomization, deviations, missing data, measurement, reporting)

ScienceDirect

`ELSEVIER_API_KEY`

hta_dossier_prep

Draft submissions for NICE, EMA, FDA, IQWiG, HAS, and EU JCA — GRADE table uses structured RoB when `rob_results` passed

JCA

EU (Reg. 2021/2282)

standard

submission` to override the built-in per-tool defaults globally. **Web UI persona defaults**: payer and HTA-reviewer personas always use `"submission"`; analyst personas default to `"standard"` and switch to `"off"` for scratch / exploratory prompts. ### v1.0.4 highlights (still in v1.6.3) Pharmacovigilance + workflow orchestration: - **`pv_classify` tool** — classifies a planned study into its EMA pharmacovigilance regulatory category (PASS imposed/voluntary, PAES, RMP Annex 4, DUS, active surveillance registry, pregnancy registry, spontaneous reporting, ICH E2E plan). Returns the matching GVP module (V/VI/VIII/VIII Addendum I), ENCePP protocol template ID, RMP implications, FDA analogue, and submission obligations. Pure decision-tree per EMA GVP rev 4 + EU Regulation 1235/2010 Article 107a. <200ms response. - **`hta_dossier` Pharmacovigilance Plan section** — pass `pv_classification` from `pv_classify` to `hta_dossier` and the dossier output now includes a PV Plan section between RoB and CEA. Without it, a one-line "PV plan not provided" note flags the gap so reviewers see what's missing. - **`maic_workflow` orchestrator** *(v1.0.6)* — runs the full MAIC discovery+screening pipeline (ITC feasibility + parallel literature_search + screening + RoB + network) in one MCP call. Built for ChatGPT-5.3 surfaces where chaining 5+ tool calls in parallel is unreliable; works equally well from Claude. - **`examples` tool** *(v1.0.5)* — pre-filled JSON inputs for heavy-schema tools (CEA, BIA, survival, MAIC, Bucher) plus a `maic_workflow_recipe` multi-step prompt template for ChatGPT users. - **CMS IRA awareness** — when `pv_classify` is called with US jurisdiction, output explicitly notes that CMS IRA Medicare price-negotiation calculations exclude PV cost data — track those obligations in the regulatory budget, not the HEOR cost-effectiveness model. - **GRADE I²-based inconsistency, GRADE upgrading (Guyatt 2011), Bucher consistency check, EQ-5D 5L baseline-utility-aware impact** *(v1.0.4)* — see [CHANGELOG.md](./CHANGELOG.md). - **ChatGPT Custom GPT support** *(v1.0.4)* — OpenAPI 3.1 adapter at `/api/openapi` lets you build a Custom GPT in 5 minutes. See [ChatGPT Custom GPT](#chatgpt-custom-gpt) below. - **Surface-tagged analytics** *(v1.0.4)* — every `tool_call` PostHog event carries a `surface` property (`claude_anthropic_web` / `chatgpt_adapter` / `claude_desktop` / `direct_mcp`). See [CHANGELOG.md](./CHANGELOG.md) for the full diff. --- ## Tools (28)

utility_value_set

EQ-5D-3L / 5L value-set reference + **baseline-utility-aware** Biz 2026 ICER impact estimator (UK 5L transition)

Value

Behaviour