Midgard Finance drug data
Obesity and incretin drug trials: weight loss by dose with its estimand, adverse events, catalysts
Should I use this
Quality & Safety
Findings (1)
- LOWin get_trial
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"drugs": {
"url": "https://mcp.midgardfinance.com/mcp"
}
}
}Remote endpoints
https://mcp.midgardfinance.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢search_drugs(query, area, sponsor, status, limit)
Search the drug boards by free text and by field.
Input Schema
{
"type": "object",
"properties": {
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
},
"area": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Area"
},
"sponsor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sponsor"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"title": "search_drugsArguments"
}🟢get_drug(name)
Full record for one drug, with its efficacy figures estimand-tagged and its page URL. Matching goes slug, then exact name or brand, then substring, so "wegovy", "Wegovy HD" and "semaglutide-obesity" all land somewhere sensible without the caller knowing the slug scheme.
Input Schema
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "get_drugArguments"
}🟢get_trial(identifier)
One trial's design, by NCT number or by trial key (SURMOUNT-1, scale, redefine-1).
Input Schema
{
"type": "object",
"properties": {
"identifier": {
"title": "Identifier",
"type": "string"
}
},
"required": [
"identifier"
],
"title": "get_trialArguments"
}🟢compare_efficacy(drugs, timepoint_weeks, estimand, metric, limit)
The extracted weight-loss table for the named drugs, joined to trial design, one row per arm and timepoint. Rows are NOT collapsed to one number per drug. The corpus holds several doses, timepoints and estimands per trial, and picking a single winner per drug would mean choosing between them here, silently and on the caller's behalf. The comparison is theirs to make; this returns the rows and the labels needed to make it correctly.
Input Schema
{
"type": "object",
"properties": {
"drugs": {
"items": {
"type": "string"
},
"title": "Drugs",
"type": "array"
},
"timepoint_weeks": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Timepoint Weeks"
},
"estimand": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Estimand"
},
"metric": {
"default": "mean_weight_change_pct",
"title": "Metric",
"type": "string"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"required": [
"drugs"
],
"title": "compare_efficacyArguments"
}🟢get_adverse_events(drug, trial, ae_type, limit)
Extracted adverse-event rates for a named drug or trial, by arm, with the arithmetic that was checked. `verification` is carried through verbatim. It is the raw-count recomputation recorded when the row was extracted ("997/2481 active = 40.18%"), and it is what lets a caller see that the percentage was checked against the paper rather than copied from an abstract.
Input Schema
{
"type": "object",
"properties": {
"drug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Drug"
},
"trial": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Trial"
},
"ae_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Ae Type"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"title": "get_adverse_eventsArguments"
}🟢get_trajectory(drug)
The digitised weight-loss curve for a drug: week-by-week points, plus per-dose series. Returned with `endpoint_pct` and its estimand alongside the curve, because the endpoint marker and the last plotted point are different quantities and the curve alone does not say which one a reader is looking at.
Input Schema
{
"type": "object",
"properties": {
"drug": {
"title": "Drug",
"type": "string"
}
},
"required": [
"drug"
],
"title": "get_trajectoryArguments"
}🟢list_catalysts(from_date, to_date, tier, limit)
Upcoming and recent readouts, approvals and trial starts across sponsors. Dates are ISO strings where the event has a date and a bare year where the sponsor has only guided to one, so they are compared as strings rather than parsed - "2026" sorts before "2026-07-01", which is the right answer for an event guided to a year.
Input Schema
{
"type": "object",
"properties": {
"from_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "From Date"
},
"to_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "To Date"
},
"tier": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Tier"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"title": "list_catalystsArguments"
}Community
Evidence