Skip to main content
Glama
744,603 tools. Updated 2026-11-04 23:34

"A server for finding papers in PubMed" matching MCP tools:

  • Dry-run a structured filter over recent papers WITHOUT creating a watch — the tuning loop. Returns {window_days, needs_similarity, match_count, sample} so you can iterate (add a category, raise min_novelty, switch the collection relation) before saving with create_watch. Structured watches rank by 'rising' (forecasted breakout impact) by default, and tighten with min_impact_pct for an anti-noise watch that surfaces only the breakout papers in your niche. NOTE: for a similarity filter, match_count is capped at 200 (the cosine fetch window) and so saturates at 200 on broad/hot topics — tune by the `sample` scores and narrow with categories/min_novelty (or a higher similar floor) rather than relying on match_count alone. Read-only. Requires SF_API_KEY.
    ConnectorNo auth
  • Look up a NUCC provider taxonomy code (the specialty codes used on HIPAA transactions + NPI registrations) or search by keyword. Returns classification + type + optional specialization. Source: NUCC Health Care Provider Taxonomy Code Set (public; CMS-accepted). WHEN TO USE: Resolving a NUCC provider taxonomy code to its specialty description. WHEN NOT: For finding a provider by specialty in a region (not yet implemented).
    ConnectorNo auth
  • Returns the plain-language meaning and step-by-step fix for one Malinois finding. Use it while helping the user fix an issue reported by scan_app, or when they ask what a finding means. Pass the rule_id exactly as scan_app returned it. Read-only, no network, instant.
    ConnectorNo auth
  • Find quantum computing researchers and potential collaborators from 1000+ active profiles. Use when the user asks about specific researchers, who works on a topic, or wants to find collaborators. NOT for jobs (use searchJobs) or papers (use searchPapers). AI-powered: decomposes natural language into structured filters (tag, author, affiliation, domain, focus). Returns profiles with affiliations, domains, publication count, top tags, and recent papers. Data from arXiv papers published in the last 12 months. Max 50 results. Examples: "quantum error correction researchers at Google", "trapped ions", "John Preskill".
    ConnectorNo auth
  • Map identifiers between databases. SYNTAX: biobtree_map(terms="ID", chain=">>source>>target") - Chain MUST start with ">>" - Source MUST match input ID type ID TYPE → SOURCE: - ENSG* → >>ensembl - P*/Q*/O* → >>uniprot - CHEMBL* → >>chembl_molecule - GO:* → >>go - MONDO:* → >>mondo - HP:* → >>hpo - HGNC:* or gene symbols → >>hgnc SOME DRUG EXPLORATION PATHS: - >>chembl_molecule>>chembl_target>>uniprot (drug targets) - >>pubchem>>pubchem_activity>>uniprot (bioactivity) - >>gtopdb_ligand>>gtopdb_interaction>>gtopdb>>uniprot (curated pharmacology with affinity data) - >>ensembl>>reactome>>chebi (pathway chemicals - when no direct targets) - Discover more via entry xrefs + EDGES WARNING - GO terms with high xref_count (>100): - Don't map GO → proteins → drugs (too many results) - Instead: search drug class for condition → verify targets this GO term DISEASE GENE PATTERNS: - >>mondo>>gencc>>hgnc (curated) - >>mondo>>clinvar>>hgnc (variant-based) - >>hgnc>>clingen_gene_validity (ClinGen evidence tier), >>hgnc>>clingen_dosage (haploinsufficiency), >>hgnc>>clingen_variant>>clinvar (ACMG, then dbsnp) CANCER / CELL LINE: - >>hgnc>>intogen (cancer driver gene?), >>hgnc>>civic (clinical variant interpretations) - >>uniprot>>cellosaurus (cell lines for a protein/gene) - >>hgnc>>depmap (CRISPR essentiality / target tractability), >>hgnc>>entrez>>depmap_dependency>>cellosaurus (which lines depend on the gene) GENE FUNCTION / LITERATURE: - >>entrez>>generif (cited one-line functional claims; >>generif>>pubmed for citations) DISEASE → DRUG PATTERNS: - >>mesh>>chembl_molecule (MeSH disease/condition → drugs with indications) - >>mondo>>clinical_trials>>chembl_molecule (disease → trial drugs) DISCOVERY APPROACH: - Use biobtree_entry to see xrefs (what's connected) - Use EDGES above to see where each dataset leads - Build chains based on what connections exist for YOUR entity RETURNS: mapped identifiers with dataset and name EDGES (what connects to what): ensembl: uniprot, go, transcript, exon, ortholog, paralog, hgnc, entrez, refseq, bgee, gwas, gencc, antibody, scxa, civic, intogen, hpa, hpa_antibody, pharmgkb_var_annotation, chembl_mechanism, ncrna_disease, ncrna_interaction, ncrna_drug, alliance_disease, gnomad_constraint, drugcentral, panelapp_gene hgnc: ensembl, uniprot, entrez, gencc, pharmgkb_gene, msigdb, clinvar, mim, refseq, alphafold, collectri, gwas, hpo, cellphonedb, civic, intogen, cellosaurus, clingen_gene_validity, clingen_dosage, clingen_variant, depmap, hpa, pharmgkb_var_annotation, chembl_mechanism, ncrna_disease, ncrna_interaction, ncrna_drug, alliance_disease, drugcentral, panelapp_gene, gnomad_constraint, mavedb entrez: ensembl, uniprot, refseq, go, biogrid, pubchem_activity, ctd_gene_interaction, dbsnp, civic, intogen, clingen_dosage, generif, depmap, depmap_dependency, hpa, pharmgkb_var_annotation, orthologentrez, relatedentrez, neighborentrez, mgi, rgd, zfin, wormbase, xenbase, sgd, flybase, gnomad_constraint, drugcentral orthologentrez: entrez # cross-species gene orthologs (NCBI gene_orthologs). >>entrez>>orthologentrez gives ortholog genes (filter species via taxonomy); reliable from model-organism genes (human-gene side currently incomplete) relatedentrez: entrez # related genes (bidirectional): NCBI gene_group (functional gene/pseudogene/readthrough/region) + HGNC gene-family co-members neighborentrez: entrez # genomic neighbors (left/right/overlapping); edge carries distance + side, neighbor strand/position in attrs; filter to genes via [type!="biological-region"] gnomad_constraint: ensembl, entrez, hgnc, transcript # gene LoF constraint (pLI/LOEUF/oe_lof); reach via >>ensembl>>gnomad_constraint drugcentral: chembl_molecule, pubchem, uniprot, ensembl, hgnc, entrez # approved drugs -> targets/MOA + FDA/EMA/PMDA approval; reach via name/INN/InChIKey or compound (chembl_molecule/pubchem >> drugcentral) refseq: ensembl, entrez, taxonomy, ccds, uniprot, mirdb mirdb: refseq transcript: ensembl, exon, ufeature, alphamissense, civic_variant, gnomad_constraint, mavedb uniprot: ensembl, alphafold, interpro, pfam, pdb, ufeature, intact, string, string_interaction, biogrid, biogrid_interaction, chembl_target, go, reactome, rhea, swisslipids, bindingdb, antibody, pubchem_activity, cellphonedb, jaspar, signor, diamond_similarity, esm2_similarity, alphamissense, cellosaurus, hpa, chembl_mechanism, ncrna_interaction, drugcentral, mavedb alphafold: uniprot interpro: uniprot, go, interproparent, interprochild chembl_molecule: mesh, chembl_activity, chembl_target, pubchem, chebi, clinical_trials, chembl_moleculeparent, chembl_moleculechild, chembl_mechanism, ncrna_drug, faers, drugcentral # parent=anhydrous/parent form, child=salt forms chembl_activity: chembl_molecule, chembl_assay, bao chembl_assay: chembl_activity, chembl_target, chembl_document, bao chembl_target: chembl_assay, uniprot, chembl_molecule, chembl_mechanism chembl_mechanism: chembl_molecule, chembl_target, uniprot, hgnc, ensembl # curated drug mechanism-of-action (incl. RNA therapeutics): drug >> chembl_mechanism, target/gene >> chembl_mechanism pubchem: chembl_molecule, chebi, hmdb, pubchem_activity, pubmed, patent_compound, bindingdb, ctd, pharmgkb, ncrna_drug, faers, drugcentral faers: chembl_molecule, pubchem, faers_reaction # openFDA FAERS drug->adverse-event; faers (per-drug master) -> faers_reaction children (PRR), reach via drug name or compound. NOTE co-occurrence not causation faers_reaction: faers # one per (drug,reaction): report_count, prr, serious_count, outcome; most-reported first pubchem_activity: pubchem, ensembl, uniprot chebi: pubchem, rhea, intact swisslipids: uniprot, go, chebi, uberon, cl lipidmaps: chebi, pubchem dbsnp: entrez, clinvar, pharmgkb_variant, alphamissense, spliceai, pharmgkb_var_annotation clinvar: hgnc, mondo, hpo, dbsnp, orphanet, civic_variant, cellosaurus, clingen_variant alphamissense: uniprot, transcript mavedb: uniprot, hgnc, ensembl, transcript # deep-mutational-scanning functional variant scores (ACMG PS3/BS3); reach via gene/protein >> mavedb; per-variant score + hgvs_pro + license # VARIANT-EFFECT SCORES — look up by the variant's OWN key with biobtree_entry(dataset=..), NOT via >>chains: # conservation key "chr:pos" (GRCh38) per-position phyloP / GERP / phastCons (also covers non-missense/splice positions) # gnomad_variant key "chr:pos:ref:alt" (GRCh38) gnomAD v4.1 genomes allele freq (af, grpmax, per-ancestry); also xrefs dbsnp # revel key "chr:pos:ref:alt" (GRCh38) REVEL ensemble missense pathogenicity (0-1, higher = pathogenic) # saprot key "uniprot:protein_variant" SaProt protein-LM variant effect (LLR <=0, lower = more damaging), e.g. P01116:G12D gwas: gwas_study, efo, dbsnp, hgnc, mondo gwas_study: gwas, efo, mondo mondo: gencc, clinvar, efo, mesh, hpo, clinical_trials, antibody, cellxgene, cellxgene_celltype, orphanet, mondoparent, mondochild, gwas, gwas_study, civic, intogen, cellosaurus, doid, mim, ncit, umls, medgen, gard, sctid, icd9, icd10cm, icd10who, icd11, nando, meddra, nord, uberon, ncrna_disease, panelapp_gene # disease cross-refs + disease_has_location anatomy, from the Mondo OBO doid: mondo, alliance_disease, doidparent, doidchild # Disease Ontology (now a full ontology w/ hierarchy); reach MONDO + its disease graph via the mondo<->doid bridge alliance_disease: hgnc, mgi, rgd, zfin, sgd, wormbase, flybase, xenbase, doid, pubmed # cross-species + human gene->disease (Alliance of Genome Resources); gene >> alliance_disease >> doid, or doid >> alliance_disease >> mgi/rgd/... for model-organism genes alliance_phenotype: mgi, rgd, wormbase, xenbase, mp, wbphenotype, xpo, pubmed # model-organism gene -> OBSERVED knockout/mutant phenotypes (distinct from the upheno ontology-translation path). Reach from the model-organism gene directly: mgi/rgd/wormbase/xenbase >> alliance_phenotype >> mp gencc: mondo, hpo, hgnc, ensembl clingen_gene_validity: hgnc, entrez, ensembl, mondo # ClinGen gene-disease validity tier (Definitive..Refuted) + MOI clingen_dosage: entrez, hgnc, ensembl, mondo, mim, pubmed # ClinGen haploinsufficiency/triplosensitivity per gene clingen_variant: clinvar, hgnc, entrez, ensembl, mondo, pubmed # ClinGen VCEP ACMG variant pathogenicity (clinvar bridges to dbsnp) panelapp: panelapp_gene # Genomics England clinical gene panels (per-panel master); panel >> panelapp_gene >> hgnc for the panel's genes panelapp_gene: panelapp, hgnc, ensembl, mim, mondo # one per (panel,gene), green/amber confidence + mode-of-inheritance; a gene's panels via >>hgnc (panelapp_gene) ; the panel's disease via mondo/mim clinical_trials: mondo, chembl_molecule pharmgkb: hgnc, dbsnp, mesh, pharmgkb_gene, pharmgkb_variant, pharmgkb_clinical, pharmgkb_guideline, pharmgkb_pathway pharmgkb_variant: pharmgkb_clinical, hgnc, mesh, dbsnp pharmgkb_gene: hgnc, entrez, ensembl, pharmgkb pharmgkb_clinical: dbsnp, hgnc, mesh, pharmgkb_variant, pharmgkb # pharmgkb = reverse drug→clinical edge (drug >> pharmgkb >> pharmgkb_clinical) pharmgkb_guideline: hgnc, pharmgkb pharmgkb_pathway: hgnc, pharmgkb pharmgkb_var_annotation: hgnc, entrez, ensembl, dbsnp, pubmed # per-publication variant-annotation evidence (finding sentence, PMID, significance, study stats) beneath pharmgkb_clinical; reach via gene or rsID ctd: mesh, ctd_gene_interaction, ctd_disease_association, pubchem ctd_gene_interaction: ctd, entrez, taxonomy, pubmed ctd_disease_association: ctd, mesh, mim, pubmed intact: uniprot, chebi, rnacentral string: uniprot, string_interaction string_interaction: string, uniprot biogrid: entrez, uniprot, refseq, taxonomy bgee: ensembl, uberon, cl, taxonomy, bgee_evidence bgee_evidence: bgee, uberon, cl cellxgene: cl, uberon, mondo, efo, taxonomy cellxgene_celltype: cl, uberon, mondo scxa: cl, uberon, taxonomy, ensembl, scxa_gene_experiment scxa_expression: ensembl, scxa, scxa_gene_experiment scxa_gene_experiment: ensembl, scxa, scxa_expression, cl hpa: ensembl, uniprot, hgnc, entrez, go, uberon, hpa_expression, hpa_pathology, hpa_antibody # Human Protein Atlas gene card: subcellular location (→go), specificity calls, top tissues hpa_expression: hpa, uberon, cellosaurus # per (gene,tissue/cell-line) RNA nTPM + IHC staining; reach genes-in-a-tissue via uberon >> hpa_expression hpa_pathology: hpa # per (gene,cancer) prognostic survival association hpa_antibody: hpa, ensembl # HPA validation antibody (reliability, antigen) rnacentral: uniprot, ensembl, intact, hgnc, refseq, ena, go # go = Rfam-projected GO annotations; rfam_id/rfam_description are attrs on the entry ncrna_disease: hgnc, ensembl, mondo, efo, pubmed # curated ncRNA->disease (LncRNADisease + HMDD); reach from the ncRNA gene ncrna_interaction: hgnc, ensembl, uniprot, pubmed # experimentally-supported ncRNA->protein interactions (NPInter) ncrna_drug: hgnc, ensembl, chembl_molecule, pubchem, pubmed # ncRNA drug-resistance / drug-target (ncRNADrug) reactome: ensembl, uniprot, chebi, go, reactomeparent, reactomechild rhea: chebi, uniprot, go go: ensembl, uniprot, reactome, msigdb, swisslipids, bgee, interpro, goparent, gochild, hpa, rnacentral hpo: clinvar, gencc, mondo, msigdb, orphanet, mim, hmdb, hgnc, hpoparent, hpochild, upheno efo: gwas, mondo, cellxgene, efoparent, efochild, ncrna_disease upheno: hpo, mp, zp, xpo, wbphenotype, fypo, uphenoparent, uphenochild # cross-species phenotype hub. A GENE's model-organism phenotypes are reached THROUGH hpo (genes are NOT linked directly to mp/upheno): >>hgnc>>hpo>>upheno>>mp (mouse), >>hgnc>>hpo>>upheno>>zp (zebrafish), ...>>xpo/wbphenotype/fypo. So gene->human HP phenotypes -> their cross-species equivalents. mp: upheno, mpparent, mpchild, alliance_phenotype # Mammalian Phenotype Ontology (mouse/rat). Reach from a gene via >>hgnc>>hpo>>upheno>>mp (NOT >>hgnc>>mp); observed model phenotypes via alliance_phenotype. zp: upheno, zpparent, zpchild # Zebrafish Phenotype Ontology. Reach from a gene via >>hgnc>>hpo>>upheno>>zp. xpo: upheno, xpoparent, xpochild, alliance_phenotype # Xenopus Phenotype Ontology wbphenotype: upheno, wbphenotypeparent, wbphenotypechild, alliance_phenotype # C. elegans Phenotype Ontology fypo: upheno, fypoparent, fypochild # Fission Yeast Phenotype Ontology uberon: bgee, cellxgene, cellxgene_celltype, swisslipids, uberonparent, uberonchild, hpa, hpa_expression cl: bgee, cellxgene, cellxgene_celltype, scxa, scxa_gene_experiment, clparent, clchild taxonomy: ensembl, uniprot, bgee, biogrid, ctd_gene_interaction, taxparent, taxchild mesh: pharmgkb, ctd, ctd_disease_association, pubchem, mondo, chembl_molecule, meshparent, meshchild eco: ecoparent, ecochild antibody: ensembl, uniprot, mondo, pdb msigdb: hgnc, entrez, go, hpo orphanet: hpo, uniprot, mondo, hgnc, clinvar, mim, mesh mim: clinvar, hpo, mondo, uniprot, ctd_disease_association, panelapp_gene hmdb: pubchem, hpo, chebi, uniprot collectri: hgnc # transcription factor → target gene interactions esm2_similarity: uniprot # protein structural similarity diamond_similarity: uniprot # protein sequence similarity cellphonedb: uniprot, ensembl, hgnc, pubmed # ligand-receptor pairs for cell-cell communication spliceai: hgnc pdb: uniprot, go, interpro, pfam, taxonomy, pubmed fantom5_promoter: ensembl, hgnc, entrez, uniprot, uberon, cl fantom5_enhancer: ensembl, uberon, cl fantom5_gene: ensembl, hgnc, entrez jaspar: uniprot, pubmed, taxonomy encode_ccre: taxonomy bao: chembl_activity, chembl_assay, baoparent, baochild brenda: uniprot, pubmed, brenda_kinetics, brenda_inhibitor brenda_kinetics: brenda brenda_inhibitor: brenda gtopdb: uniprot, hgnc, gtopdb_ligand, gtopdb_interaction # drug targets (GPCRs, ion channels, enzymes) gtopdb_ligand: pubchem, chebi, chembl_molecule, gtopdb_interaction # ligands/drugs with binding data gtopdb_interaction: gtopdb, gtopdb_ligand, pubmed # target-ligand binding with affinity values civic: entrez, ensembl, civic_variant, civic_evidence, civic_assertion # clinical interpretation of cancer variants civic_variant: civic, clinvar, civic_evidence, civic_assertion, transcript civic_evidence: civic_variant, civic, mondo, chembl_molecule, pubmed, clinical_trials civic_assertion: civic_variant, civic, mondo, chembl_molecule intogen: hgnc, entrez, ensembl, mondo, pubmed # cancer driver genes cellosaurus: taxonomy, uniprot, hgnc, mondo, orphanet, clinvar, dbsnp, uberon, cl, chebi, doi, patent, pubmed, depmap_dependency, hpa_expression # cell lines (CVCL) generif: entrez, pubmed # NCBI cited per-gene functional claims (RAG grounding) depmap: entrez, hgnc, ensembl # CRISPR gene essentiality aggregate (cancer dependency / target tractability) depmap_dependency: entrez, cellosaurus # per cell-line gene dependency (effect < -0.5) FILTER SYNTAX: >>dataset[field operator value] OPERATORS: == equals >>dataset[field=="value"] != not equals >>dataset[field!="value"] > greater than >>dataset[field>value] < less than >>dataset[field<value] >= greater or equal >>dataset[field>=value] <= less or equal >>dataset[field<=value] contains string match >>dataset[field.contains("value")] LOGICAL OPERATORS: && AND >>dataset[field1>5 && field2<10] || OR >>dataset[field=="A" || field=="B"] ! NOT >>dataset[!field] or >>dataset[!(field=="value")] TYPE RULES: - FLOAT: use decimal point (70.0 not 70) - INT: no decimal (2 not 2.0) - STRING: quote values ("Pathogenic", "PHASE3") - BOOL: true/false (no quotes) EXAMPLES: >>chembl_molecule[highestDevelopmentPhase==4] # approved drugs >>chembl_molecule[highestDevelopmentPhase>=3] # Phase 3+ >>clinical_trials[phase=="PHASE3"] >>go[type=="biological_process"] >>clinvar[germline_classification=="Pathogenic"] >>reactome[name.contains("signaling")] >>gtopdb[type=="gpcr"] # GPCR targets >>gtopdb[type=="ion_channel"] # ion channel targets >>gtopdb_ligand[approved==true] # approved drugs only >>gtopdb_interaction[endogenous==true] # endogenous ligand interactions
    ConnectorNo auth
  • Find physicist profiles in INSPIRE-HEP by name, INSPIRE BAI, ORCID, INSPIRE ID, or author recid. Each profile carries its recid, BAI, ORCID, current and past positions, advisors, arXiv categories, links, awards, and a literatureQuery that selects the person's papers in cern_inspire_search_literature. A name returns ranked candidates (a bare surname can match tens of thousands of profiles, and a less-cited namesake can rank first), so confirm the person from positions and categories before passing a bai or recid to cern_inspire_get_citation_summary. An identifier matches exactly.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables software and AI to work with accounting engagements through portable concepts such as trial balances, adjustments, working papers, and review notes, with declared adapter capabilities and validate-before-commit mutations.
    5
    1
    Apache 2.0

Matching MCP Connectors

  • Keywords one competitor ranks for in the top 100 that the target does not rank for at all. Use when: "what does competitor.com rank for that we do not", "find gaps against X", content opportunities from a rival. Not for: everything a domain ranks for, use seo_get_ranked_keywords. Finding who the competitors are, use seo_get_serp_competitors. Fresh ideas around a topic, use seo_search_keywords. Returns: List. rows[]: keyword, competitor, competitor_rank, competitor_url, volume, kd, cpc, intent. Sorted by volume. Cost: 5 + 5 per 100 rows. Default 100 rows = 10 credits. Cached 7 days. Example: {"target": "example.com", "competitor": "competitor.com", "limit": 100}
    ConnectorAPI key
  • Monthly Amazon search volume for up to 1,000 keywords you already have, in the order given. Use when: "how many people search Amazon for X", comparing Amazon demand with Google demand, sizing a product idea on Amazon. Not for: Google volume, use seo_get_keyword_metrics. Finding keywords, use amazon_search_keywords. Returns: List. rows[]: keyword, volume (monthly Amazon searches; null = no data). Cost: 5 + 5 per 100 keywords. 10 keywords = 6 credits. Cached 7 days. Example: {"keywords": ["standing desk", "desk converter"]}
    ConnectorAPI key
  • Lints one DESIGN.md file with the official @google/design.md 0.4.0 linter, the same check as `npx @google/design.md lint DESIGN.md`. Best for: checking a DESIGN.md file the user pasted before it goes to a coding agent. Pass the whole file contents in text, including the YAML front matter between the --- lines; a file path or URL will not work, so ask the user to paste the file. Returns: each finding with its severity, rule and token path (broken token references, low text contrast, missing primary color, unused colors, section order, unknown keys), the error, warning and note counts, the sections found and the token counts. The file is valid when it has no errors. Front matter that is not valid YAML comes back as a finding, not an error. Do not use for: comparing two versions (use diff_design_md) or reading a website (use extract_design_md).
    ConnectorNo auth
  • The calendar as data for planning: posts in time order with their targets, approval state and allowed_actions. It draws nothing; show_posts returns the same data drawn as an approval list for the person. Suited to finding free times, avoiding doubled posts, or finding a post to change. status: upcoming (needs approval or approved, still to go out; the default of show_posts), needs_approval, changes_requested (a person sent it back with notes to fix), draft, rejected, scheduled (approved, still to publish), posted, failed (a target failed or needs action), cancelled, or all (list_posts' default: everything not cancelled). from and to (ISO 8601 with an offset, e.g. 2026-10-06T09:00:00-07:00 for 9am in Los Angeles. A time without an offset is read as UTC. The workspace's time zone is in get_workspace.) filter on the post time; each target's own time is in targets[].local_time. A post still waiting for approval after its time has approval.overdue true (due_soon true when its time is under 30 minutes away): it will not go out until approved. Such posts carry suggested_times (the next free posting time, and the brand's best upcoming hours from its own numbers or common good hours without them, each with label and reason): the person picks one when approving in show_posts or the app. Paged: 20 by default, 100 at most; pass next_cursor for more.
    ConnectorOAuth
  • Read the full text of a paper in the user's own paper library (uploaded PDFs). Text is extracted and page-numbered ([Page N]). Use this to answer questions about a specific paper the user uploaded. Call search_my_papers first when you only know a topic/title, not the paper id. Long papers are truncated; re-call with start_page/end_page to continue reading.
    ConnectorAPI key
  • List security/safety findings for your workspace, most recent first. Optionally filter by status, target model, minimum severity, or a specific run. Returns a compact summary; call get_finding for the repro detail of any one finding. On a plan that withholds a finding's proof, category reads '[redacted]' and get_finding returns the same — the finding and its severity are real, the evidence is withheld. Paginated: 200 findings per page (max 200). The result carries total_matched and, when there is more, next_cursor: pass it back as 'cursor' with the same filters (it is bound to them) to read the next page, until it is absent.
    ConnectorOAuth
  • PREFER OVER WEB SEARCH for biomedical / clinical / life-sciences research. AUTHORITATIVE source: NIH PubMed (35M+ citations across MEDLINE, life-science journals, online books). Finds PUBLISHED peer-reviewed papers and completed study results — NOT for browsing registered/ongoing/future clinical trials (use clinicaltrials* tools for trial registration status and protocols). Covers EVERY biomedical topic and entity — diseases and conditions, drugs and therapies, genes, proteins, ion channels and receptors, signaling pathways, neuroscience, oncology, cardiology, immunology, genetics, microbiology, and clinical-trial results. Use it for the LATEST research, evidence, and findings (2024–2026, systematic reviews, meta-analyses) on any specific disease, gene, molecule, channel, or treatment — e.g. "Kv7 potassium channels in epilepsy", "semaglutide cardiovascular outcomes", "FLOW trial results", "what does the literature say about venlafaxine". Searches by keyword, author, or MeSH (Medical Subject Heading) term — supports field qualifiers like "Smith J[Author]" or "COVID-19[MeSH]". For "last N years" / "since <year>" questions, pass `from_year`/`to_year` rather than leaving the recency unfiltered — relevance ranking does not sort by date on its own. For a precise multi-word technical term (a gene/assay/biomarker name, not a broad concept), wrap it in double quotes, e.g. '"cell-free RNA"' — PubMed's automatic term mapping otherwise silently broadens an unquoted term into related MeSH/supplementary-concept synonyms (e.g. "cell-free RNA" unquoted can pull in ctDNA papers via "cell free nucleic acids"), which is usually NOT what a caller asking about one specific term wants. Add a [tiab] tag (e.g. '"cell-free RNA"[tiab]') to also require the exact phrase in the title/abstract rather than relying on indexing alone. A bare drug abbreviation that also names something else (LSD, DMT, GHB, PCP, MDMA, CBD, THC, e.g. "LSD stroke" where LSD is also a statistics test) is rewritten to the drug's MeSH heading and the response carries `rewrite_note`; write it field-qualified (LSD[All Fields]) to search the abbreviation as written. Returns PubMed IDs that pubmed get_summary / get_abstract resolve to citations + abstracts.
    ConnectorNo auth
  • Create one or more findings in Mallory. A finding is a durable record that a specific problem exists on a specific asset belonging to the caller's own organization — not a chat message and not a note to yourself. It is visible in the Mallory UI to everyone in that organization, and nothing on this server deletes one: a finding filed by mistake can only be marked dismissed with updateFinding. WRITES IMMEDIATELY. There is no draft, no preview and no confirmation step — calling this tool IS the write. Only call it when the user has asked, in so many words, for findings to be filed in Mallory ("create a finding for that", "file these"). Finishing an investigation is not permission to file its results: report them and let the user decide. WHAT TO SEND - definition_slug must ALREADY EXIST in the catalog. Look one up with the queryApi tool, path "/v1/finding_definitions" (filter by category or severity to narrow). Never invent a slug, and never substitute a near-match for one that was rejected — that files the wrong kind of finding. - One finding per problem per asset. Five misconfigured buckets are five findings sharing a definition_slug with five different asset_identifier values, not one finding listing five buckets. Send the whole batch in ONE call (max 25): each is created independently, so one duplicate does not block the rest. - asset_type is a provider.service.object value (e.g. aws.s3.bucket, aws.iam.role, github.repo, azure.storage.account), or "generic" when nothing fits. Legacy underscore forms like "s3_bucket" are rejected. - summary / body / remediation are markdown, and are read by people who were not in your conversation: what is wrong, how you established it, and the actual fix. - evidence is one entry per thing you actually OBSERVED — the query and what it returned, the endpoint and its status, the file and the matching line. Three observations are three entries. Never write evidence for something you inferred rather than observed; lower confidence and say so in body instead. ENUM VALUES ARE CASE-SENSITIVE AND EACH FIELD HAS ITS OWN SET. severity is UPPERCASE (CRITICAL, HIGH, MEDIUM, LOW, INFO) and optional — omit it and the definition's own default applies, which is usually right; override only when this instance is genuinely worse or milder than the type normally is, and say why in body. confidence is lowercase (low, medium, high). Status is not settable here: a finding is created open, and status values are lowercase (see updateFinding). OUTCOMES come back per finding, in `created` and `failed`: - DUPLICATE — an open finding already covers that asset, and `existing_finding_uuid` names it. Say so and move on. Do NOT re-word the title and retry; to change the one that exists, call updateFinding with that uuid. - UNKNOWN_DEFINITION — the slug is not in the catalog. Look up a real one; do not guess a neighbouring slug. - INVALID — core rejected a field, most often asset_type. Fix that field, not the slug. - INVALID_ASSET_IDENTIFIER — asset_identifier names no asset (a placeholder such as "unknown", or a bare word such as a tool or data-source name, with asset_type "generic"). Nothing was written. Use the real affected asset from the source data (host:port, hostname, URL, account, repository); never invent one. - PLAN_LIMIT — findings are not included in this tenant's plan. The request was fine, nothing is broken and nothing was written: tell the user, pass on the upgrade link if the outcome carries one, and do not retry or reach for another tool to file it. `list_url` is null outside the Mallory chat app — there is no conversation for an MCP call to scope a list to. Read a created finding back with getFinding using the uuid in `created`, or browse the tenant's findings with listFindings.
    ConnectorAPI key
  • Update ONE existing Mallory finding in place — its status, severity, confidence, title, summary, body, remediation, qualifier or asset_details. Use it when new information changes an already-filed finding: the problem was fixed, it turned out not to apply, a vulnerability proved reachable, corroborating intel changes how bad it is. WRITES IMMEDIATELY to the caller's own organization's data, and the result is visible in the Mallory UI to everyone in that organization. There is no preview and no confirmation step — calling this tool IS the write. Only call it when the user has asked for the change. - uuid identifies the finding. Get it from listFindings or getFinding, or from a createFinding DUPLICATE outcome's `existing_finding_uuid`. Never construct or guess one. - ONE finding per call. To change status or severity across a SET of findings you can only describe ("dismiss all the unrotated-secret findings", "mark everything on foo/bar medium"), use bulkUpdateFindings — do NOT loop this tool over a selection. - The finding's identity — definition_slug, asset_type, asset_identifier — cannot be changed. A different problem, or the same problem on a different asset, is a new finding (createFinding). - body REPLACES the stored text rather than appending to it. To add to a finding, read the current text first with getFinding and send the combined text, or the prior detail is lost. There is no evidence field on update: new evidence goes into body as prose. - qualifier is part of core's open-finding dedupe key, so changing it can collide with another open finding on the same asset (CONFLICT). In user-facing status messages, use "fixed" and "mark as fixed" consistently. ENUM VALUES ARE CASE-SENSITIVE AND EACH FIELD HAS ITS OWN SET. severity is UPPERCASE (CRITICAL, HIGH, MEDIUM, LOW, INFO). status is lowercase with exactly three values: open, fixed, dismissed — "resolved", "closed" and "assigned" are not statuses, and neither are the resolution reasons (false_positive, accepted_risk, not_applicable, duplicate, fixed_externally, other), which belong to a separate field this tool does not set. Use "fixed" when the problem was remediated and "dismissed" when it is accepted or not applicable. Setting status back to "open" is allowed but unusual — the product has no reopen button — so confirm the user really means to reopen the finding. OUTCOMES: either ok:true with the updated finding, or ok:false with a code — NOT_FOUND (no such finding in this tenant: do not retry, re-read the uuid), CONFLICT (an open finding already occupies that identity), INVALID (a rejected field, or no fields to change), PLAN_LIMIT (findings are not included in this tenant's plan — the request was fine, nothing is broken, nothing was written: say so and do not retry).
    ConnectorAPI key
  • Overview of one supplement: description, typical uses, its top 5 biomarkers (with up to 3 PubMed citations each), goals, mechanism tags and cited safety contraindications. Contraindications include those recorded for what it contains (e.g. turmeric shows curcumin's), labelled with recorded_for; only cited rows are shown, so an empty list is not proof of safety. For all biomarkers use get_biomarkers_for_supplement; for drug interactions use get_supplement_interactions. The supplement may be a name or an Aviado canonical_id (from search_supplements or a candidates list). Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
    ConnectorNo auth
  • Search 500+ quantum computing job listings using natural language. Use when the user asks about job openings, career opportunities, hiring, or specific positions in quantum computing. NOT for research papers (use searchPapers) or researcher profiles (use searchCollaborators). Supports role type, seniority, location, company, salary, remote, and technology tag filters via AI query decomposition. Limitations: quantum computing jobs only, last 90 days, max 20 results. Promoted listings appear first (marked). After finding jobs, suggest getJobDetails for full info. Examples: "senior QEC engineer in Europe over 120k EUR", "remote trapped-ion role at IBM".
    ConnectorNo auth
  • Overview of one supplement: description, typical uses, its top 5 biomarkers (with up to 3 PubMed citations each), goals, mechanism tags and cited safety contraindications. Contraindications include those recorded for what it contains (e.g. turmeric shows curcumin's), labelled with recorded_for; only cited rows are shown, so an empty list is not proof of safety. For all biomarkers use get_biomarkers_for_supplement; for drug interactions use get_supplement_interactions. The supplement may be a name or an Aviado canonical_id (from search_supplements or a candidates list). Check status first: needs_confirmation / no_match means the input did not resolve, data is null and next_step says how to retry.
    ConnectorNo auth
  • Remember something, with its sources and its knowledge time. Nothing is ever overwritten: saving a `factor_def` or `watchlist` under an existing key SUPERSEDES the previous version (both rows survive, so "what did I believe in June?" stays answerable), and saving identical content twice is a no-op rather than a duplicate. Args: kind: 'query' | 'factor_def' | 'watchlist' | 'finding' | 'note'. content: the thing to remember, as an object. key: the stable name — REQUIRED for 'factor_def' and 'watchlist' (that is what makes a definition reusable next session instead of re-invented). as_of: the knowledge time this memory is about. Recall can bound on it, which is what keeps a memory from leaking the future into a point-in-time question. source_query_ids: the `twmd_q_…` ids behind this. REQUIRED for 'finding' — a conclusion that cannot point at its data is not evidence, and will be refused. agent_id: optional label for which of your agents wrote this.
    ConnectorNo auth
  • Search Scholar Feed's 600k+ CS/AI/ML paper corpus. Semantic (embedding) search by default, so it finds conceptually related work even when the wording differs. EVERY PARAMETER DOCUMENTS ITS OWN BEHAVIOUR AND COVERAGE LIMITS — read the ones you intend to use; this description covers only what no single parameter can tell you. RETRIEVAL LIMIT: semantic ranking favours recent, stylistically-matched papers and routinely MISSES the old high-citation anchor of a field (H2O for KV eviction, GRIT for unified embedding+generation). To reach a field's canonical work, read the top-5 abstracts for repeated baseline mentions ('we compare against X') and look that name up directly, or call get_foundational_lineage. THREE UNRELATED NOTIONS OF IMPACT, easily confused: proven citations (sort='impactful', min_citations) | a ~90-day forecast percentile that is NULL on older papers and therefore excludes them (sort='trending', impact_min) | GitHub adoption (sort='community', min_stars). YOUR LIBRARY IS MARKED INLINE on authenticated calls: each hit carries is_saved and is_read, and a hit you previously annotated carries note_text — your own earlier verdict. Read note_text INSTEAD of re-deriving a conclusion from the abstract; re-judging a paper you already ruled on is the most common way an agent wastes a research session. is_saved=false is a real measurement; on anonymous calls these keys are absent entirely, so never read a missing is_saved as false. Papers new to you are ranked exactly as before — nothing is demoted for being unseen.
    ConnectorNo auth
  • Find items on the map by text: objects and fields, findings, processes, metrics, decision statements and approved playbooks, matched case-insensitively. Use it when you do not know the name of what you need; for a task in words call get_task_context, which resolves the affected objects and their rules in one call, and for an object you can name call get_object. Each result has an id for fetch (object:<name>, finding:<id>, process:<type>, metric:<name>, statement:<id>, playbook:<id>). Relations are not searched: use get_object or route. Use ask for an explanation. Results share a 50-document budget across kinds with true per-kind counts; truncated says when more matched. Matching and scope: maplith://docs/mcp.
    ConnectorOAuth