Midgard Finance drug data
Server Details
Obesity and incretin drug trials: weight loss by dose with its estimand, adverse events, catalysts
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool maps to a distinct artifact: trial design (get_trial), drug record (get_drug), row-level efficacy table (compare_efficacy), AE rates (get_adverse_events), curve points (get_trajectory), events (list_catalysts), and free-text search (search_drugs). The only soft boundary is between compare_efficacy, get_trajectory, and get_drug, which all surface efficacy numbers at different granularities; the descriptions do enough to separate them, but an agent could still reach for compare_efficacy when get_trajectory was intended.
All seven names follow a clean verb_noun pattern (get_, list_, search_, compare_), with consistent snake_case throughout. The verbs accurately signal the operation type: getters for single records, list for collections, search for queries, compare for the multi-row table.
Seven tools is well within the sweet spot and each one covers a genuinely different slice of the data (drug, trial, efficacy table, AEs, curve, catalysts, search). No tool feels redundant or like filler.
The read-only research surface is well covered: lookup by drug, trial, full efficacy tables, AE verification, trajectory, and forward-looking catalysts. Minor gaps remain — there is no way to enumerate trials by sponsor or list drugs by class/mechanism without free-text search, and no explicit source/citation retrieval beyond the page URL embedded in get_drug.
Available Tools
7 toolscompare_efficacyCInspect
The extracted weight-loss table, 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.
| Name | Required | Description | Default |
|---|---|---|---|
| drugs | No | ||
| limit | No | ||
| metric | No | mean_weight_change_pct | |
| estimand | No | ||
| timepoint_weeks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It adds valuable context that rows are not collapsed and that labels are returned so the caller can compare correctly, but it omits operational behavior such as whether the operation is read-only, how limit/pagination works, and what filtering does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The response shape is front-loaded in the first sentence, and the remaining sentences explain the non-collapsed behavior without excessive repetition. It is somewhat discursive, but the framing is purposeful and not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter tool with no output schema and no annotations, the description is incomplete. It explains the conceptual output granularity, but it leaves parameter meanings, filtering behavior, defaults, and return structure largely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for five parameters, so the description needs to explain drug filtering, limit, metric, estimand, and timepoint_weeks. It only alludes conceptually to doses, timepoints, and estimands; it does not map any parameter to its meaning, accepted values, or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly describes the returned resource: a weight-loss table joined to trial design with one row per arm and timepoint. It distinguishes this output from a collapsed per-drug comparison, so an agent can tell what it will get. It does not, however, differentiate itself from the named sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the tool is for making efficacy comparisons while leaving the choice among doses, timepoints, and estimands to the caller. The description explains that it is not meant to pick a single winner per drug, but it does not give explicit when-to-use conditions or name alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_adverse_eventsCInspect
Extracted adverse-event rates by trial and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| drug | No | ||
| limit | No | ||
| trial | No | ||
| ae_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that verification is carried through verbatim and shows how it is derived from raw counts, but it does not cover read-only behavior, permissions, filtering behavior, or result-size implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence and the verification explanation is compact. The second sentence is somewhat verbose relative to the core purpose, but it remains focused and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four optional parameters, no schema descriptions, no annotations, and no output schema, the description is too thin on filtering and parameter behavior. It explains the verification field well but leaves the agent without enough guidance to use the filters correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for four undocumented parameters. It mentions trial and arm, but does not explain the drug, limit, or ae_type filters, nor how null/default values behave.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as extracted adverse-event rates by trial and arm, so the agent knows what kind of data the tool returns. It does not explicitly differentiate itself from siblings such as get_trial or compare_efficacy, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the verification field is but gives no guidance on when to use this tool versus alternatives such as compare_efficacy or get_trial. Usage is only implied by the tool name and the adverse-event subject matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_drugAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It does well by disclosing the matching precedence (slug, exact name/brand, substring) and what the returned record contains (efficacy figures with estimand tags, page URL), though it omits what happens when no drug matches or when matching is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then adds only the matching behavior needed to invoke the tool correctly. Both paragraphs are dense with useful information and contain no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with no output schema, the description is largely complete: it explains matching and mentions key returned fields. It still lacks explicit not-found or ambiguity behavior, which would help an agent understand failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the single 'name' parameter. It does so thoroughly, specifying that input can be a slug, exact name/brand, or substring, and gives concrete examples that clarify accepted forms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: the full record for one drug, including efficacy figures and page URL. That distinguishes it from sibling tools like search_drugs or compare_efficacy, which cover multiple drugs or comparisons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'one drug' and the matching behavior, suggesting direct lookup rather than search. However, it does not explicitly say when to use this instead of search_drugs or other siblings, nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trajectoryBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| drug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real context: it discloses that the response includes endpoint_pct and its estimand and explains why — the endpoint marker and last plotted point are distinct quantities. That is a genuinely useful disclosure beyond the schema, but nothing is said about permissions, data provenance/accuracy limits of 'digitised' values, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence and the second sentence justifies the extra endpoint fields rather than padding. The rationale clause is slightly long-winded but each sentence carries information, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe returns, and it partially does (week-by-week points, per-dose series, endpoint_pct with estimand). However, it omits the shape of those series, units, how many points to expect, and the drug-identifier format, leaving meaningful gaps for a data-retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'drug' has 0% schema description coverage — a bare string with no title or docs — and the description only says the curve is 'for a drug.' It never states whether the value is a name, slug, or ID, or whether fuzzy matching is supported, so the agent is left to guess the accepted format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — the digitised week-by-week weight-loss curve for a drug, plus per-dose series — which no sibling tool provides. It is clear what data comes back, though it never explicitly contrasts itself with compare_efficacy or get_drug, so an agent must infer the split from the resource name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can deduce this is the tool for pulling a curve, but there is no statement of when to reach for it instead of compare_efficacy or get_drug, no prerequisite for the drug identifier, and no exclusions. Nothing steers selection beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trialBInspect
One trial's design, by NCT number or by trial key (SURMOUNT-1, scale, redefine-1).
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses almost no behavior: nothing about error handling for unknown trials, whether aliases are case-insensitive, or what 'design' actually contains. The one behavioral clue is that alternative identifier forms (NCT number or trial key) are accepted, but that is input-level, not behavioral context about the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero filler, with the resource and the accepted identifier forms front-loaded. Nothing is wasted and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema and no annotations, the description is minimally adequate: an agent knows what it fetches and how to identify the trial. It leaves open what 'design' returns and how failures surface, which for a tool with no annotation safety net is a meaningful residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter is just named 'identifier', but the description compensates well by enumerating the accepted forms (NCT number or trial key) with three concrete examples (SURMOUNT-1, scale, redefine-1). It is not exhaustive (no statement on case sensitivity or ambiguity when multiple trials match), but it does real work the schema does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('get' a 'trial') and narrows the return to the trial's 'design', which implicitly distinguishes it from siblings like get_adverse_events or compare_efficacy. It does not name a sibling explicitly, keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as compare_efficacy, get_adverse_events, or search_drugs. The only guidance is about input format, not selection context or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_catalystsCInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | ||
| limit | No | ||
| to_date | No | ||
| from_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load, and it does add genuine behavioral context: dates are ISO strings or bare years and are compared lexicographically, which tells the agent how ordering behaves. However it says nothing about result volume, what the default limit of 40 implies, or ordering of the returned list beyond the date-comparison note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is well front-loaded and tight. The second paragraph spends three lines on a lexicographic-sorting rationale that could be one clause, which dilutes an otherwise short definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter, zero-coverage, no-annotation, no-output-schema tool, the description is not sufficient: an agent still cannot tell what tier values are legal, how limit interacts with paging, or how the two date filters combine. Only the date-format caveat is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all four parameters (tier, limit, from_date, to_date) arrive undocumented. The description hints at date handling but never names from_date/to_date, never says whether bounds are inclusive, and leaves 'tier' and 'limit' completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names the resource concretely (readouts, approvals, trial starts across sponsors) with upcoming/recent scope, so an agent knows roughly what comes back. It lacks an explicit verb ('list') and never contrasts itself with siblings like get_trial or get_trajectory, so the boundary is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus the sibling tools, no mention of the optional date-range filters as a way to narrow results, and no explanation of what 'tier' selects. The agent must guess at trigger conditions entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_drugsCInspect
Search the drug boards by free text and by field.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| limit | No | ||
| query | No | ||
| status | No | ||
| sponsor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose result format, pagination behavior, default limit, permissions, or whether multiple filters are combined with AND/OR. The agent learns only that this is a search operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Its brevity is appropriate structurally, though it is under-specified rather than concise in a helpful way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter search tool with no annotations, no output schema, and 0% schema description coverage, the description is far too sparse. It should explain what fields are searchable, filter behavior, and default result limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not map any of the five parameters (query, area, status, sponsor, limit) to their meanings or expected formats. 'By free text and by field' is a minimal hint but does not compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search the drug boards.' However, 'drug boards' is undefined, and the tool is not differentiated from siblings like get_drug or list_catalysts. The phrase 'by free text and by field' adds some scope but remains vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this search versus get_drug or other siblings. 'By free text and by field' hints at input modes but does not state exclusions, alternatives, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
compare_efficacy - First observed
get_adverse_events - First observed
get_drug - First observed
get_trajectory - First observed
get_trial - First observed
list_catalysts - First observed
search_drugs
Related MCP Connectors
GLP-1 phase-aware nutrition: muscle preservation, GI tolerance, taper protocols.
- OxynetOAuthnet.oxynet
Cardiopulmonary exercise test (CPET) analysis: ventilatory thresholds, metrics and substrate use.
Legal status of peptides and GLP-1 drugs in the US, UK, EU, Australia, Canada, Brazil and sport.
GLP-1 calorie and protein targets with a dose aware appetite ceiling, plus food and recipe search.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to rank US healthcare organizations for clinical trial site feasibility, predicting patient accrual for a Graves' disease protocol using claims and registry data.-
- FlicenseNot gradedqualityBmaintenanceAn MCP server that provides clinical decision support for polysubstance risk and drug–substance interactions, grounding LLM responses in a 7-level evidence cascade with population priors and validated screening triggers.-
- AlicenseNot gradedqualityDmaintenanceAnalyzes clinical trial site feasibility, enrollment velocity, eligibility criteria, and benchmark performance across ClinicalTrials.gov's registry via a structured MCP interface.ISC
- FlicenseNot gradedqualityBmaintenanceBridges Codex with MiMoCode as a coding agent for planning, implementation, and review via MCP tools.-
Glama MCP Gateway
Add one secure layer between your agents and this server.