UNPKG

@cyanheads/pubmed-mcp-server

Version:

Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP. STDIO or Streamable HTTP.

74 lines 2.54 kB
/** * @fileoverview Ontology-backed semantic concept identifiers attached to each * tool's `_meta['io.mcpmed/concepts']` field. Each constant is a stable URI * from an established vocabulary (Schema.org or EDAM) paired with a human * label — no free-text placeholders. * * This implements the semantic concept mapping proposed in MCPmed * (Flotho et al., Briefings in Bioinformatics, 2026; doi:10.1093/bib/bbag076) * with resolvable URIs rather than the placeholder strings used in that paper's * reference implementations. * * Namespacing: the `io.mcpmed/concepts` key is a proposal for MCPmed-aligned * servers. If MCPmed standardizes a different key, this is a single rename. * * @module src/mcp-server/tools/definitions/_concepts */ // Schema.org — generic web entities and actions. export const SCHEMA_SEARCH_ACTION = { id: 'https://schema.org/SearchAction', label: 'Search action', }; export const SCHEMA_SCHOLARLY_ARTICLE = { id: 'https://schema.org/ScholarlyArticle', label: 'Scholarly article', }; export const SCHEMA_CREATIVE_WORK = { id: 'https://schema.org/CreativeWork', label: 'Creative work', }; export const SCHEMA_DEFINED_TERM = { id: 'https://schema.org/DefinedTerm', label: 'Defined term', }; export const SCHEMA_DEFINED_TERM_SET = { id: 'https://schema.org/DefinedTermSet', label: 'Defined term set', }; // EDAM ontology — bioinformatics operations, data, and topics. export const EDAM_DATABASE_SEARCH = { id: 'https://edamontology.org/operation_2421', label: 'Database search', }; export const EDAM_DATA_RETRIEVAL = { id: 'https://edamontology.org/operation_2422', label: 'Data retrieval', }; export const EDAM_ID_MAPPING = { id: 'https://edamontology.org/operation_3282', label: 'ID mapping', }; export const EDAM_DATA_FORMATTING = { id: 'https://edamontology.org/operation_0335', label: 'Data formatting', }; export const EDAM_ONTOLOGY_TERMINOLOGY = { id: 'https://edamontology.org/topic_0089', label: 'Ontology and terminology', }; export const EDAM_PUBMED_ID = { id: 'https://edamontology.org/data_1187', label: 'PubMed ID', }; export const EDAM_ACCESSION = { id: 'https://edamontology.org/data_2091', label: 'Accession', }; /** * Builds the `_meta` payload emitted alongside each tool definition. * Kept as a helper so the key namespace is declared exactly once. */ export function conceptMeta(concepts) { return { 'io.mcpmed/concepts': concepts }; } //# sourceMappingURL=_concepts.js.map