Skip to main content
Glama

Server Details

Checks AI-written references against Crossref, PubMed and OpenAlex. Formats citations, PRISMA.

Ownership verified
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
thaohienhomes/pho-research-tools
GitHub Stars
0

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target clearly distinct research tasks such as searching papers, finding evidence, finding datasets or software, verifying references, formatting citations, and producing PRISMA outputs. A few boundaries are soft: search_papers and find_evidence overlap in paper discovery, prisma_flow_diagram and screening_log both produce PRISMA diagrams, and check_retractions overlaps with verify_references. The descriptions explicitly clarify when to use the overlapping tools, which keeps confusion limited.

Naming Consistency4/5

Names are consistently snake_case and mostly follow a verb_noun pattern: check_retractions, find_datasets, find_evidence, find_tools, format_citations, search_papers, verify_references. The two noun-phrase names, prisma_flow_diagram and screening_log, are minor deviations but remain readable and predictable.

Tool Count5/5

Nine tools is well within the ideal 3-15 range for a research workflow server. Each tool maps to a distinct stage of the workflow, so the set feels deliberately scoped rather than padded.

Completeness4/5

The surface covers literature search, evidence finding, dataset and software discovery, reference verification, citation formatting, retraction checks, and systematic-review screening with PRISMA outputs. Minor gaps remain, such as full-text retrieval or richer article metadata endpoints, but core research workflows are well supported.

Available Tools

9 tools
check_retractionsCheck retractionsA
Read-onlyIdempotent
Inspect

Check DOIs for retractions, expressions of concern and corrections, using Crossref (which includes Retraction Watch data). Status per DOI: retracted, concern, corrected, other_notice, no_notice (nothing on record), not_in_crossref, invalid_doi, rate_limited or lookup_failed (the DOI could not be checked, which is not a clean result). Works for a single paper or a whole reference list. verify_references already includes this check, so use this tool for DOIs that have not just been through verify_references. A DOI the same caller checked in the last hour is answered again at no cost to the allowance.

NameRequiredDescriptionDefault
doisYesDOIs, bare (10.1000/xyz) or as https://doi.org/ links.

Output Schema

NameRequiredDescription
quotaYes
countsYes
resultsYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations: it enumerates the full status set, warns that lookup_failed is not a clean result, notes rate_limited as a possible outcome, and discloses the one-hour caching/allowance behavior. These are behavioral traits the agent could not infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The source, status taxonomy, and usage routing are all front-loaded and each clause carries information. It is dense in a single block, and the long status enumeration could be more scannable, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter lookup tool with full annotation and output-schema coverage, the description covers source, semantics of each possible status, batch scope, and the sibling relationship. An agent has everything needed to call it and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is documented in-schema (bare DOI or https://doi.org/ link), so the description does not need to repeat format rules. It does add scope meaning by indicating the parameter accepts a full reference list as well as one paper, which is useful beyond the array schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check DOIs for retractions...') plus the underlying source (Crossref/Retraction Watch) and the exact status taxonomy returned. It explicitly positions itself against verify_references, so an agent can distinguish the two without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-to-use rule: use this tool for DOIs that have not just been through verify_references, since that tool already performs this check. It also states the scale ('single paper or a whole reference list') and a cost-based reuse condition for callers repeating a lookup within an hour.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_datasetsFind datasetsA
Read-onlyIdempotent
Inspect

Find open scientific datasets (and optionally models) that fit a research question, check their licences, verify the source papers (DOI, retractions, corrections), and return a citable Research Data Brief with a public share link. Searches DataCite (Zenodo, Figshare, Dryad and other data repositories), the Hugging Face Hub boosted by the Hugging Science curated index, and, for life-science questions, NCBI GEO, CZ CELLxGENE Discover (curated single-cell data) and the CZ CryoET Data Portal (cryo-electron tomography). Each result has a match level, a plain-language licence verdict, the source paper and whether it checks out, a citation for the data, and a line of code to load it. Every identifier comes from the repositories' own metadata; nothing is generated. The why field lists the facts behind the match: explain the fit to the user in your own words from those facts, and say plainly when the brief is empty. Pass keywords with English search words when the question is long or not in English. Licence verdicts come from repository metadata and are not legal advice.

NameRequiredDescriptionDefault
domainNoField of the question. Life-science domains also search NCBI GEO.
keywordsNoEnglish search keywords (e.g. "triple negative breast cancer RNA-seq"). Recommended.
questionYesThe research question in natural language (e.g. "gene expression in triple-negative breast cancer").
max_resultsNoNumber of results, 1–5.
intended_useNoWhat the data is for. `commercial` demotes anything its licence does not clear for commercial use.publication
citation_styleNoStyle for the ready-made citations.apa
include_modelsNoAlso look for pretrained models on Hugging Face.

Output Schema

NameRequiredDescription
quotaYes
statsYes
titleYes
resultsYes
questionYes
warningsYes
share_urlNo
takeawaysYes
suggestionsYes
intended_useYes
search_termsYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/openWorld/idempotent annotations by disclosing data provenance ('Every identifier comes from the repositories' own metadata; nothing is generated'), the limits of licence verdicts ('not legal advice'), and the empty-result behavior ('say plainly when the brief is empty'). It also enumerates the backend sources searched, which an agent cannot infer from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and result shape before source details, and most sentences carry real information. It is dense and long for a single paragraph, and the closing 'why' field explanation edges into output documentation that the output schema already covers, but little is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and annotations cover the safety profile, the description supplies exactly the missing context: sources queried, provenance guarantees, licence caveats, and empty-brief handling. Nothing an agent needs in order to call this correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters, including the domain enum, keyword guidance and the commercial-demotion behavior. The description reinforces a few of these (keywords for long/non-English questions, domain driving GEO search) but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource and scope ('Find open scientific datasets ... that fit a research question') and immediately names the concrete repositories it queries, which cleanly separates it from siblings like search_papers, find_evidence and find_tools. An agent can tell what this tool returns (a citable Research Data Brief with share link) without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through the source list and the note that life-science domains also search NCBI GEO, plus the instruction to pass `keywords` when the question is long or non-English. However, it never states when to prefer this tool over search_papers, find_evidence or check_retractions, and gives no explicit when-not conditions, so routing between siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_evidenceFind evidenceA
Read-onlyIdempotent
Inspect

Find the strongest published evidence for and against a scientific or medical claim. Searches PubMed (including a pass limited to guidelines, meta-analyses, systematic reviews and randomized trials) and OpenAlex, and returns real papers, each with a PMID or DOI, ordered by level of evidence: guideline, meta-analysis, systematic review, RCT, other trial, observational study, narrative review, case report, then study protocols that have not reported results yet. Each paper comes with the conclusion copied verbatim from its abstract, so you can judge for yourself whether it supports the claim, contradicts it, or does not address it, and quote the sentence you rely on. The tool does not judge stance and does not summarise: count a paper as support or contradiction only when its conclusion says so. Pass query with English search keywords when the claim is long or not in English. Retracted papers and correction notices are left out. Preprints are included and marked (not peer reviewed).

NameRequiredDescriptionDefault
claimYesThe claim to check, as a sentence (e.g. "Drinking coffee reduces the risk of type 2 diabetes").
queryNoEnglish search keywords for the claim (e.g. "coffee consumption type 2 diabetes risk"). Recommended.
year_toNoLatest publication year, inclusive.
year_fromNoEarliest publication year, inclusive.
max_resultsNoNumber of papers, 1–25.
include_preprintsNoKeep preprints (marked as not peer reviewed).

Output Schema

NameRequiredDescription
claimYes
queryYes
papersYes
statusYes
by_levelYes
excludedYes
warningsYes
without_abstractYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations: retracted papers and correction notices are excluded, preprints are included but flagged as not peer reviewed, and the tool explicitly does not judge stance or summarize. It also explains that conclusions are verbatim from abstracts and that results are ordered by evidence level, which is exactly the behavioral context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and sources, then behavior. Dense and mostly earns its length, though the stance/no-summary point is restated twice ('judge for yourself whether it supports…' then 'does not judge stance… count a paper as support only when its conclusion says so').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists, the description covers sources, ordering, exclusions, preprint flagging, and stance neutrality — everything needed to call this without surprises. Nothing material is missing for a read-only search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning for `query` (use English keywords when the claim is long/non-English) and clarifies the preprint inclusion behavior tied to `include_preprints`. Year and max_results semantics are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — find published evidence for and against a claim — and pins down the sources (PubMed, OpenAlex) plus the level-of-evidence ordering. It does not name a sibling (e.g. search_papers) to contrast with, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operational guidance: pass `query` in English when the claim is long or non-English, and only count a paper as support/contradiction when its conclusion says so. It never states when NOT to use this tool or which sibling to prefer for plain paper search, so exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_toolsFind research softwareA
Read-onlyIdempotent
Inspect

Find research software for a task from the bio.tools registry (ELIXIR), check each tool's licence, verify the paper behind it (DOI, retractions, corrections), label whether it is still maintained, and give the install line. Describe the task (e.g. "cluster single-cell RNA-seq data") and optionally the file format the data is in (e.g. H5AD, FASTQ, VCF); tools that list that format as an input are favoured. Each result has a match level, a plain-language licence verdict, the paper and whether it checks out, a maintenance label (active, idle, stale, archived) read from the linked GitHub repository, and an install line built from a PyPI, Bioconda, Bioconductor, CRAN or GitHub link the registry lists. Every identifier and command comes from the registry's own records; nothing is generated. The why field lists the facts behind the match: explain the fit in your own words from those facts, and say plainly when no tool matched. Pass keywords with English words when the task is long or not in English. Licence verdicts come from registry and repository metadata and are not legal advice.

NameRequiredDescriptionDefault
keywordsNoEnglish search keywords (e.g. "single-cell clustering"). Recommended.
questionYesThe task in natural language (e.g. "cluster single-cell RNA-seq data").
max_resultsNoNumber of results, 1–5.
input_formatNoThe file format the data is in (e.g. "H5AD", "FASTQ", "VCF"). Tools that read it are favoured.
intended_useNoWhat the software is for. `commercial` demotes anything its licence does not clear.publication
citation_styleNoStyle for the ready-made paper citations.apa

Output Schema

NameRequiredDescription
quotaYes
statsYes
resultsYes
questionYes
warningsYes
data_noteYes
takeawaysYes
suggestionsYes
input_formatNo
intended_useYes
search_termsYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), and the description goes well beyond them: every identifier and command is taken from registry records with nothing generated, maintenance labels come from the linked GitHub repo, install lines are built from PyPI/Bioconda/Bioconductor/CRAN/GitHub links, and licence verdicts are explicitly not legal advice. That is exactly the kind of provenance and limitation disclosure an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in the first clause, and every sentence carries non-redundant information (filters, result shape, provenance caveats). It is dense as a single long block rather than being broken into scannable parts, which costs it a point but not much else.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, open-world search tool with an output schema, the description covers purpose, inputs, filtering behaviour, result fields, and the provenance/legal caveats. Since an output schema exists, return-format detail is not required, and the description still summarizes result shape usefully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics the schema lacks: `keywords` should be English and is the fallback for long or non-English tasks, and `input_format` is used to favour tools that list that format as an input. `why` field handling is also explained. It does not, however, clarify `citation_style` behaviour beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource (find research software from the bio.tools/ELIXIR registry) plus the exact enrichment it performs: licence check, paper verification with retraction/correction checks, maintenance label, install line. It is unmistakably distinct from siblings like find_datasets or search_papers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use context ('Describe the task... and optionally the file format') and a concrete fallback rule ('Pass keywords with English words when the task is long or not in English'), plus the effect of `commercial` on results. It never names or excludes an alternative sibling (e.g. find_datasets for data rather than software), so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

format_citationsFormat citationsA
Read-onlyIdempotent
Inspect

Format references in a citation style (APA 7, MLA 9, Chicago author-date, Harvard, Vancouver, IEEE, AMA) or export them as BibTeX, RIS or CSL-JSON. By default every reference is first verified against Crossref, PubMed and OpenAlex, and verified references are formatted from the database record, so wrong years, pages or author names in the input are corrected. References that could not be verified are formatted exactly as written and flagged in entries[].warnings. Returns the bibliography and, for text and html output, the matching in-text citation for each reference.

NameRequiredDescriptionDefault
styleNoCitation style: apa (APA 7), mla (MLA 9), chicago (Chicago author-date), harvard (Harvard), vancouver (Vancouver), ieee (IEEE), ama (AMA). Ignored for bibtex/ris/csl-json output.apa
outputNotext (plain bibliography), html, bibtex, ris or csl-json.text
verifyNoVerify each reference before formatting (recommended). When false, references are formatted exactly as given, without corrections.
referencesYesReferences in any form: a pasted list in any style, BibTeX, RIS, CSL-JSON, or DOIs one per line.

Output Schema

NameRequiredDescription
quotaNo
styleYes
outputYes
contentYes
entriesYes
warningsYes
style_titleYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the safety profile (readOnly, idempotent, non-destructive, open-world). The description goes well beyond: it discloses that references are verified against Crossref, PubMed and OpenAlex, that verified entries are re-formatted from the database record (correcting wrong years/pages/authors), and that unverified entries are flagged in entries[].warnings. That is exactly the correction/network behavior an agent needs and cannot get from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences front-loaded with the verb and supported styles, then behavior, then return format. No filler; every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although a mutation of nothing and with an output schema present, the description still supplies the critical behavioral context (verification, correction, warning flagging) plus the return-shape hint for in-text citations. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enum values and the verify flag are already documented in the schema, and the description largely restates them. It adds only marginal meaning (e.g., that verification drives corrections), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (format references) and enumerates the exact styles and export formats, so the agent knows precisely what comes out. It is clearly distinct from siblings like verify_references or search_papers, which handle retrieval/validation rather than formatting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies context (it verifies by default and explains what the verify flag does), but it never states when to prefer this tool over a sibling such as verify_references, nor when to turn verification off beyond the boolean's own description. Usage is inferred rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prisma_flow_diagramPRISMA 2020 flow diagramA
Read-onlyIdempotent
Inspect

Draw a PRISMA 2020 flow diagram for a new systematic review from the record counts, as a PNG image plus an SVG and download links. Give the counts you have; screened, sought, assessed and reports-included boxes that follow from others are filled in and marked as derived. Studies included is never derived. The tool checks that the numbers add up (records identified minus removed equals screened, and so on) and returns a warning naming each box that does not, with the value it should have. The diagram always shows the numbers exactly as given. Add otherMethods counts to draw the second column (websites, organisations, citation searching).

NameRequiredDescriptionDefault
countsYes
footnotesNoPrint the template footnotes and source attribution.
other_methods_columnNoForce the other-methods column on or off. Default: drawn when otherMethods counts are given.

Output Schema

NameRequiredDescription
svgYes
widthYes
countsYes
heightYes
svg_urlNo
warningsYes
image_urlNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the read-only/idempotent annotations: it discloses the arithmetic validation ('checks that the numbers add up'), that it returns a warning naming each inconsistent box with the expected value, that derived boxes are marked as derived, that studiesIncluded is never derived, and that the diagram renders numbers exactly as given. This is substantive behavioral detail an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the core action and outputs open the text, followed by derivation and validation rules. Every sentence carries information, though the paragraph could be split for easier scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the deeply nested counts object and an existing output schema, the description covers the essential derivation, validation, and column behaviors an agent needs. Return-value explanation is rightly omitted because an output schema exists, though it does not mention limits such as the 30-source caps or deduplication comparison between databases and databaseSources.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the description adds genuine semantic value: it explains the derivation rule for screened/sought/assessed/reportsIncluded, clarifies that otherMethods counts draw the second column, and stresses that studiesIncluded must be supplied. It does not touch footnotes or the explicit column toggle, leaving some schema-covered ground only in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Draw a PRISMA 2020 flow diagram ... from the record counts,' and names the concrete outputs (PNG plus SVG and download links). The purpose is unmistakable and none of the sibling tools overlap with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for invocation ('Give the counts you have') and explains which boxes are auto-derived versus which the user must supply, which guides input decisions. It does not name explicit when-not-to-use conditions or alternatives, but no sibling offers a comparable capability, so the gap is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screening_logScreening logA
Read-onlyIdempotent
Inspect

Turn the screening decisions of a systematic review into its PRISMA 2020 counts, flow diagram and screening log. Give one row per record: its title/abstract decision (include or exclude), its full-text decision for records that passed (include, exclude or not_retrieved), and the reason for each exclusion. Every box from "records screened" down is counted from the rows, so the diagram always matches the decisions; full-text exclusions are grouped by reason. Returns the diagram (PNG, SVG, links), the counts, a CSV of every decision for the review appendix, and the problems a reviewer would catch: full-text exclusions without a reason, records still waiting for a full-text decision, and duplicate ids. Add the identification counts (records from databases, duplicates removed) to complete the top of the diagram. At most 5000 records per call.

NameRequiredDescriptionDefault
recordsYes
footnotesNoPrint the template footnotes and source attribution.
identificationNoCounts before screening, for the top of the diagram.

Output Schema

NameRequiredDescription
svgYes
widthYes
countsYes
heightYes
svg_urlNo
warningsYes
image_urlNo
screeningYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a read-only, idempotent, non-destructive, closed-world operation, so safety is covered. The description goes further by disclosing a hard capacity limit (at most 5000 records per call), the validation problems it surfaces (full-text exclusions without a reason, pending full-text decisions, duplicate ids), and the concrete return payload shapes (PNG/SVG/links, counts, CSV for the appendix). That is meaningful behavior beyond the annotations, though error handling and pagination/overflow behavior are not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense single paragraph, but the purpose is front-loaded and each subsequent sentence adds a distinct fact: row shape, derived counting/grouping, returned artifacts, reviewer-facing validation, optional identification input, and the size cap. No sentence is pure filler, though the length sits at the upper end of comfortable for a tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-schema tool with an output schema, the description covers the essential agent-facing unknowns: input row semantics, output artifacts and their formats, validation feedback, and the record cap. It does not explain what happens past the 5000-record limit or how diagram links are scoped, which are minor gaps given the output schema carries return details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, so a baseline of 3 applies and the description must add value. It does: it explains the row model (one row per record, title/abstract decision, full-text decision only for records that passed, a reason per exclusion) and clarifies that the identification counts fill in the top of the diagram, which is semantics the schema only partially captures. It stops short of documenting the optional 'footnotes' flag or a few identification sub-fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: turning screening decisions into PRISMA 2020 counts, a flow diagram and a screening log. It is far more concrete than a restatement of the title. However, it never differentiates itself from the sibling prisma_flow_diagram, which sounds like it targets the same artifact, so an agent cannot fully disambiguate without opening both schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly defines the entry condition (you have per-record screening decisions and want PRISMA counts/diagram) and states the 5000-record cap, which shapes when the tool is usable. It gives no explicit when-not guidance and does not name prisma_flow_diagram or any other sibling as the alternative for adjacent tasks. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_papersSearch papersA
Read-only
Inspect

Search PubMed and OpenAlex for real papers. Every result carries a DOI or PubMed ID that resolves, so nothing returned can be fabricated. Finds sources for a claim or a topic. Filters: publication year range, open-access only, study types, and the number of results. Retracted papers are left out by default. Preprints are included and marked preprint: true (not peer reviewed). Results are ranked by the databases' relevance, alternating between the two sources.

NameRequiredDescriptionDefault
queryYesWhat to look for, in English keywords (e.g. "sepsis early antibiotics mortality").
year_toNoLatest publication year, inclusive.
year_fromNoEarliest publication year, inclusive.
max_resultsNoNumber of results, 1–50.
study_typesNoStudy designs. Known ids use database filters: rct, clinical-trial, systematic-review, meta-analysis, review, guideline, cohort, case-control, case-report, observational. Any other text is added as keywords.
open_access_onlyNoOnly papers with a free, legal full text.
include_retractedNoKeep retracted papers (flagged) instead of leaving them out.

Output Schema

NameRequiredDescription
queryYes
statusYes
resultsYes
excludedYes
warningsYes

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld/non-destructive annotations, it discloses substantive behavior: results are guaranteed non-fabricated with resolvable DOI/PubMed IDs, retracted papers are dropped by default, preprints are included but flagged preprint:true, and ranking alternates between the two databases. This is exactly the extra context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and the anti-fabrication guarantee, then layers filters and defaults in compact sentences. Slightly list-like but nearly every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description still covers the essentials: sources queried, result trustworthiness, retraction and preprint handling, ranking, and filters. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents every parameter, its bounds, and enum-like study type ids. The description only restates the filter categories (year range, open access, study types, result count) without adding syntax or semantics beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (search PubMed and OpenAlex for real papers) and adds the scope 'finds sources for a claim or a topic'. It is clearly the discovery/retrieval tool, but it never names or contrasts with the sibling verification tools (verify_references, check_retractions), so sibling differentiation is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when to reach for it (to find sources for a claim or topic) and enumerates the available filters and their defaults. It does not state exclusions or explicitly route the agent to an alternative when verification is wanted, so it stops short of a full when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_referencesVerify referencesA
Read-onlyIdempotent
Inspect

Check every reference in a list against Crossref, PubMed and OpenAlex and report, for each one, whether the paper really exists and whether the details are right. Works on lists written by a person or generated by an AI model. Input: a pasted reference list in any common style (APA, Vancouver, numbered, mixed), BibTeX, RIS, CSL-JSON, or one DOI per line. Each reference gets exactly one status: verified, verified_with_corrections (real paper, some details wrong; corrected metadata included), likely_fabricated (no such paper exists), not_found (could not be confirmed either way), retracted, or ambiguous (several papers fit). likely_fabricated, not_found and ambiguous mean the reference could not be confirmed as a real paper; retracted means the paper exists but has been withdrawn. Retractions, expressions of concern and corrections are already checked here, so there is no need to call check_retractions on the same references afterwards. At most 50 references per call.

NameRequiredDescriptionDefault
referencesYesThe reference list exactly as written: any citation style, BibTeX, RIS, CSL-JSON, or DOIs one per line.

Output Schema

NameRequiredDescription
quotaYes
summaryYes
referencesYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/openWorld/non-destructive, so the description only needs to add beyond that — and it does, with the full status taxonomy, the meaning of each ambiguous status, and the per-call limit. It does not mention latency or how conflicting sources are resolved, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then input formats, then status semantics, then the sibling-routing note. Long but every sentence carries distinct information with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return structure is covered; the description still supplies the status vocabulary's meaning, the input breadth, and the throughput limit. An agent has everything needed to call this correctly and to route retraction checks appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter at 100% schema coverage, so the schema already documents the accepted formats. The description restates the same format list (APA, Vancouver, BibTeX, RIS, CSL-JSON, DOIs) with no new syntax or structural detail, so it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (verify) plus resource (references) with explicit scope: checks against Crossref, PubMed and OpenAlex and reports existence and correctness per item. It explicitly distinguishes itself from the sibling check_retractions by stating retraction checks are already included.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States when to use it (pasted lists, human- or AI-written), what input forms are accepted, and gives an explicit exclusion: 'no need to call check_retractions on the same references afterwards.' It also states the 50-reference ceiling, which bounds invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedfind_evidence1 field changed
      • changedOutput schema / properties / papers / items / properties / level / enum
        Previous value: -[
        -  "guideline",
        -  "meta-analysis",
        -  "systematic-review",
        -  "rct",
        -  "clinical-trial",
        -  "observational",
        -  "review",
        -  "case-report",
        -  "other"
        -]New value: +[
        +  "guideline",
        +  "meta-analysis",
        +  "systematic-review",
        +  "rct",
        +  "clinical-trial",
        +  "observational",
        +  "review",
        +  "case-report",
        +  "other",
        +  "protocol"
        +]
  2. 1 tool update
    • Changedprisma_flow_diagram13 fields changed
      • changedInput schema / properties / counts / properties / databaseSources / description
        Previous value: -"Per-database counts, e.g. [{\"name\":\"MEDLINE\",\"n\":812}]."New value: +"Per-database counts before deduplication, e.g. [{\"name\":\"MEDLINE\",\"n\":812}]. If databases is also given, the two are compared."
      • changedInput schema / properties / counts / properties / databases / description
        Previous value: -"Records identified from databases (total)."New value: +"Records identified from databases, all databases together, before duplicates are removed. Leave out when databaseSources is given: it is their sum."
      • addedInput schema / properties / counts / properties / duplicatesRemoved / description
        Added value: +"Duplicate records removed before screening."
      • addedInput schema / properties / counts / properties / recordsExcluded / description
        Added value: +"Records excluded at title and abstract screening (not reports excluded at full text)."
      • addedInput schema / properties / counts / properties / recordsScreened / description
        Added value: +"Records screened on title and abstract. Derived when left out: identified minus removed before screening."
      • changedInput schema / properties / counts / properties / registers / description
        Previous value: -"Records identified from registers."New value: +"Records identified from trial registers (ClinicalTrials.gov, ICTRP…), before duplicates are removed."
      • changedInput schema / properties / counts / properties / reportsAssessed / description
        Previous value: -"Reports assessed for eligibility."New value: +"Full-text reports assessed for eligibility. Derived when left out: sought minus not retrieved."
      • changedInput schema / properties / counts / properties / reportsExcluded / description
        Previous value: -"Total reports excluded, when reasons are not itemised."New value: +"Total full-text reports excluded. If reasons are also given, their sum is compared with it."
      • changedInput schema / properties / counts / properties / reportsExcludedReasons / description
        Previous value: -"Reports excluded, one entry per reason."New value: +"Full-text reports excluded, one entry per reason, e.g. [{\"name\":\"Wrong population\",\"n\":12}]."
      • changedInput schema / properties / counts / properties / reportsIncluded / description
        Previous value: -"Reports of included studies."New value: +"Reports of included studies. Derived when left out: assessed minus excluded (both columns when otherMethods is drawn)."
      • addedInput schema / properties / counts / properties / reportsNotRetrieved / description
        Added value: +"Reports that could not be retrieved."
      • changedInput schema / properties / counts / properties / reportsSought / description
        Previous value: -"Reports sought for retrieval."New value: +"Full-text reports sought for retrieval. Derived when left out: screened minus excluded."
      • changedInput schema / properties / counts / properties / studiesIncluded / description
        Previous value: -"Studies included in the review."New value: +"Studies included in the review. Never derived: one study can have several reports, so give it. It cannot exceed reportsIncluded."
  3. 5 tool updates
    • Changedcheck_retractions1 field changed
      • addedOutput schema / properties / quota / properties / hint
        Added value: +{
        +  "enum": [
        +    "low",
        +    "intro"
        +  ],
        +  "type": "string"
        +}
    • Changedfind_datasets1 field changed
      • addedOutput schema / properties / quota / properties / hint
        Added value: +{
        +  "enum": [
        +    "low",
        +    "intro"
        +  ],
        +  "type": "string"
        +}
    • Changedfind_tools1 field changed
      • addedOutput schema / properties / quota / properties / hint
        Added value: +{
        +  "enum": [
        +    "low",
        +    "intro"
        +  ],
        +  "type": "string"
        +}
    • Changedformat_citations1 field changed
      • addedOutput schema / properties / quota / properties / hint
        Added value: +{
        +  "enum": [
        +    "low",
        +    "intro"
        +  ],
        +  "type": "string"
        +}
    • Changedverify_references1 field changed
      • addedOutput schema / properties / quota / properties / hint
        Added value: +{
        +  "enum": [
        +    "low",
        +    "intro"
        +  ],
        +  "type": "string"
        +}
  4. 5 tool updates
    • Changedcheck_retractions1 field changed
      • addedOutput schema / properties / quota / properties / upgrade
        Added value: +{
        +  "type": "string"
        +}
    • Changedfind_datasets1 field changed
      • addedOutput schema / properties / quota / properties / upgrade
        Added value: +{
        +  "type": "string"
        +}
    • Addedfind_tools
    • Changedformat_citations1 field changed
      • addedOutput schema / properties / quota / properties / upgrade
        Added value: +{
        +  "type": "string"
        +}
    • Changedverify_references1 field changed
      • addedOutput schema / properties / quota / properties / upgrade
        Added value: +{
        +  "type": "string"
        +}
  5. 3 tool updates
    • Addedfind_datasets
    • Addedfind_evidence
    • Addedscreening_log
  6. 3 tool updates
    • Changedcheck_retractions1 field changed
      • changedOutput schema / properties / quota / properties / plan / enum
        Previous value: -[
        -  "anon",
        -  "free"
        -]New value: +[
        +  "anon",
        +  "free",
        +  "pro"
        +]
    • Changedformat_citations1 field changed
      • changedOutput schema / properties / quota / properties / plan / enum
        Previous value: -[
        -  "anon",
        -  "free"
        -]New value: +[
        +  "anon",
        +  "free",
        +  "pro"
        +]
    • Changedverify_references1 field changed
      • changedOutput schema / properties / quota / properties / plan / enum
        Previous value: -[
        -  "anon",
        -  "free"
        -]New value: +[
        +  "anon",
        +  "free",
        +  "pro"
        +]
  7. 1 tool update
    • Changedformat_citations1 field changed
      • changedInput schema / properties / verify / description
        Previous value: -"Verify each reference before formatting (recommended). Set false only for references already verified in this conversation; they are then formatted exactly as given."New value: +"Verify each reference before formatting (recommended). When false, references are formatted exactly as given, without corrections."
  8. 5 tool updates
    • First observedcheck_retractions
    • First observedformat_citations
    • First observedprisma_flow_diagram
    • First observedsearch_papers
    • First observedverify_references

Publisher details

Operator
Hien Tran Ngoc
Operator website
https://pho.chat/
Vendor relationship
First-party
Trust center
Not available
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to check BibTeX records for bibliographic existence and metadata consistency by querying identifier-first providers like Crossref, OpenAlex, PubMed, DBLP, and arXiv and scoring title, author, year, venue, and page evidence. It returns explainable outcomes such as matches, ambiguous or not-found entries, and identifier conflicts, while keeping edits non-destructive unless explicitly applied.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to verify bibliographic records and BibTeX metadata consistency by resolving DOI, PMID, PMCID, and arXiv identifiers and scoring candidates across multiple scholarly sources with explainable, multi-signal matching. It reports structured provider outcomes and metadata conflicts without destructively editing the source bibliography.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants and researchers to verify BibTeX entries against Crossref, OpenAlex, PubMed, arXiv and other sources using identifier-first, explainable multi-signal matching. It reports metadata consistency, conflicts, and ambiguous or missing records, and can apply high-confidence field updates non-destructively with backups.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.