Prompts for your agent.
59 prompts across the jobs on our use case pages, each with the Erudio MCP calls that answer it and one thing to get right. Copy them, adapt them, or point your agent at the Markdown version.
Read https://www.erudio.com/agents/prompts.md for example prompts and the Erudio MCP tools that answer them. Use them when I ask about clinician commentary on a trial.Free, no key
Find reports, read the free catalog record, and order a report or weekly updates.
search_reports · get_report_card · create_order · get_order
Reports your organization holds
See what you hold and until when, read a report whole or by section, catch up on new editions, and look up the clinicians in it.
get_my_access · list_reports · read_report · get_report_changes · lookup_profile
Enterprise
Search the full commentary corpus and fetch passages with speaker, date and link.
search · fetch · fetch_x_thread_sources · list_sources
Server: https://mcp.erudio.com/mcp. See Erudio MCP for setup and For agents for the plain HTTP endpoints.
Start here
Find the right report, then read only what the question needs.
“Which Erudio reports can we read, what did we buy for each, and until when do new editions come in? Remember the dates.”
Reports your organization holdsCall it at the start of any Erudio work, and keep the dates for later checks.
mcpget_my_access({})“List the reports we hold, with each trial, edition and date, and the trial aspects each one covers.”
Reports your organization holdsThe default read_report call returns a small index of metadata and aspects. Start there before asking for detail.
mcplist_reports({ "limit": 50 }) read_report({ "report_id": "<id>" })“Which Erudio reports cover <drug>, and what does each one's free preview say?”
Free, no keyDiscovery needs no key. Quote previews with a link to the report page.
mcpsearch_reports({ "drug": "<drug>" }) get_report_card({ "slug": "<slug>" })“Summarize the findings of the <trial> report, then show me the verified claims and source passages behind the second one.”
Reports your organization holdsAsk for findings first, then expand only the findings the user cares about.
mcpread_report({ "report_id": "<id>", "sections": ["findings"] }) read_report({ "report_id": "<id>", "finding_ids": ["<finding id>"], "sections": ["findings", "verified_claims"] })“Load the whole <trial> report so we can work through it together.”
Reports your organization holdssections: ["all"] returns the full export. Page dependencies with dependency_offset until complete.
mcpread_report({ "report_id": "<id>", "sections": ["all"] })
Meeting prep
The use case →Know what a clinician has said in public before a scientific exchange.
“I'm meeting these three oncologists next week (NPIs below). For each, what have they said publicly about <trial> in the last 12 months? Link every statement.”
EnterpriseMatch people by NPI or X author ID, not by name alone, and say when an identity is unverified.
mcplookup_profile({ "npis": ["<NPI>", "<NPI>", "<NPI>"] }) search({ "query": "<trial>", "author": "<X username>", "published_after": "<date>" })“Has Dr. <name> changed their view on <topic> over the last two years? Put the dated posts side by side.”
EnterpriseGive dates for every view so a change over time is visible, and link the exact post.
mcplookup_profile({ "npi": "<NPI>" }) search({ "query": "<topic>", "author": "<X username>", "types": ["x_thread"] }) fetch_x_thread_sources({ "conversation_id": "<id>" })“Find podcast or video appearances where Dr. <name> discusses <trial>, and give me the passage and timestamp link for each.”
EnterpriseReturn passages with a link to the original, never a full transcript.
mcpsearch({ "query": "<clinician name> <trial>", "types": ["podcast", "youtube"] }) fetch({ "ids": ["<result id>"] })“Give me three open questions from the <trial> report that would make a good scientific exchange with a surgical oncologist.”
Reports your organization holdsFrame them as questions clinicians raised, with the finding each comes from.
mcpsearch_reports({ "nct_id": "<NCT ID>" }) read_report({ "report_id": "<id>", "sections": ["findings"] })“Who are the clinicians quoted in the <trial> report, and what are their specialties and practice settings?”
Reports your organization holdsPeople in a report are cards; call lookup_profile with each card's profile arguments for the full profile.
mcpread_report({ "report_id": "<id>", "sections": ["people"] }) lookup_profile({ "names": ["<speaker>", "<speaker>"] })
Readout reaction
The use case →See how clinicians read a result in the days and weeks after it lands.
“What are clinicians questioning about <trial>? Keep their interpretation separate from what the primary results establish.”
Reports your organization holdsPrimary results come from the registry and publications, never from commentary.
mcpsearch_reports({ "nct_id": "<NCT ID>" }) read_report({ "report_id": "<id>", "sections": ["findings", "aspects"] })“Which of the classic readout questions (comparator, endpoint, subgroup, generalizability) are clinicians raising about <trial>?”
Reports your organization holdsMap each question to the trial aspect it concerns, and say when an aspect has no commentary.
mcpread_report({ "report_id": "<id>", "sections": ["aspects", "findings"] })“Where do surgeons and medical oncologists read <trial> differently, and what reasons does each side give?”
Reports your organization holdsDescribe the disagreement with its reasons. Do not score who is right.
mcpread_report({ "report_id": "<id>", "sections": ["findings", "people"] })“What have clinicians posted or said about <trial> since the readout on <date>? Group the reactions by theme.”
EnterpriseVolume is not consensus. Say who said what, not what most clinicians think.
mcpsearch({ "query": "<trial> results", "published_after": "<readout date>" }) fetch({ "ids": ["<result id>", "<result id>"] })“Draft a one-page internal brief on the reaction to <trial>, with a link behind every view.”
Reports your organization holdsCite the report edition and link each view to its source passage.
mcpread_report({ "report_id": "<id>", "sections": ["findings", "verified_claims"] })
Congress briefing
The use case →A sourced briefing on how a congress presentation was received.
“Which reports changed since the congress opened, and what changed in each?”
Reports your organization holdsRead the change log first and reread only the findings it names.
mcpsearch_reports({ "updated_since": "<congress start>" }) get_report_changes({ "report_id": "<id>", "since_edition": <n> })“What did clinicians say about <competitor trial>'s presentation on day one, and did anything shift by day three?”
EnterpriseLabel early reactions with their date so later clarifications are not hidden.
mcpsearch({ "query": "<trial> <congress>", "published_after": "<congress start>" }) fetch_x_thread_sources({ "conversation_id": "<id>" })“List the podcast episodes recorded after the congress that discuss <trial>, with a link and timestamp for each.”
EnterpriseReturn the passage and a timestamped link, not the transcript.
mcpsearch({ "query": "<trial>", "types": ["podcast"], "published_after": "<congress end>" })“Who spoke about <trial> in those episodes? Give each speaker's specialty, practice and research affiliations, and say which identities are verified.”
EnterpriseA speaker known only by a first name stays that way. Never complete a name.
mcpsearch({ "query": "<trial> <congress>", "types": ["podcast", "youtube"] }) lookup_profile({ "names": ["<speaker>", "<speaker>"] })“Brief me on the clinician reaction to the late-breaking abstracts in <therapeutic area> at <congress>, with sources.”
Reports your organization holdsGroup by trial and keep every reaction linked to its source.
mcpsearch_reports({ "therapeutic_area": "<area>", "updated_since": "<congress start>" }) read_report({ "report_id": "<id>", "sections": ["findings"] })
Advisory boards
The use case →Build an agenda around the questions clinicians actually disagree about.
“Draft an advisory board agenda around the main questions clinicians disagree about in the <trial> report, with the reasons each side gives.”
Reports your organization holdsLead with live disagreements, each tied to its finding.
mcpread_report({ "report_id": "<id>", "sections": ["findings", "aspects"] })“For each agenda question, list the strongest public argument on each side, with links.”
Reports your organization holdsUse the verified claims and their source passages, and attribute each argument.
mcpread_report({ "report_id": "<id>", "finding_ids": ["<finding id>"], "sections": ["findings", "verified_claims"] })“Which aspects of <trial> have almost no public commentary, so the board should cover them?”
Reports your organization holdsReport aspects with no commentary as such. Do not fill them in.
mcpread_report({ "report_id": "<id>", "sections": ["aspects", "coverage"] })“Turn the open Medical Affairs question in the <trial> report into five discussion prompts for a mixed surgical and medical panel.”
Reports your organization holdsThe report raises the question; it does not settle it. Keep the prompts open.
mcpread_report({ "report_id": "<id>", "sections": ["metadata", "findings"] })“Pick five public sources from the <trial> report that would work as pre-reads, one per agenda question.”
Reports your organization holdsLink to the original source and say what each one covers.
mcpread_report({ "report_id": "<id>", "sections": ["sources"] })
Competitive context
The use case →How clinicians compare therapies, and where the comparison breaks down.
“How do clinicians compare <regimen A> and <regimen B> in public, and what do they say prevents a direct comparison?”
Reports your organization holdsKeep each cross-trial comparison attributed to the clinician who made it.
mcpsearch_reports({ "indication": "<indication>" }) read_report({ "report_id": "<id>", "sections": ["findings"] })“Which reports in <indication> discuss <comparator>, and how do clinicians weigh it?”
Reports your organization holdsNo efficacy verdicts and no consensus claims.
mcpsearch_reports({ "indication": "<indication>" }) read_report({ "report_id": "<id>", "sections": ["findings", "verified_claims"] })“What do clinicians say would change their choice between <drug A> and <drug B>? Quote the passages.”
EnterpriseShort quotes with a link to the original, and the speaker and date.
mcpsearch({ "query": "<drug A> versus <drug B>" }) fetch({ "ids": ["<result id>", "<result id>"] })“Summarize the <competitor trial> report in five findings, keeping every caveat clinicians attach.”
Reports your organization holdsPopulation, comparator and endpoint limits belong in the summary, not a footnote.
mcpsearch_reports({ "nct_id": "<competitor NCT ID>" }) read_report({ "report_id": "<id>", "sections": ["findings"] })“Which trials from <competitor> and which of ours have Erudio reports? Lay them out side by side.”
Free, no keyEvery report has the same structure, so the same sections compare across trials.
mcpsearch_reports({ "sponsor": "<competitor>" }) search_reports({ "drug": "<our drug>" })
Evidence gaps
The use case →The questions clinicians ask that the evidence does not answer.
“List the evidence gaps clinicians raise about <trial>, and which aspects have no public commentary at all.”
Reports your organization holdsA gap here is a question clinicians raise in public, not a review of all literature.
mcpread_report({ "report_id": "<id>", "sections": ["aspects", "coverage"] })“Group the unanswered clinician questions about <trial> by type: comparator, subgroup, endpoint, real-world use.”
Reports your organization holdsTie each question to the finding and the sources that raised it.
mcpread_report({ "report_id": "<id>", "sections": ["findings", "aspects"] })“Which of these gaps could a post-hoc analysis address, and which need a new study? Explain your reasoning.”
Reports your organization holdsThat judgment is yours, not the report's. Label it as your analysis.
mcpread_report({ "report_id": "<id>", "sections": ["findings", "statistics"] })“Across the reports we hold, which unanswered question comes up in more than one trial?”
Reports your organization holdsRead findings for each report and cite the report and finding for every match.
mcplist_reports({ "limit": 50 }) read_report({ "report_id": "<id>", "sections": ["findings"] })“For our evidence plan, rank the trials in <therapeutic area> by how many aspects are still incomplete or have no commentary.”
Reports your organization holdsCoverage is per trial aspect; say which are incomplete rather than empty.
mcpsearch_reports({ "therapeutic_area": "<area>" }) read_report({ "report_id": "<id>", "sections": ["coverage"] })
Launch and access signals
The use case →The practical barriers clinicians raise before and after an approval.
“Ahead of approval, what practical barriers do clinicians raise about <regimen>, separate from their view of the efficacy data?”
Reports your organization holdsKeep delivery concerns apart from views of the evidence.
mcpsearch_reports({ "drug": "<drug>" }) read_report({ "report_id": "<id>", "sections": ["findings"] })“Which testing or referral steps do clinicians say would have to change for <regimen> to be used?”
EnterpriseName who raised each step and when.
mcpsearch({ "query": "<drug> testing referral", "published_after": "<date>" }) fetch({ "ids": ["<result id>"] })“What toxicity-management questions should our medical information team prepare for on <drug>?”
EnterpriseReport questions as clinicians asked them. Do not answer them with product claims.
mcpsearch({ "query": "<drug> toxicity management", "published_after": "<date>" })“Since approval, have access or cost concerns about <drug> grown or faded? Show the dated sources.”
EnterpriseUse dates to show the trend. Counts of sources are not a share of clinicians.
mcpsearch({ "query": "<drug> access cost reimbursement", "published_after": "<approval date>" })“Which community oncologists, as opposed to academic centers, are discussing <drug>, and what do they raise?”
EnterpriseUse NPI practice data from lookup_profile and say when a setting is not known.
mcpsearch({ "query": "<drug>", "published_after": "<date>" }) lookup_profile({ "author_ids": ["<author id>", "<author id>"] })
Trial watchlist
The use case →Follow your own and competitor trials, and see only what changed.
“For the trials on my watchlist, tell me which reports changed this week and summarize only what is new.”
Reports your organization holdsA no-change week is a result. Say it in one line.
mcplist_reports({ "limit": 50 }) get_report_changes({ "report_id": "<id>", "since_edition": <n> })“What changed in the <trial> report since the edition I read? Do I need to reread the whole thing?”
Reports your organization holdsFollow recommended_consumption: changelog_only, affected_sections or full_report.
mcpget_report_changes({ "report_id": "<id>", "since_edition": <n> }) read_report({ "report_id": "<id>", "finding_ids": ["<changed finding id>"], "sections": ["findings"] })“Which of <competitor>'s trials picked up new clinician commentary this month?”
Free, no keyDiscovery is free, so this check needs no license.
mcpsearch_reports({ "sponsor": "<competitor>", "updated_since": "<date>" })“Flag any finding where clinician interpretation shifted since our last brief, with the new sources.”
Reports your organization holdsClaim IDs are stable across editions, so you can compare a claim directly.
mcpget_report_changes({ "report_id": "<id>", "since_edition": <n> }) read_report({ "report_id": "<id>", "claim_ids": ["<claim id>"], "sections": ["verified_claims"] })“Give me the full edition history of the <trial> report, with what changed in each edition.”
Reports your organization holdsCite the version and release hash of each edition you mention.
mcpget_report_changes({ "report_id": "<id>", "since_edition": 0 })
Education needs assessment
The use case →The practice gaps clinicians describe, with the source behind each.
“From the <trial> report, list the practice questions clinicians ask that would make good learning objectives, with the source for each.”
Reports your organization holdsNeeds come with sources, not survey-based prevalence.
mcpread_report({ "report_id": "<id>", "sections": ["findings", "aspects"] })“Which testing and treatment-sequencing questions come up repeatedly across reports in <therapeutic area>?”
Reports your organization holdsCite the report and finding for each repeat.
mcpsearch_reports({ "therapeutic_area": "<area>" }) read_report({ "report_id": "<id>", "sections": ["findings"] })“Draft the gap analysis section of a needs assessment on <topic>, citing the public clinician questions behind each gap.”
EnterpriseKeep commercial messaging out. The evidence for each gap is the cited passage.
mcpread_report({ "report_id": "<id>", "sections": ["findings", "verified_claims"] }) search({ "query": "<topic> practice question", "published_after": "<date>" })“Which disagreements in the <trial> report would work as a debate-format session?”
Reports your organization holdsPick disagreements where both sides give reasons, and link both.
mcpread_report({ "report_id": "<id>", "sections": ["findings"] })“Which podcasts and video channels discuss <topic> most often, so we know where clinicians are already learning about it?”
EnterpriseCounts describe retained sources, not audience size.
mcpsearch({ "query": "<topic>", "types": ["podcast", "youtube"] }) list_sources({})
Keep current
Subscribed reports get weekly updates for the length of the plan. Have your agent remember when to check, and until when.
“Check which of our reports have weekly updates and until when. Each Monday until then, check for a new edition and tell me what changed.”
Reports your organization holdsStore the edition you last read and the plan's end date, and check against them.
mcpget_my_access({}) get_report_changes({ "report_id": "<id>", "since_edition": <n> })“Is there anything new in the reports we hold since <date>? If nothing changed, say so in one line.”
Reports your organization holdsMost weeks, most trials do not change. Do not pad a no-change answer.
mcpget_report_changes({ "report_id": "<id>", "since_edition": <n> })“Update the brief we wrote from edition <n> of the <trial> report so it reflects the latest edition, and list what you changed.”
Reports your organization holdsUse the current edition's report_id from get_report_changes, and cite both editions.
mcpget_report_changes({ "report_id": "<id>", "since_edition": <n> }) read_report({ "report_id": "<current id>", "aspect_ids": ["<aspect id>"], "sections": ["aspects"] })“Have any reports we rely on been corrected or withdrawn? If so, what does that change in our materials?”
Free, no keyCorrections are published, not silent. Cite the correction note.
mcpsearch_reports({ "change_status": "corrected" }) search_reports({ "change_status": "withdrawn" })“Which new reports were published this month in <therapeutic area>, and which would be worth buying?”
Free, no keyRecommend; buying is a separate step the user takes.
mcpsearch_reports({ "updated_since": "<date>" }) get_report_card({ "slug": "<slug>" })
Buy a report
Your agent can quote and start an order at the public price. The buyer pays by card on the checkout page.
“Buy the current edition of the <trial> report for me. Show me the price first and give me the checkout link.”
Free, no keyConfirm the price with the user before calling create_order. Your actions bind the person or organization you act for.
mcpget_report_card({ "slug": "<slug>" }) create_order({ "report": "<NCT ID>", "product": "edition", "buyer_email": "<work email>" })“Order six months of weekly updates on the <trial> report for our team at <company>.”
Free, no keyReuse the same idempotency_key if you retry, so the order is not duplicated.
mcpcreate_order({ "report": "<NCT ID>", "product": "updates-6", "buyer_email": "<work email>", "organization": "<company>", "idempotency_key": "<unique key>" })“I've paid. Set up the <trial> report so you can read it, and remember when the updates end.”
Reports your organization holdsOnce paid, get_order returns the licence key. Store it as a secret and send it as licence_key with every later create_order, so all reports sit on one key.
mcpget_order({ "status_url": "<status url>" }) get_my_access({})“Buy the <trial> report too, on the same Erudio key.”
Free, no keySend the key you already hold, so the new report joins it. Lost it? recover_key emails the buyer their account key, which reads every report on their email.
mcpcreate_order({ "report": "<NCT ID>", "product": "edition", "buyer_email": "<work email>", "licence_key": "<your Erudio key>" })
Report a clinician's view as theirs, with its source. Answers carry passages and short quotes with a link to the original, never full transcripts. Counts describe retained sources, not consensus. Cite the report edition. Placeholders in angle brackets are yours to fill.