{"$schema":"https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json","name":"io.pepbank/pepbank","title":"PepBank Peptide Research MCP: BPC-157, Retatrutide and Tirzepatide Studies and Trials","description":"Studies and clinical trials for BPC-157, retatrutide, tirzepatide and 160+ peptides, with sources.","version":"1.5.4","websiteUrl":"https://pepbank.io/developers","icons":[{"src":"https://pepbank.io/icon-512.png","mimeType":"image/png","sizes":["512x512"]},{"src":"https://pepbank.io/icon.svg","mimeType":"image/svg+xml","sizes":["any"]}],"remotes":[{"type":"streamable-http","url":"https://pepbank.io/mcp","supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05","2024-10-07"]}],"serverInfo":{"name":"PepBank","title":"PepBank Peptide Research MCP: BPC-157, Retatrutide and Tirzepatide Studies and Trials","description":"Studies and clinical trials for BPC-157, retatrutide, tirzepatide and 160+ peptides, with sources.","version":"1.5.4","websiteUrl":"https://pepbank.io/developers","icons":[{"src":"https://pepbank.io/icon-512.png","mimeType":"image/png","sizes":["512x512"]},{"src":"https://pepbank.io/icon.svg","mimeType":"image/svg+xml","sizes":["any"]}]},"protocolVersion":"2025-11-25","transport":{"type":"streamable-http","endpoint":"https://pepbank.io/mcp"},"capabilities":{"tools":{"listChanged":false},"prompts":{"listChanged":false},"resources":{"listChanged":false}},"authentication":{"required":false,"schemes":["bearer"]},"tools":[{"name":"resolve_peptide","title":"Resolve peptide name","description":"Return peptide IDs and name matches for a name, alias or code. Use this before other calls when the name is unclear. Use search_peptides instead to browse or filter many peptides. Matching order: exact alias, normalized alias, trigram similarity, then edit distance. Normalization ignores letter case, spaces, hyphens and symbols. Greek letters use their names, so α-MSH matches alpha-MSH. Edit distance allows at most 2 typing errors against featured peptides only, so retratutide finds retatrutide. Trigram and edit_distance matches are guesses. An ambiguous status returns candidates without selecting a peptide.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias or code. Example: BPC 157."}},"required":["name"]},"annotations":{"title":"Resolve peptide name","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"matches":{"description":"Matches.","type":"array","items":{}},"candidates":{"description":"Candidates.","type":"array","items":{}}},"additionalProperties":true}},{"name":"get_peptide_brief","title":"Get peptide brief","description":"For a dose question, use studied_doses together with get_community_practice. Return a precomputed summary of one peptide: identity, sequence, checked findings by evidence class, trials, key findings with citations, coverage and notices. regulatory gives approval by place and use, plus sport status. Use this for an overview of a known peptide. Use resolve_peptide first for an unclear name, search_findings for a specific outcome, or compare_peptides for 2 to 5 peptides. Counts and key findings use administered findings only. The key_findings_v0.4 rule excludes method-only outcome groups when other groups have findings. Its order is evidence class, design tier, analysis role, sample size, citations, then newer. coverage.checked_years gives the year span of checked papers. coverage.search_scope_years gives the search scope. Trials counted test the peptide. evidence_summary.trials.other_registry_entries counts entries that only measure or mention it. Notices describe coverage limits. Each finding has an evidence class: human, animal, laboratory or predicted. A count of 0 human findings means no checked human findings within the filters or outcome group. It does not mean that no human study exists. Returned doses are the doses that studies used, with species, route, design and source.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"peptide":{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias, slug or ID. Examples: BPC-157, semaglutide, PEP-000001."},"community":{"description":"Include community reports. Needs the community dataset grant. Default false.","type":"boolean"},"view":{"description":"Default compact.","type":"string","enum":["compact","full"]}},"required":["peptide"]},"annotations":{"title":"Get peptide brief","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"studied_doses":{"description":"Studied doses.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"study_counts":{"description":"Counts.","type":"object","properties":{"papers_with_results":{"type":"integer","minimum":0,"maximum":9007199254740991},"papers_with_results_administered":{"type":"integer","minimum":0,"maximum":9007199254740991},"results_administered":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["papers_with_results","papers_with_results_administered","results_administered"],"additionalProperties":false},"key_findings":{"description":"Findings.","type":"array","items":{}},"notices":{"description":"Notices.","type":"array","items":{}}},"additionalProperties":true}},{"name":"get_community_practice","title":"Get community practice","description":"Return what community sources report about how people use one peptide: uses, regimens (route, amount, how often, how long), reported side effects, cautions and regulatory status notes such as US compounding policy, each line with its sources. Community-reported, not tested in trials. Use it for use, dose, cycle and compounding questions, together with studied_doses from get_peptide_brief. Seller pages are never sources. A peptide can have no record. Default compact keeps key lines, and view=\"full\" returns every line.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"peptide":{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias, slug or ID. Examples: BPC-157, semaglutide, PEP-000001."},"view":{"description":"Default compact.","type":"string","enum":["compact","full"]}},"required":["peptide"]},"annotations":{"title":"Get community practice","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"regimens":{"description":"Regimens.","type":"array","items":{}},"status_notes":{"description":"Policy notes.","type":"array","items":{}},"sources":{"description":"Sources.","type":"array","items":{}}},"additionalProperties":true}},{"name":"search_peptides","title":"Search peptides","description":"Return peptides with identity and evidence counts. Use this to browse or filter by text, category, kind, evidence level, registry level or the curated launch list. Use resolve_peptide instead for one unclear name, or get_peptide_brief for one peptide summary. evidence_level comes only from checked findings of studies that gave the peptide. registry_level comes from registered trials that test the peptide and the curated phase. It says nothing about results.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"q":{"type":"string","minLength":1,"maxLength":500,"description":"Free-text query. Words are combined with AND. Example: tendon healing."},"category":{"description":"Category key, matched exactly: weight_metabolic, recovery_repair, skin, longevity_mitochondrial, brain_mood, gut_digestion, immune_antimicrobial, sexual_health_hormones or growth_hormone_axis.","type":"string","maxLength":80},"kind":{"description":"Peptide kind, for example synthetic_analog.","type":"string","maxLength":60},"evidence_level":{"description":"Evidence level, from checked findings of studies that gave the peptide only: human_rct (a randomized trial in people), human_other (other designs in people), animal, laboratory, predicted or none. A trial, a trial phase or an approval never raises it: use registry_level for those.","anyOf":[{"type":"string","enum":["human_rct","human_other","animal","laboratory","predicted","none"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["human_rct","human_other","animal","laboratory","predicted","none"]}}]},"registry_level":{"description":"Registry level, from registered trials that test the peptide and the curated development phase: approved (somewhere, for some use), phase_4, phase_3, phase_2, phase_1, registered (a trial exists, no phase on record) or none. It says nothing about results.","anyOf":[{"type":"string","enum":["approved","phase_4","phase_3","phase_2","phase_1","registered","none"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["approved","phase_4","phase_3","phase_2","phase_1","registered","none"]}}]},"featured":{"description":"Only peptides on the curated launch list.","type":"boolean"},"sort":{"description":"featured (default), relevance (default with q), name, evidence (by evidence level, then checked findings), registry (by registry level), publications or findings.","type":"string","enum":["featured","relevance","name","evidence","registry","publications","findings"]},"cursor":{"type":"string","minLength":1,"maxLength":4000,"description":"Opaque cursor from next_cursor of the previous page. Send the same filters again."},"limit":{"description":"Default 15. Max 15.","type":"integer","minimum":1,"maximum":100},"view":{"description":"Default compact.","type":"string","enum":["compact","full"]}}},"annotations":{"title":"Search peptides","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"results":{"description":"Rows.","type":"array","items":{}},"total_count":{"description":"Total.","type":"number"},"next_cursor":{"description":"Next page.","type":["string","null"]}},"additionalProperties":true}},{"name":"search_findings","title":"Search findings","description":"Return checked findings with exact total_count and source sentences in included.passages. Each finding is one claim from one paper. Use this for specific outcomes, with filters for peptide, evidence class, design, claim type, peptide role, direction, outcome group, body system and year. Use search_publications instead for paper discovery, or get_peptide_brief for an overview. Each finding has an evidence class: human, animal, laboratory or predicted. A count of 0 human findings means no checked human findings within the filters or outcome group. It does not mean that no human study exists. Each finding has claim.peptide_role. administered means the study gave the peptide. endogenous_level means the study measured the body's own peptide, for example after vitamin D. Those measurements are not evidence about taking the peptide. The peptide_role=administered filter selects studies that gave it. included.publications supplies each source PMID or DOI for citation. complete is true only on the last page. Returned doses are the doses that studies used, with species, route, design and source.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"q":{"type":"string","minLength":1,"maxLength":500,"description":"Free-text query. Words are combined with AND. Example: tendon healing."},"peptide":{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias, slug or ID. Examples: BPC-157, semaglutide, PEP-000001."},"evidence_class":{"description":"One or more of human, animal, laboratory, predicted.","anyOf":[{"type":"string","enum":["human","animal","laboratory","predicted"],"description":"Evidence class: human, animal, laboratory or predicted."},{"maxItems":50,"type":"array","items":{"type":"string","enum":["human","animal","laboratory","predicted"],"description":"Evidence class: human, animal, laboratory or predicted."}}]},"design":{"description":"Study design, for example randomized_controlled_trial or animal_in_vivo.","anyOf":[{"type":"string","enum":["systematic_review","randomized_controlled_trial","non_randomized_trial","observational_study","case_report_or_series","animal_in_vivo","ex_vivo_tissue","in_vitro_cell","in_vitro_cell_free","in_silico","other"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["systematic_review","randomized_controlled_trial","non_randomized_trial","observational_study","case_report_or_series","animal_in_vivo","ex_vivo_tissue","in_vitro_cell","in_vitro_cell_free","in_silico","other"]}}]},"claim_type":{"description":"efficacy_outcome, safety_outcome, pharmacokinetics, activity_measurement, mechanism or other.","anyOf":[{"type":"string","enum":["efficacy_outcome","safety_outcome","pharmacokinetics","activity_measurement","mechanism","other"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["efficacy_outcome","safety_outcome","pharmacokinetics","activity_measurement","mechanism","other"]}}]},"peptide_role":{"description":"Role of the peptide in the study: administered (the study gave the peptide), endogenous_level (the study measured the body's own peptide) or other. Without this filter, every role is returned and each finding carries claim.peptide_role. Use administered for questions about taking the peptide.","anyOf":[{"type":"string","enum":["administered","endogenous_level","other"],"description":"Role of the peptide in the study: administered, endogenous_level or other."},{"maxItems":50,"type":"array","items":{"type":"string","enum":["administered","endogenous_level","other"],"description":"Role of the peptide in the study: administered, endogenous_level or other."}}]},"direction":{"description":"Reported direction of the effect.","anyOf":[{"type":"string","enum":["increase","decrease","no_significant_change","mixed","not_applicable","not_reported"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["increase","decrease","no_significant_change","mixed","not_applicable","not_reported"]}}]},"outcome_group":{"description":"Outcome group, matched exactly, for example Wound healing or Body weight. get_evidence_map lists the outcome groups of a peptide.","type":"string","maxLength":80},"body_system":{"description":"Body system, matched exactly: Metabolic and weight, Nervous system and cognition, Endocrine and hormones, Cardiovascular, Musculoskeletal, Immune and inflammation, Reproductive and sexual health, Gastrointestinal, Cancer, Kidney and urinary, Mental health and mood, Liver, Skin and wound, Respiratory, Eye, Infection, Aging and longevity, Sleep, Whole body or Pharmacology. Use q for free text.","type":"string","maxLength":60},"validation":{"description":"checked (default): auto_checked and human_verified findings only. all: every finding, also the ones with the status unvalidated, rejected, disputed or out_of_scope (a paper that a scope policy leaves out). Look at validation_status before you use one.","type":"string","enum":["checked","all"]},"source_status":{"description":"Default: active and corrected sources (a published correction does not change a finding). A value here returns only that status. Retracted sources are excluded unless you ask for them.","type":"string","enum":["active","corrected","expression_of_concern","retracted","withdrawn","removed_from_source"]},"publication_id":{"description":"Only findings from this publication (PUB-...).","type":"string","maxLength":40},"published_from":{"description":"First publication year.","type":"integer","minimum":1800,"maximum":2100},"published_to":{"description":"Last publication year.","type":"integer","minimum":1800,"maximum":2100},"include_retracted":{"description":"Include findings from retracted papers. Default false.","type":"boolean"},"sort":{"description":"key (default without q): the key-finding rule key_findings_v0.4 (administered first, then evidence class, design tier, analysis role, sample size, citations, newer). relevance (default with q), newest or sample_size.","type":"string","enum":["key","newest","relevance","sample_size"]},"as_of_seq":{"description":"Read the data as it was at this data_seq. Use it to reproduce an earlier answer.","type":"integer","minimum":0,"maximum":9007199254740991},"cursor":{"type":"string","minLength":1,"maxLength":4000,"description":"Opaque cursor from next_cursor of the previous page. Send the same filters again."},"limit":{"description":"Default 10. Max 20 compact, 10 full.","type":"integer","minimum":1,"maximum":100},"view":{"description":"Default compact.","type":"string","enum":["compact","full"]}}},"annotations":{"title":"Search findings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"results":{"description":"Rows.","type":"array","items":{}},"total_count":{"description":"Total.","type":"number"},"next_cursor":{"description":"Next page.","type":["string","null"]}},"additionalProperties":true}},{"name":"search_publications","title":"Search publications","description":"Return stored papers with citation identifiers and extraction status. Use this for paper discovery, publication dates or unchecked coverage. Use search_findings instead for checked claims and source sentences, or get_peptide_brief for a peptide overview. extraction_status identifies the layer: extracted is layer 1 with checked findings. queued and stored_only are layer 2 without checked findings. Layer 2 results carry contains_unchecked_papers. Abstract text appears only when the article license allows it. design_hint is an unchecked PubMed publication-type tag. profile describes the checked findings of a paper: evidence classes, designs, species and peptide roles.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"q":{"type":"string","minLength":1,"maxLength":500,"description":"Free-text query. Words are combined with AND. Example: tendon healing."},"peptide":{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias, slug or ID. Examples: BPC-157, semaglutide, PEP-000001."},"design":{"description":"Filter by design_hint: the PubMed publication-type tag of the paper, not checked. One of meta_analysis, systematic_review, rct, clinical_trial, observational, case_report, review, animal, in_vitro, preprint, other. For the design of the checked findings, read profile in the results.","anyOf":[{"type":"string","enum":["meta_analysis","systematic_review","rct","clinical_trial","observational","case_report","review","animal","in_vitro","preprint","other"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["meta_analysis","systematic_review","rct","clinical_trial","observational","case_report","review","animal","in_vitro","preprint","other"]}}]},"extraction_status":{"description":"extracted = layer 1 (checked findings). queued or stored_only = layer 2 (not checked).","type":"string","enum":["extracted","queued","stored_only"]},"status":{"description":"Publication status, for example retracted.","anyOf":[{"type":"string","enum":["active","corrected","expression_of_concern","retracted","withdrawn","removed_from_source"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["active","corrected","expression_of_concern","retracted","withdrawn","removed_from_source"]}}]},"open_access":{"description":"Only open-access papers when true.","type":"boolean"},"primary_subject":{"description":"Only papers where the peptide is a main subject (title or MeSH).","type":"boolean"},"published_from":{"description":"First publication year.","type":"integer","minimum":1800,"maximum":2100},"published_to":{"description":"Last publication year.","type":"integer","minimum":1800,"maximum":2100},"sort":{"description":"relevance (default with q), newest (default), oldest, cited or evidence.","type":"string","enum":["relevance","newest","oldest","cited","evidence"]},"as_of_seq":{"description":"Read the data as it was at this data_seq. Use it to reproduce an earlier answer.","type":"integer","minimum":0,"maximum":9007199254740991},"cursor":{"type":"string","minLength":1,"maxLength":4000,"description":"Opaque cursor from next_cursor of the previous page. Send the same filters again."},"limit":{"description":"Default 10. Max 25 compact, 10 full.","type":"integer","minimum":1,"maximum":100},"view":{"description":"Default compact.","type":"string","enum":["compact","full"]}}},"annotations":{"title":"Search publications","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"results":{"description":"Rows.","type":"array","items":{}},"total_count":{"description":"Total.","type":"number"},"next_cursor":{"description":"Next page.","type":["string","null"]}},"additionalProperties":true}},{"name":"search_trials","title":"Search clinical trials","description":"Return registered clinical trials with registry status, phase, posted-results status and peptide role. Use this for clinical development and trial records. Use search_findings instead for checked study results, or get_record for one full trial. The default role=tests lists and counts trials that test the peptide. role=measures and role=mentions return entries that only measure or name it. role=all includes every role. Those entries are not trials of taking the peptide. other_registry_entries signals their presence. Registration alone is not evidence of an effect. has_results identifies posted results. view=list gives a full trial list with up to 100 rows per page.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"q":{"type":"string","minLength":1,"maxLength":500,"description":"Free-text query. Words are combined with AND. Example: tendon healing."},"peptide":{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias, slug or ID. Examples: BPC-157, semaglutide, PEP-000001."},"status":{"description":"Registry status, for example RECRUITING or COMPLETED.","anyOf":[{"type":"string","enum":["ACTIVE_NOT_RECRUITING","COMPLETED","ENROLLING_BY_INVITATION","NOT_YET_RECRUITING","RECRUITING","SUSPENDED","TERMINATED","WITHDRAWN","AVAILABLE","NO_LONGER_AVAILABLE","TEMPORARILY_NOT_AVAILABLE","APPROVED_FOR_MARKETING","WITHHELD","UNKNOWN"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["ACTIVE_NOT_RECRUITING","COMPLETED","ENROLLING_BY_INVITATION","NOT_YET_RECRUITING","RECRUITING","SUSPENDED","TERMINATED","WITHDRAWN","AVAILABLE","NO_LONGER_AVAILABLE","TEMPORARILY_NOT_AVAILABLE","APPROVED_FOR_MARKETING","WITHHELD","UNKNOWN"]}}]},"phase":{"description":"EARLY_PHASE1, PHASE1, PHASE2, PHASE3, PHASE4 or NA.","anyOf":[{"type":"string","enum":["EARLY_PHASE1","PHASE1","PHASE2","PHASE3","PHASE4","NA"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["EARLY_PHASE1","PHASE1","PHASE2","PHASE3","PHASE4","NA"]}}]},"has_results":{"description":"Only trials with posted results.","type":"boolean"},"study_type":{"description":"interventional or observational.","type":"string","maxLength":40},"role":{"description":"Which registry links count: tests (default: the peptide is among the interventions, so the trial gives it), measures (the peptide is only a measured level or an eligibility term), mentions (named elsewhere in the registry text) or all. Several values are allowed. Only tests are trials of the peptide. Without peptide, a trial needs a link of one of these roles to any peptide.","anyOf":[{"type":"string","enum":["tests","measures","mentions","all"]},{"maxItems":50,"type":"array","items":{"type":"string","enum":["tests","measures","mentions","all"]}}]},"sort":{"description":"phase (default), updated, start or enrollment.","type":"string","enum":["phase","updated","start","enrollment"]},"as_of_seq":{"description":"Read the data as it was at this data_seq. Use it to reproduce an earlier answer.","type":"integer","minimum":0,"maximum":9007199254740991},"cursor":{"type":"string","minLength":1,"maxLength":4000,"description":"Opaque cursor from next_cursor of the previous page. Send the same filters again."},"limit":{"description":"Default 100, max 100 for list. Default 10, max 25 compact, 10 full.","type":"integer","minimum":1,"maximum":100},"view":{"description":"Default compact.","type":"string","enum":["compact","full","list"]}}},"annotations":{"title":"Search clinical trials","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"results":{"description":"Trial rows.","type":"array","items":{"anyOf":[{"type":"object","properties":{"trial_id":{"type":"string"},"ids":{"type":"object","properties":{"nct":{"type":"string"}},"required":["nct"],"additionalProperties":false},"title":{"type":"string"},"phases":{"type":"array","items":{"type":"string"}},"overall_status":{"type":"string"},"has_results":{"type":"boolean"},"start_date":{"type":["string","null"]},"enrollment":{"type":["number","null"]}},"required":["trial_id","ids","title","phases","overall_status","has_results","start_date","enrollment"],"additionalProperties":false},{"type":"object","properties":{"trial_id":{"type":"string"},"dates":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["trial_id","dates"],"additionalProperties":{}},{"type":"object","properties":{"trial_id":{"type":"string"},"record_type":{"type":"string","const":"trial"}},"required":["trial_id","record_type"],"additionalProperties":{}}]}},"total_count":{"description":"Total.","type":"number"},"next_cursor":{"description":"Next page.","type":["string","null"]}},"additionalProperties":true}},{"name":"search_live_sources","title":"Search live sources","description":"Return live, unchecked papers from Europe PMC. Use this for gaps in database coverage or an explicit live literature search. Use search_publications instead for stored papers, or search_findings for checked claims. Live results have a separate unchecked label.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"q":{"type":"string","minLength":1,"maxLength":500,"description":"Search text for Europe PMC. Example: BPC-157 tendon."},"peptide":{"description":"Limit the search to this peptide's literature query.","type":"string","minLength":1,"maxLength":200},"cursor":{"type":"string","minLength":1,"maxLength":4000,"description":"Opaque cursor from next_cursor of the previous page. Send the same filters again."},"limit":{"description":"Page size, 1 to 25. Default 10.","type":"integer","minimum":1,"maximum":25}},"required":["q"]},"annotations":{"title":"Search live sources","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"live_lookups"},"outputSchema":{"type":"object","properties":{"items":{"description":"Papers.","type":"array","items":{}},"next_cursor":{"description":"Next page.","type":["string","null"]}},"additionalProperties":true}},{"name":"get_record","title":"Get record","description":"Return one full peptide, publication, finding or trial record by PEP-, PUB-, FND- or TRL- ID. A peptide slug, PMID or NCT number also works. Use this for known records or fields omitted from compact results. Use resolve_peptide instead for an unclear name, or search_publications to find papers. as_of_seq selects an earlier data_seq. Use replay_query instead to repeat a saved search.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"id":{"type":"string","minLength":3,"maxLength":200,"description":"Record ID. IDs start with PEP-, PUB-, FND- or TRL-. A peptide slug, a PMID or an NCT number also works."},"as_of_seq":{"description":"Read the data as it was at this data_seq. Use it to reproduce an earlier answer.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id"]},"annotations":{"title":"Get record","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"record":{"description":"Record.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"data_seq":{"description":"Seq.","type":"number"}},"additionalProperties":true}},{"name":"get_evidence_map","title":"Get evidence map","description":"Return checked finding counts for one peptide by outcome group, evidence class and direction, plus year, design and safety counts. Use this to inspect evidence coverage and gaps. Use search_findings instead for individual claims and source sentences, or compare_peptides for several peptides. Counts use administered findings only. The endogenous block counts measurements of the body's own peptide. Those measurements are not evidence about taking the peptide. Each finding has an evidence class: human, animal, laboratory or predicted. A count of 0 human findings means no checked human findings within the filters or outcome group. It does not mean that no human study exists.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"peptide":{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias, slug or ID. Examples: BPC-157, semaglutide, PEP-000001."},"view":{"description":"Default compact.","type":"string","enum":["compact","full"]}},"required":["peptide"]},"annotations":{"title":"Get evidence map","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"table_fields":{"description":"Columns.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"study_counts":{"description":"Counts.","type":"object","properties":{"papers_with_results":{"type":"integer","minimum":0,"maximum":9007199254740991},"papers_with_results_administered":{"type":"integer","minimum":0,"maximum":9007199254740991},"results_administered":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["papers_with_results","papers_with_results_administered","results_administered"],"additionalProperties":false},"outcome_groups":{"description":"Outcomes.","type":"array","items":{}},"cells":{"description":"Counts.","type":"array","items":{}}},"additionalProperties":true}},{"name":"compare_peptides","title":"Compare peptides","description":"Return identity, evidence counts, outcome groups and top findings for 2 to 5 peptides, plus shared outcome groups. Use this for a comparison in one call. Use get_peptide_brief instead for a detailed summary of one peptide. The result compares evidence without ranking peptides as better or worse. Each finding has an evidence class: human, animal, laboratory or predicted. A count of 0 human findings means no checked human findings within the filters or outcome group. It does not mean that no human study exists. Each MCP column includes the largest 8 outcome groups, or 5 for 4 or 5 peptides. Each column includes 2 top findings for 2 or 3 peptides, or 1 for 4 or 5 peptides. Use get_evidence_map for all outcome groups or search_findings for more findings.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"peptides":{"description":"2 to 5 peptide names, slugs or IDs.","anyOf":[{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias, slug or ID. Examples: BPC-157, semaglutide, PEP-000001."},{"maxItems":5,"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"description":"Peptide name, alias, slug or ID. Examples: BPC-157, semaglutide, PEP-000001."}}]},"view":{"description":"Default compact.","type":"string","enum":["compact","full"]}},"required":["peptides"]},"annotations":{"title":"Compare peptides","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"columns":{"description":"Evidence.","type":"array","items":{}},"shared_outcomes":{"description":"Outcomes.","type":"array","items":{}}},"additionalProperties":true}},{"name":"get_changes","title":"Get changes","description":"Return record change events in sequence order. Use this to synchronize data after since_seq, with 0 for full history. Without since_seq, the response gives the newest page. next_since_seq supplies the continuation position. Use get_freshness instead for source import times, or get_record with as_of_seq for an earlier record.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"since_seq":{"description":"Return events after this seq, or the newest page when omitted. Set 0 for full history.","type":"integer","minimum":0,"maximum":9007199254740991},"entity_type":{"description":"Only changes for this record type.","type":"string","enum":["peptide","publication","finding","trial"]},"limit":{"description":"1 to 1000. Default 100. MCP: default 25, at most 50.","type":"integer","minimum":1,"maximum":1000}}},"annotations":{"title":"Get changes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"events":{"description":"Changes.","type":"array","items":{}},"next_since_seq":{"description":"Position.","type":"number"},"has_more":{"description":"More.","type":"boolean"}},"additionalProperties":true}},{"name":"replay_query","title":"Replay query","description":"Return a saved search at its original data_seq, with the first page and result_set_hash comparison. Use this to check whether a recorded query reproduces identical data. Use search_findings with as_of_seq instead for a new search at an earlier sequence, or get_record with as_of_seq for one earlier record.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query_id":{"type":"string","pattern":"^qry_[a-f0-9]{24}$","description":"query_id from a search_response."},"view":{"description":"Default compact.","type":"string","enum":["compact","full"]}},"required":["query_id"]},"annotations":{"title":"Replay query","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":"query"},"outputSchema":{"type":"object","properties":{"first_page":{"description":"Page.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"replayed":{"description":"Hashes.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"query":{"description":"Filters.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"additionalProperties":true}},{"name":"get_freshness","title":"Get freshness","description":"Return source import and extraction times from stored study results. Use this to inspect data freshness. Use get_changes instead for record events, or get_my_usage for caller quotas. lag_hours measures time since success, not upstream backlog. source_latest_known is not reported yet and remains null.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"title":"Get freshness","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":null},"outputSchema":{"type":"object","properties":{"sources":{"description":"Freshness.","type":"array","items":{}},"data_seq":{"description":"Seq.","type":"number"}},"additionalProperties":true}},{"name":"get_my_usage","title":"Get my usage","description":"Return the caller's plan, grants, quotas and usage in the current windows. Use this to inspect access limits and remaining allowances. Use get_freshness instead for source import times, or get_changes for record updates. This tool reports account access, not evidence coverage.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"title":"Get my usage","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"pepbank/contract_version":"0.3.0","pepbank/meter":null},"outputSchema":{"type":"object","properties":{"plan":{"description":"Plan.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"usage":{"description":"Usage.","type":"array","items":{}}},"additionalProperties":true}}]}