
Heor Agent
io.github.neptun2000Published by GitHub account neptun2000v1.35.0Updated Oct 24, 2026
HEOR MCP server: literature search, CEA, BIA, NMA/MAIC, HTA dossiers (NICE/FDA/EMA/JCA).
Overview
HEOR research MCP server that lets an assistant run literature searches, cost-effectiveness and budget-impact models, risk-of-bias reviews and HTA dossier…
- What you can do
- Search 44 biomedical, HTA, epidemiology and cost sources with a PRISMA-style audit trail, then screen abstracts by PICO.
- Assess risk of bias (RoB 2, ROBINS-I, AMSTAR-2), build evidence networks, run Bucher/NMA and MAIC/STC indirect comparisons, and fit survival curves.
- Build Markov or partitioned-survival cost-effectiveness models with PSA, OWSA, CEAC and EVPI, plus ISPOR-style budget impact models and EQ-5D value-set impact estimates.
- Draft HTA and regulatory dossier sections for NICE, EMA, FDA, IQWiG, HAS and EU JCA, with GRADE tables and pharmacovigilance classification.
- Create persistent project workspaces and search, read or write an Obsidian-compatible knowledge base; export results…
- When to use it
- Useful for health economics, market access, medical affairs and HTA teams that want an assistant to run structured literature reviews, indirect comparisons, economic models and submission drafts with an auditable trail, instead of assembling them by hand.
- Requirements
- Runs locally via npx with Node 20 or newer (stdio for Claude Desktop, Claude Code, Cursor, Continue, Cline; optional HTTP mode). No keys needed for the free tools; enterprise sources need optional keys such as ELSEVIER_API_KEY, COCHRANE_API_KEY, CITELINE_API_KEY, PHARMAPENDIUM_API_KEY, CORTELLIS_API_KEY or SERPAPI_KEY. Internet access for source queries; data is stored under ~/.heor-agent by default.
Installation
In SourceWeft
- Open Heor Agent in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
HEORAgent MCP Server
[npm version] [license] [node] [Try in ChatGPT] [Web UI] [EU AI Pact] [AI Transparency]
AI-powered Health Economics and Outcomes Research (HEOR) agent as a Model Context Protocol server.
Try it now → HEORAgent on ChatGPT (ChatGPT Plus / Team) · Web UI (Claude, BYOK) ·
npx heor-agent-mcpfor Claude Desktop / Claude Code
Automates literature review across 44 data sources, risk of bias assessment (RoB 2 / ROBINS-I / AMSTAR-2), EQ-5D value set impact estimation, state-of-the-art cost-effectiveness modelling, HTA dossier preparation for NICE / EMA / FDA / IQWiG / HAS / EU JCA, and a persistent project knowledge base — all callable as MCP tools from Claude.ai, Claude Code, and any MCP-compatible host.
Built for pharmaceutical, biotech, CRO, and medical affairs teams who need rigorous, auditable HEOR workflows without building infrastructure from scratch.
First 60 seconds
Verify your install works before wiring it into Claude / Cursor / Continue. Open two terminal tabs:
Tab 1 — start the server in HTTP mode:
You should see:
Tab 2 — confirm it responds:
Expected output:
✅ If you see the JSON above, the npm package works on your machine. Any further issues are in your MCP client config (Claude Desktop / Cursor / Continue), not the server.
❌ If you see command not found, run node --version — you need Node ≥20. If you see a different error, file a quick issue at https://github.com/neptun2000/heor-agent-mcp/issues with the output.
Now stop Tab 1 (Ctrl+C) and pick your client below — you don't need the HTTP mode for the actual integration; Claude / Cursor / Continue all use stdio.
Quick Start (per client)
Pick your MCP host:
Claude Code
Then restart Claude Code.
Claude Desktop / claude.ai Desktop
Edit your MCP config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS) and add:
Then restart Claude Desktop.
Cursor / Continue / Cline
Same config shape as Claude Desktop above; the file path differs by client:
- Cursor:
Settings → MCP → Add new MCP server - Continue:
~/.continue/config.jsonunder themcpServerskey - Cline:
Settings → MCP Servers → Edit MCP Settings
Hosted (no install)
- ChatGPT (Plus / Team): HEORAgent on ChatGPT — type
/heorto use it; works on any conversation. - Web UI (Claude, BYOK): web-michael-ns-projects.vercel.app — bring your Anthropic API key; runs the full v1.6.3 toolset.
Your first prompt
Once your MCP host is configured, paste any of these to verify end-to-end:
The first prompt exercises literature_search + validate_links (free, no API keys needed). The second exercises irb_review (pure decision tree, instant). The third exercises jca_pico_scope → hta_dossier pipeline.
What's new
See CHANGELOG.md for full version history. Current: v1.23.0 (45 tools, 44 data sources).
v1.17.0–v1.23.0 — Living Evidence Intelligence (review → reimbursement)
A connected RWE + cross-deliverable layer (see docs/FEATURES.md for the full table):
- RWE & real-world safety:
rwe.method_select(study-design selection),pv.comparative_safety(class-level FAERS-style AE ranking),evidence.triangulation(per-outcome RCT↔RWE concordance). - Governed social listening:
rwe.social_listening_protocol+pv.social_listening_triage(GVP Module VI ICSR triage — no scraping). - One source of truth:
evidence.claim_registry(author/auto-import a figure once),evidence.consistency_check(detect drift across dossier/publication/payer),publication.draft(reuse claims; CONSORT/STROBE/PRISMA/CHEERS + GPP2022/ICMJE). - Living orchestration:
evidence.gap_analysis(iEGP),workflow.living_evidence(SLR → living KB → JCA/HTA runbook),hta.living_gvd(regenerate only the GVD sections whose figures changed).
v1.13.0 — AI Transparency Disclosure (ISPOR ELEVATE-GenAI aligned)
16 tools now accept an ai_disclosure_level parameter:
Default by tool tier: HTA/regulatory tools (hta_dossier, hta_workflow, jca_pico_scope, pv_classify, etc.) default to "submission"; analysis tools (risk_of_bias, cost_effectiveness_model, etc.) default to "standard". Pass ai_disclosure_level: "off" to suppress.
Environment-level default: set HEORAGENT_DISCLOSURE_LEVEL=off|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_classifytool — 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_dossierPharmacovigilance Plan section — passpv_classificationfrompv_classifytohta_dossierand 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_workfloworchestrator (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.examplestool (v1.0.5) — pre-filled JSON inputs for heavy-schema tools (CEA, BIA, survival, MAIC, Bucher) plus amaic_workflow_recipemulti-step prompt template for ChatGPT users.- CMS IRA awareness — when
pv_classifyis 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.
- ChatGPT Custom GPT support (v1.0.4) — OpenAPI 3.1 adapter at
/api/openapilets you build a Custom GPT in 5 minutes. See ChatGPT Custom GPT below. - Surface-tagged analytics (v1.0.4) — every
tool_callPostHog event carries asurfaceproperty (claude_anthropic_web/chatgpt_adapter/claude_desktop/direct_mcp).
See CHANGELOG.md for the full diff.
Tools (28)
literature_search
Searches across 44 sources in parallel. Every call returns a source selection table showing which of the 44 sources were used and why — essential for HTA audit trails.
Example call:
cost_effectiveness_model
Multi-state Markov model (default) or Partitioned Survival Analysis (oncology), following ISPOR good practice and NICE reference case (3.5% discount rate, half-cycle correction). Includes:
- PSA — 1,000–10,000 Monte Carlo iterations, probability cost-effective at WTP thresholds
- OWSA — one-way sensitivity analysis with tornado summary
- CEAC — cost-effectiveness acceptability curve
- EVPI — expected value of perfect information
- WTP assessment — verdict against NHS (£25–35K/QALY, updated April 2026), US payer ($100–150K), societal thresholds
Example call:
hta_dossier_prep
Drafts submission-ready sections for six HTA frameworks with gap analysis:
Accepts piped output from literature_search and cost_effectiveness_model.
risk_of_bias
Assesses risk of bias using the appropriate Cochrane instrument, auto-detected from study_type:
Returns a rob_results object you can pass directly to hta_dossier_prep — this replaces the heuristic RoB estimate in the GRADE table with structured domain judgments.
Example call:
Pipeline:
literature_search→screen_abstracts→risk_of_bias→hta_dossier_prep
Knowledge base tools
Projects live at ~/.heor-agent/projects/{project-id}/ with:
raw/literature/— auto-populated literature search resultsraw/models/— auto-populated model runsraw/dossiers/— auto-populated dossier draftsreports/— generated DOCX fileswiki/— manually curated, Obsidian-compatible markdown with[[wikilinks]]
Pass project: "project-id" to any tool and results are saved automatically.
Examples
Copy-paste prompts to try in Claude Code, Claude Desktop, or the web UI.
Single-tool examples
Literature search
Search the literature for tirzepatide cardiovascular outcomes in type 2 diabetes. Use PubMed, ClinicalTrials.gov, and NICE TAs.
Survival curve fitting
Fit survival curves to this OS data from KEYNOTE-189: time 0 survival 1.0, time 6 survival 0.88, time 12 survival 0.72, time 18 survival 0.60, time 24 survival 0.51, time 36 survival 0.38. Use months.
Budget impact
Estimate the 5-year NHS budget impact of semaglutide for obesity. 200,000 eligible patients, drug cost £1,200/year, comparator (orlistat) £250/year, uptake 15% year 1 to 40% year 5.
Cost-effectiveness model
Build a CE model for semaglutide vs sitagliptin in T2D, NHS perspective, lifetime horizon, with PSA.
Indirect comparison (Bucher)
I have two trials: SUSTAIN-1 showed semaglutide vs placebo HR 0.74 (0.58-0.95) for HbA1c, and AWARD-5 showed dulaglutide vs placebo HR 0.78 (0.65-0.93). Run a Bucher indirect comparison between semaglutide and dulaglutide.
MAIC (population-adjusted comparison)
Run a MAIC between SUSTAIN-7 (N=300, semaglutide vs placebo, HR 0.74, CI 0.58-0.95, age 56±10, BMI 33±5) and AWARD-11 (N=600, dulaglutide vs placebo, HR 0.78, CI 0.65-0.93, age 58±9, BMI 35±6). Adjust for age and BMI.
Multi-tool workflows
Abstract screening workflow
Search PubMed for pembrolizumab in NSCLC, then screen the results with population adults with NSCLC, intervention pembrolizumab, comparator chemotherapy, outcomes overall survival and PFS.
Evidence network + NMA feasibility
Search for GLP-1 receptor agonists in T2D using PubMed, build an evidence network from the results, and assess NMA feasibility.
CE model with scenarios
Build a CE model for dapagliflozin vs placebo in heart failure, NHS perspective, lifetime horizon, with PSA. Add scenarios: "20% price reduction" with drug cost 400, "10-year horizon" with time_horizon 10yr.
End-to-end HTA workflow
Full dossier preparation
Create a project for semaglutide in obesity targeting NICE and ICER. Search literature for evidence, screen the results for adults with obesity comparing semaglutide to placebo for weight loss outcomes, assess risk of bias on the screened studies, then draft a NICE STA dossier using the screened results and rob_results.
This single prompt exercises: project_create → literature_search → screen_abstracts → risk_of_bias → hta_dossier_prep (GRADE RoB from structured assessment).
Data Sources
44 sources across 10 categories. Every literature_search call includes a source selection table showing used/not-used status and reason for each.
Biomedical & Clinical Trials (5)
- PubMed — 35M+ biomedical citations (NCBI E-utilities)
- ClinicalTrials.gov — NIH/NLM trial registry (CT.gov v2 API)
- bioRxiv / medRxiv — Life sciences and medical preprints
- ChEMBL — Drug bioactivity, mechanisms, ADMET (EMBL-EBI)
- Wiley Online Library — Pharmacoeconomics, Health Economics, Journal of Medical Economics, Value in Health (CrossRef, ~77% abstract coverage, no key required)
Epidemiology & Demographics (5)
- WHO GHO — WHO Global Health Observatory
- World Bank — Demographics, macroeconomics, health expenditure
- OECD Health — OECD health statistics (expenditure, workforce, outcomes)
- IHME GBD — Global Burden of Disease (DALYs, prevalence across 204 countries)
- All of Us — NIH precision medicine cohort
FDA (2)
- FDA Orange Book — Drug approvals and therapeutic equivalence
- FDA Purple Book — Licensed biologics and biosimilars
HTA Appraisals (10) — HTA precedent decisions
- NICE TAs (UK) · CADTH (Canada) · ICER (US) · PBAC (Australia)
- G-BA AMNOG (Germany) · IQWiG (Germany) · HAS (France)
- AIFA (Italy) · TLV (Sweden) · INESSS (Quebec, Canada)
HTA Cost References (5)
- CMS NADAC (US drug acquisition costs)
- PSSRU (UK unit costs) · NHS National Cost Collection · BNF (UK drug pricing)
- PBS Schedule (Australia)
LATAM (6)
- DATASUS · CONITEC · ANVISA (Brazil)
- PAHO (Pan American regional) · IETS (Colombia) · FONASA (Chile)
APAC (1)
- HITAP (Thailand)
Enterprise (6) — require API key
HEOR Methodology & Utility Reference (3)
- 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
Output Formats
All tools support output_format:
text(default) — Markdown with formatted tables and headingsjson— Structured objects for downstream toolsdocx— 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
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
Set MCP_SERVER_URL to point to your own MCP server instance (default: the public Railway deployment).
ChatGPT Custom GPT
🟢 Live: HEORAgent on ChatGPT →
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
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)
- Visit chatgpt.com/gpts/editor and click Create.
- 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). - Actions → Create new action → Import from URL → paste: ChatGPT auto-imports all 17 endpoints with their schemas.
- Authentication — choose None for the open public endpoint, or API Key with the
CHATGPT_ADAPTER_TOKENvalue if you've configured one (recommended for prod). - Privacy policy URL — required by GPT Store. Use the web UI's privacy URL or your own.
- 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:
Sample call (manual, no GPT needed)
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).
HTTP endpoints:
POST/GET/DELETE /mcp— MCP Streamable HTTP protocolGET /health— health checkGET /.well-known/mcp/server-card.json— Smithery discovery
Development
Requires: Node.js ≥ 20.
Architecture
License
MIT — see 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 — 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
Links
Source: README.md at commit 19f5f0e
Tools
0Version history
1- v1.35.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts