Panda Research Tools
Provides tools for searching PubMed literature and generating PubMed evidence tables for research and citation-related workflows.
Panda Research Tools
Scholarly integrity and papers: citation checks, literature and PubMed search, academic experts, PDF tables.
Focused MCP server (6 tools) from the Panda Federation public-data toolkit. Prefer this over the 23-tool mega-server for better Tool Definition Quality Score (TDQS) / Glama coherence.
Install / Use
Needs a free Apify API token and uv.
uvx --from panda-federation-tools panda-research-toolsSame entry point from this repo:
uvx --from git+https://github.com/pandadad0214/panda-research-tools panda-research-toolsCursor / Claude / VS Code: command uvx, args ["--from", "panda-federation-tools", "panda-research-tools"], env APIFY_TOKEN.
Related MCP server: ColabAI MCP Server
Tools (6)
reference_checkercitation_formatterliterature_searchpubmed_evidence_tableresearcher_expert_finderpdf_table_extractor
Each tool runs one Apify Actor on your account. Empty runs are not charged per result; every call is capped by run_max_charge_usd. Full schemas and prices: umbrella README.
Sibling domain servers
panda-public-funding-tools— US federal money and filings: grants, contracts, SBIR/STTR topics, SEC financials, clinical trials.panda-leads-tools— Public leads and enrichment: NPI providers, podcasts, local businesses, hiring signals, website enrichment, team pages, topic trends, trucking carriers.panda-web-security-tools— Site, email and agent safety: SPF/DKIM/DMARC audits, AI/SEO readiness, website change monitoring, hidden AI instructions scanner.
Index / compatibility mega-server: panda-federation-tools (use only when you truly need every tool).
TDQS standard
New tools join this domain only while the count stays in the 3–15 band. Descriptions follow the checklist in the umbrella repo. See tdqs-standard / project docs.
Built by Panda Federation. MIT licensed.
Available Tools
6 toolscitation_formatterCitation Generator API: DOI to APA, MLA, Chicago & BibTeXARead-only
Convert DOIs, ISBNs, PMIDs, arXiv IDs, titles or messy reference strings into checked citations in APA 7, MLA 9, Chicago, Harvard, IEEE, Vancouver, BibTeX and RIS. Unlike reference_checker, it formats rather than audits: unresolved items are listed, not diagnosed as fake or retracted. Use when you need a clean bibliography or .bib/.ris export. Do not use to find papers (use literature_search) or to prove references are genuine (use reference_checker first). Parameters: pass references (one per line) or paste a whole list or .bib/.ris contents in text. All styles are one price, so request every style you might need in one call rather than calling again. Text lookups below minMatchScore stay unresolved; DOIs and IDs resolve exactly. Only formatted citations are billed. Returns per item: summary, status, one field per style (apa, mla, ...), inText, bibtex, ris, doi, title, authors, year, containerTitle; combined bibliography files stay in the run's Apify key-value store.
Behavior: read-only; runs the Apify Actor pandadad0214/citation-formatter (https://apify.com/pandadad0214/citation-formatter) on your own Apify account. Price: $0.003 per citation formatted. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxReferences when you leave it unset, so it also limits what is billed; setting maxReferences higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Paste a reference list or file contents. Optional. Paste a whole bibliography (numbered, one per line, or blank-line separated), or the contents of a .bib (BibTeX) or .ris file. BibTeX/RIS entries are converted directly without a lookup. | |
| styles | No | Citation styles. Styles to output. All six are included in the price, so pick as many as you like. | |
| includeRis | No | RIS export. Add an RIS entry per reference and a combined .ris file (Zotero, Mendeley, EndNote, Rayyan). Default: on. | |
| references | No | References (one per line). DOIs, DOI links, ISBNs, arXiv IDs, PMIDs ("PMID: 123"), paper titles, or messy reference strings in any style. Each one is looked up and formatted. | |
| contactEmail | No | Contact email for Crossref (optional). Optional. Sent to Crossref and NCBI as the contact so requests use their faster 'polite' pools. Never shared elsewhere. | |
| includeBibtex | No | BibTeX export. Add a BibTeX entry per reference and a combined .bib file (LaTeX, Overleaf, JabRef). Default: on. | |
| maxReferences | No | Max references per run. Safety cap. Only formatted citations are billed. Whole number, 1 to 20,000 references; default 1,000. | |
| minMatchScore | No | Minimum match score for text lookups (50-100). How closely a search result must match a free-text reference (title, authors, year) to be used. DOIs and ISBNs are exact lookups and are not affected. Whole number, 50 to 100; default 80. | |
| run_max_items | No | Optional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field. | |
| fixAllCapsTitles | No | Fix ALL-CAPS titles. Some registry records store titles in capitals. Convert them to sentence case. Default: on. | |
| run_timeout_secs | No | Optional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300). | |
| run_max_charge_usd | No | Optional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50). | |
| sentenceCaseTitles | No | Sentence-case article and book titles. APA, Harvard, IEEE and Vancouver use sentence case ("Deep residual learning for image recognition"). Registries often store Title Case, so we convert it; acronyms like CVPR, mRNA and COVID-19 are kept. MLA and Chicago re-capitalise automatically. Check proper nouns (names, places) in converted titles. Default: on. | |
| listUnresolvedInFiles | No | List unresolved references in the bibliography files. Append references we could not find to the end of each bibliography file, marked [UNRESOLVED - check manually], so nothing silently disappears. They are never charged. Default: on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the read-only/open-world profile; the description adds substantial context beyond that: price ($0.003 per formatted citation), what is not billed (unresolved items, empty runs), a per-call spending cap via run_max_charge_usd, expected latency, and that bibliography files are written to the run's Apify key-value store rather than returned inline. It also discloses the minMatchScore resolution rule (exact for DOIs/IDs, fuzzy for text).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structure is excellent — purpose, differentiation, cost, latency, return shape — and the routing guidance is front-loaded. There is some avoidable repetition: 'Only formatted citations are billed' appears twice, and 'all styles are one price' duplicates the styles field text, which costs it the top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, zero-required-parameter actor wrapper with no output schema, the description is thorough: it describes the return envelope ({actor, count, items}), lists per-item fields, notes truncation behaviour and structuredContent, and covers pricing, caps, and timeouts. An agent has everything needed to size, budget, and interpret a call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns extra by explaining cross-parameter interaction that the schema only hints at — run_max_items also limits what is billed and 'fills maxReferences when you leave it unset, so setting maxReferences higher can bill more than is returned'. It also states run_timeout_secs should be raised after timeout errors. Minor gap: it does not restate what minMatchScore or listUnresolvedInFiles do beyond the field docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb (Convert) and enumerates the accepted inputs (DOIs, ISBNs, PMIDs, arXiv IDs, titles, messy strings) and outputs (APA 7, MLA 9, Chicago, Harvard, IEEE, Vancouver, BibTeX, RIS). It explicitly distinguishes itself from reference_checker ('formats rather than audits') and literature_search, so an agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives positive triggers ('Use when you need a clean bibliography or .bib/.ris export') and explicit exclusions with named alternatives ('Do not use to find papers (use literature_search) or to prove references are genuine (use reference_checker first)'). It also advises on call batching (request every style in one call) and on timeout recovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
literature_searchGoogle Scholar Scraper Alternative: Papers, Citations & BibTeXARead-only
Search 250M+ scholarly works (OpenAlex) by topic query or seed DOIs and return ranked papers with DOI, citation count, free PDF link, retraction flag and a ready citation. Unlike pubmed_evidence_table (PubMed biomedical records with study design and PRISMA counts), this covers every discipline and supports citation-network expansion. Use when you need real papers on a topic, a reading list, or papers citing/cited by known DOIs. Do not use for systematic biomedical screening (use pubmed_evidence_table) or to find people (use researcher_expert_finder). Parameters: seedDois with no query walks the citation network per seedMode (citing = forward, references = backward); with a query it searches inside that network. searchIn=fullText broadens recall but lowers precision. retractedPapers=flag returns and bills retracted papers marked FIX; exclude drops them unbilled. sortBy changes dataset order only; readingListSize does not affect cost. Returns per item: summary, status, title, authors, year, venue, doi, citations, readingRank, readingScore, isOpenAccess, pdfUrl, retracted, citation, bibtex, ris, abstract.
Behavior: read-only; runs the Apify Actor pandadad0214/literature-search (https://apify.com/pandadad0214/literature-search) on your own Apify account. Price: $0.003 per paper found. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxResults when you leave it unset, so it also limits what is billed; setting maxResults higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query. Topic or Boolean query. Use quotes for phrases and AND / OR / NOT in capitals, e.g. "retrieval augmented generation" AND (clinical OR medicine) NOT survey. Leave empty to explore around seed papers only. | |
| types | No | Document types. Leave empty for all paper types (peer reviews, errata, retraction notices and abstracts-only records are always left out unless you pick them here). | |
| sortBy | No | Sort results by. Order of the dataset. The reading list is always ranked by reading score (relevance plus field-normalised citation impact). Choices: relevance = Relevance; citations = Most cited; newest = Newest first; oldest = Oldest first. | relevance |
| yearTo | No | To year. Latest publication year (inclusive). Whole number, 1500 to 2100. | |
| language | No | Language. Optional two-letter language code, e.g. en, de, es. | |
| searchIn | No | Search in. Title and abstract is the most precise (like a database search). Full text also matches papers that only mention your terms in the body. Choices: titleAbstract = Title and abstract (recommended); title = Title only; fullText = Full text (broadest). | titleAbstract |
| seedDois | No | Seed papers (DOIs). Optional. Start from papers you already trust. Combine with a query to search inside that network, or use alone. Up to 50 DOIs. | |
| seedMode | No | Seed mode. Which papers around the seeds to return. Choices: citing = Papers that cite the seeds (forward); references = Papers the seeds cite (backward); related = Related papers (OpenAlex similarity). | citing |
| yearFrom | No | From year. Earliest publication year (inclusive). Whole number, 1500 to 2100. | |
| maxResults | No | Maximum papers. You pay per returned paper, so this also caps the cost ($0.003 x papers). Whole number, 1 to 2,000 results; default 100. | |
| contactEmail | No | Contact email for API etiquette (optional). Sent to Crossref and Unpaywall as the polite-pool contact. Leave empty to use ours. | |
| minCitations | No | Minimum citations. Only return papers cited at least this many times (OpenAlex counts). Whole number, 0 or more citations; default 0. | |
| citationStyle | No | Citation style. Style for the citation column and the CITATIONS file. Formatted by citeproc-js with the official CSL style. Choices: apa = APA 7th edition; mla = MLA 9th edition; chicago = Chicago author-date; harvard = Harvard (Cite Them Right); ieee = IEEE; vancouver = Vancouver (NLM). | apa |
| run_max_items | No | Optional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field. | |
| checkUnpaywall | No | Find open-access PDFs (Unpaywall). Look up the best legal open-access copy of each paper. Default: on. | |
| openAccessOnly | No | Open access only. Only return papers with a free, legal full-text copy. Default: off. | |
| readingListSize | No | Reading list length. How many top papers go into the ranked READING_LIST file. All papers are still in the dataset and exports. Whole number, 5 to 500 papers; default 25. | |
| retractedPapers | No | Retracted papers. Flag keeps retracted papers in the results, marked FIX, so you know to avoid them (they are charged as returned papers). Exclude drops them before they are returned (not charged). Choices: flag = Flag them (FIX); exclude = Exclude them. | flag |
| includeAbstracts | No | Include abstracts. Add the abstract where OpenAlex has one (some publishers withhold them). Default: on. | |
| run_timeout_secs | No | Optional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300). | |
| run_max_charge_usd | No | Optional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world and non-destructive status, but the description adds substantial context they cannot express: per-paper pricing ($0.003), spending caps, the 5-15 s vs. minutes runtime split, timeout remediation, and that output is trimmed to whole items with all items in structuredContent. The only gap is that it does not discuss failure/error surfaces beyond timeouts. Note that the parameter-recap sentences largely restate schema text rather than adding new behavioral facts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded correctly: purpose, differentiation and when-to-use come before parameter detail and the behavior block. It is long for a single field, and the parameter recap in the first paragraph re-treads schema content (sortBy ordering, retraction billing, readingListSize cost) that an agent has already been given, which is the main source of bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 21 optional parameters and no output schema, the description compensates well by listing the per-item return fields (summary, readingRank, pdfUrl, retracted, citation, bibtex, ris, abstract) and the {actor, count, items} envelope. Cost model, timeout guidance and the seed-network semantics complete the picture an agent needs before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 cost caps, billing for maxResults, retraction billing and dataset ordering, and much of the description's parameter walkthrough duplicates that. It does still add genuine cross-parameter meaning: that seedDois alone walks the network while a query searches within it, and that searchIn=fullText trades precision for recall. That added interaction semantics lifts it above the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Search"), resource ("250M+ scholarly works (OpenAlex)") and source mode ("topic query or seed DOIs"), then enumerates what comes back (DOI, citation count, free PDF link, retraction flag, ready citation). It explicitly contrasts itself with pubmed_evidence_table and researcher_expert_finder, so an agent can separate it from siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives positive triggers ("real papers on a topic, a reading list, or papers citing/cited by known DOIs") and explicit exclusions with the sibling to use instead ("Do not use for systematic biomedical screening... or to find people"). It also explains the mode-selection rule for seedDois with vs. without a query, which is the main routing decision an agent must make.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_table_extractorPDF Table Extractor: PDF to Excel & CSV Converter with OCRARead-only
Extract every table from PDF files (by URL or from an Apify key-value store) into structured rows, Excel and CSV, with optional OCR for scanned pages. Unlike sec_financials_excel (standardized XBRL financials straight from SEC filings), this reads whatever tables a PDF contains. Use when the data you need is locked in PDF tables: reports, statements, government releases. Do not use for SEC-listed company financials (use sec_financials_excel, which is exact) or to find papers (use literature_search). Parameters: billing is per page analysed plus per table extracted, so pages and maxPagesPerPdf are the real cost levers; run_max_items does not cap pages. ocrScannedPages=false skips and lists scanned pages; turning it on adds the per-OCR-page price up to maxOcrPagesPerPdf, and is much slower. detection=auto tries ruled-grid then whitespace detection; force lattice or stream only if auto merges or splits columns. Files over 150 MB fail and are not charged. Returns per item (one per table): summary, pages, header, row and column counts and cell data; Excel/CSV files stay in the run's Apify key-value store.
Behavior: read-only; runs the Apify Actor pandadad0214/pdf-table-extractor (https://apify.com/pandadad0214/pdf-table-extractor) on your own Apify account. Price: $0.001 per page analysed; $0.003 per table extracted; $0.02 per scanned page ocr. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned but does not limit what the Actor bills; use the tool's own limits and run_max_charge_usd. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | Pages. Optional. Only these pages, e.g. 1-5, 8, 12-end. Leave empty for all pages (up to the page limit below). | |
| pdfUrls | No | PDF URLs. Direct links to PDF files. Google Drive and Dropbox share links are converted to direct downloads automatically. Up to 150 MB per file. | |
| pdfStore | No | Key-value store with PDFs. Optional. Pick a key-value store in your account that holds PDFs. The Actor gets read access to this store only. | |
| detection | No | Table detection. Auto tries ruled-grid detection first and switches to whitespace (column alignment) detection when that recovers more of the table. Pick one mode if you know your PDF's style. Choices: auto = Auto (recommended); lattice = Ruled tables only (cell borders); stream = Whitespace tables only (no borders). | auto |
| pdfStoreKeys | No | Record keys in that store. Optional. Keys of the PDFs to process (e.g. REPORT.pdf). Leave empty to process every PDF record in the store (up to 50). | |
| run_max_items | No | Optional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field. | |
| maxPagesPerPdf | No | Maximum pages per PDF. Caps cost and run time on very long documents. You pay per page analysed. Whole number, 1 to 2,000 pages; default 100. | |
| headerDetection | No | Header row. Auto finds header rows above the first data row (multi-line headers are joined). First row = always use row 1. None = generic Column 1, Column 2… names. Choices: auto = Auto-detect; firstRow = Always the first row; none = No header. | auto |
| ocrScannedPages | No | OCR scanned pages (beta). Pages with no text layer (scans, photos) are always detected. Off (default): they are skipped, listed in SUMMARY and on the Index sheet, and cost nothing. On: they are read with Tesseract OCR (English) and their tables are marked 'verify'. OCR is slow (about a minute per page) and can misread digits and dot leaders, so use it for clean scans and check the numbers. | |
| mergeAcrossPages | No | Join tables that continue on the next page. When a table carries on over a page break with the same columns, output it as one table with a page range. Default: on. | |
| mergeWrappedRows | No | Merge wrapped rows. Join labels that wrap onto a second line back into one row, so numbers stay on the right line. Default: on. | |
| numbersAsNumbers | No | Numbers as numbers in Excel. Write 1,234 / (56) / 4.2% as real Excel numbers (parentheses = negative) so you can sum and chart them. CSV and dataset keep the text exactly as printed. Default: on. | |
| run_timeout_secs | No | Optional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300). | |
| maxOcrPagesPerPdf | No | Maximum OCR pages per PDF. OCR has its own cap because it is slow and priced per page. Extra scanned pages are flagged, not charged. Whole number, 0 to 100 pages; default 10. | |
| run_max_charge_usd | No | Optional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the supplied annotations (readOnlyHint/openWorldHint/destructiveHint), disclosing the full cost model ($0.001/page, $0.003/table, $0.02/OCR page), the hard cap via run_max_charge_usd, the 150 MB failure-and-no-charge rule, and the 5-15 s typical / 300 s max runtime with timeout remediation. It also warns that OCR is slow and error-prone on digits. This is exactly the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, differentiation, and use/don't-use routing before the operational detail, which is the right order. It is long but nearly every sentence carries distinct information; the main waste is pricing stated twice (prose 'billing is per page analysed plus per table extracted' then the explicit price list) and the run_max_items caveat repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 optional parameters and no output schema, the description carries the burden well: it describes the return payload ({actor, count, items}, per-item summary/pages/header/row and column counts/cell data), notes that Excel/CSV artifacts remain in the run's key-value store, and mentions structuredContent trimming. An agent has enough to call it correctly and interpret the result without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, yet the description adds cross-parameter meaning the schema cannot: which knobs actually drive cost ('pages and maxPagesPerPdf are the real cost levers'), that OCR cost scales up to maxOcrPagesPerPdf, and the detection-mode decision rule. It loses a point for conflicting with the schema on run_max_items, which the description says 'does not limit what the Actor bills' while the schema says it 'also limits how many results the Actor produces and charges for.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource ('Extract every table from PDF files ... into structured rows, Excel and CSV, with optional OCR'), plus both input sources (URL or Apify key-value store). It explicitly differentiates from named alternatives ('Unlike sec_financials_excel ... this reads whatever tables a PDF contains') and names literature_search, so an agent can place it against siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the positive case ('Use when the data you need is locked in PDF tables: reports, statements, government releases') and two explicit exclusions with redirects ('Do not use for SEC-listed company financials (use sec_financials_excel) or to find papers (use literature_search)'). It also gives conditional selection guidance inside the tool, e.g. 'force lattice or stream only if auto merges or splits columns.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubmed_evidence_tablePubMed Scraper: Articles, Abstracts & Evidence Table to ExcelARead-only
Run one or more PubMed queries and return a screening-ready evidence table: one row per article with PMID, journal, study design, sample size, retraction status and citation, plus PRISMA-style counts for the whole search. Unlike literature_search (all disciplines, OpenAlex ranking, citation-network walks), this uses native PubMed syntax and MeSH and is built for systematic-review screening. Use when the question is biomedical/clinical and you need reproducible PubMed queries or design filters (RCT, meta-analysis, cohort). Do not use for non-biomedical topics (use literature_search), for trial registrations (use clinical_trial_leads) or to verify a reference list (use reference_checker). Parameters: queries accept PubMed field tags ([tiab], [mh], [pt]) and Boolean operators; several queries are de-duplicated into one table. Filters (studyDesigns, excludeAnimalOnly, hasAbstract, freeFullTextOnly, excludePreprints) run before billing, and PRISMA counts still report what they removed. retractedArticles=flag bills retracted rows marked FIX; exclude drops them unbilled. sampleSize is parsed from the abstract and comes with sampleSizeConfidence; treat low confidence as unverified. Returns per item: summary, status, pmid, title, year, journal, studyDesign, sampleSize, sampleSizeConfidence, retractionStatus, retracted, citation. Excel, PRISMA and RIS/Rayyan import files stay in the run's Apify key-value store.
Behavior: read-only; runs the Apify Actor pandadad0214/pubmed-evidence-table (https://apify.com/pandadad0214/pubmed-evidence-table) on your own Apify account. Price: $0.004 per article found. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxResults when you leave it unset, so it also limits what is billed; setting maxResults higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.
| Name | Required | Description | Default |
|---|---|---|---|
| dateTo | No | Published to. Optional. 2025, 2025-12 or 2025-12-31. | |
| sortBy | No | Order. Order of the table. PubMed best match or most recent first. Choices: relevance = Best match (PubMed relevance); newest = Most recent. | relevance |
| queries | Yes | PubMed search strings. One or more PubMed queries, written exactly as you would in PubMed (field tags like [tiab], [mh], [pt] and AND / OR / NOT work). Records found by more than one query are counted once and reported as duplicates. | |
| dateFrom | No | Published from. Optional. 2020, 2020-06 or 2020-06-30 (publication date). | |
| languages | No | Languages. Optional, e.g. english, spanish. Leave empty for all. | |
| maxResults | No | Maximum articles. You pay per returned article ($0.004 each), so this also caps the cost. Counts for everything not included are still reported. Whole number, 1 to 10,000 results; default 200. | |
| hasAbstract | No | Only records with an abstract. Removes records without an abstract (often letters, editorials and older records). Default: off. | |
| contactEmail | No | Contact email for NCBI / Crossref (optional). Sent to NCBI and Crossref as the contact for this tool. Leave empty to use ours. | |
| studyDesigns | No | Study designs. Keep only these designs (PubMed publication types / MeSH). Leave empty for all. | |
| citationStyle | No | Citation style. Style for the citation column and the CITATIONS file. Formatted by citeproc-js with the official CSL style. Choices: vancouver = Vancouver (NLM); apa = APA 7th edition; ieee = IEEE; harvard = Harvard (Cite Them Right); chicago = Chicago author-date; mla = MLA 9th edition. | vancouver |
| run_max_items | No | Optional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field. | |
| excludePreprints | No | Exclude preprints. Removes records with the Preprint publication type. Default: off. | |
| freeFullTextOnly | No | Free full text only. Keep only records PubMed links to a free full text. Default: off. | |
| includeAbstracts | No | Include abstracts. Include the abstract in the table and import files (recommended for screening). Default: on. | |
| run_timeout_secs | No | Optional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300). | |
| excludeAnimalOnly | No | Exclude animal-only studies. Removes records indexed with Animals but not Humans. Records not yet indexed are kept. Default: off. | |
| retractedArticles | No | Retracted articles. Flag keeps them in the table, marked FIX (charged as returned articles). Exclude removes them before they are returned (not charged) and counts them in PRISMA. Choices: flag = Flag them (FIX); exclude = Exclude them. | flag |
| run_max_charge_usd | No | Optional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, open-world, non-idempotent, so the description focuses on what annotations cannot carry: per-article pricing, which filters are applied before billing, that PRISMA counts still report removed records, the run_max_items vs maxResults billing interaction, the 300s timeout ceiling, and that long text output is trimmed to whole items. The only gap is no statement about how failures or partial results surface beyond the timeout hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then alternatives, then parameter behavior, then runtime/cost — a sensible order for an 18-parameter tool, and nearly every sentence carries information. It is long and repeats billing language already present in the maxResults and retractedArticles schema descriptions, which costs it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter tool with no output schema, the description supplies the return field list, the envelope shape {actor, count, items}, the structuredContent trimming rule, latency expectations, and where Excel/PRISMA/RIS artifacts are stored. Combined with full schema coverage and annotations, an agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 genuinely non-obvious semantics: queries accept field tags and are de-duplicated across queries, retractedArticles=flag bills flagged rows while exclude does not, and sampleSizeConfidence should be treated as unverified at low values. The subtle warning that raising maxResults can bill more than run_max_items returns is the kind of interaction the schema alone cannot convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Run one or more PubMed queries and return a screening-ready evidence table', with the row schema (PMID, journal, study design, sample size, retraction status) enumerated. It explicitly distinguishes itself from literature_search, clinical_trial_leads and reference_checker by scope and data source, so an agent can route between them without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the positive condition ('biomedical/clinical and you need reproducible PubMed queries or design filters') and four explicit when-not cases with the sibling to use instead. Nothing about selection 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.
reference_checkerReference Checker: Fake, AI-Hallucinated & Retracted CitationsARead-only
Verify an existing bibliography against Crossref: flags fake (AI-hallucinated), miscited and retracted references, one row per reference. Unlike citation_formatter, it judges whether a reference is real and accurate; it does not produce formatted styles. Use when you must audit a reference list, DOIs or titles before submission or review. Do not use to discover new papers (use literature_search or pubmed_evidence_table) or to restyle citations (use citation_formatter). Parameters: give bibliography, dois or titles (at least one). Lowering minMatchScore finds more but risks false matches; includeCandidates adds audit detail without extra charge. mode=monitor re-checks the DOIs/ORCID works against the state saved under monitorName and reports only new problems, so reuse the same monitorName on scheduled runs. Each reference checked is billed, so maxReferences/run_max_items cap cost on long lists. Returns per item: summary, status (OK/CHECK/FIX), verdict, matchedDoi, matchScore, mismatches (cited vs actual), integrity.status (retracted, corrected, expression-of-concern), openAccessUrl, warnings.
Behavior: read-only; runs the Apify Actor pandadad0214/reference-checker (https://apify.com/pandadad0214/reference-checker) on your own Apify account. Price: $0.01 per reference checked. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxReferences when you leave it unset, so it also limits what is billed; setting maxReferences higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.
| Name | Required | Description | Default |
|---|---|---|---|
| dois | No | DOIs. DOIs to check (bare 10.xxxx/..., doi: prefix or https://doi.org/ URLs). | |
| mode | No | Mode. 'check' = the normal one-off check. 'monitor' = re-check the DOIs (and/or ORCID works) and compare with the previous run's saved state. Choices: check = Check references (one-off); monitor = Monitor DOIs / ORCID for new retractions (schedule it). | check |
| orcid | No | ORCID iD (monitor mode). Optional. Monitor every DOI on this researcher's public ORCID record (plus Crossref works tagged with it), e.g. 0000-0002-1825-0097. Combined with the DOIs list. | |
| titles | No | Paper titles. Article titles to look up when you have no full reference. | |
| monitorName | No | Monitor name (monitor mode). Optional. Name of the key-value store in your account that keeps state between runs (letters, digits, hyphens). Use a different name for each list you monitor. Default: refcheck-monitor-, or refcheck-monitor. | |
| bibliography | No | Bibliography / reference list. Paste a reference list in any common style (APA, MLA, Chicago, Vancouver, IEEE, Harvard). One reference per line, numbered ([1], 1.), or separated by blank lines. | |
| contactEmail | No | Contact email for Crossref (optional). Optional. Sent to Crossref as the mailto contact so requests use its faster 'polite' pool. Never shared elsewhere. | |
| maxReferences | No | Max references per run. Safety cap on references checked (each is billed). Whole number, 1 to 20,000 references; default 1,000. | |
| minMatchScore | No | Minimum match score (0-100). How close a Crossref record must be (title, authors, year) to count as found. Lower finds more but risks false matches. Whole number, 50 to 100; default 80. | |
| run_max_items | No | Optional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field. | |
| checkOpenAccess | No | Find open-access links. Look up free legal full-text links via OpenAlex. Default: on. | |
| run_timeout_secs | No | Optional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300). | |
| includeCandidates | No | Include candidate matches. Also output the top Crossref candidates and their scores for each reference (useful for auditing). Default: off. | |
| run_max_charge_usd | No | Optional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false and idempotentHint=false, and the description is consistent with all of them ('read-only'). It adds real value beyond them: the Apify actor and account it runs under, $0.01-per-reference billing, the run_max_charge_usd cap, that finding nothing is not charged, timeout behavior (5-15 s typical, raise run_timeout_secs to 300), and that monitor mode persists state in a key-value store. That is substantive operational context, though it is packed into a single dense block rather than organized by concern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and sibling differentiation are front-loaded, followed by usage, then parameters, then runtime/billing behavior, then return shape — a sensible ordering. The prose is dense but nearly every sentence carries non-obvious information (billing mechanics, monitor state, timeout escalation) rather than restating the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, zero-required, billed, open-world tool with no output schema, the description covers what an agent needs: at least one of bibliography/dois/titles is required, cost and cap mechanics, timeout escalation, persisted monitor state, and an explicit per-item return field list (status, verdict, matchedDoi, matchScore, mismatches, integrity.status, openAccessUrl, warnings). Little is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 14 parameters and the baseline of 3 applies. The description does add cross-parameter meaning the schema cannot: lowering minMatchScore trades recall for false matches, includeCandidates is free, run_max_items fills maxReferences when unset, and setting maxReferences higher can bill more than is returned — genuine semantic value, but scattered and not systematic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource ('Verify an existing bibliography against Crossref') plus the failure classes it detects (fake/hallucinated, miscited, retracted) and the output shape ('one row per reference'). It then explicitly contrasts itself with citation_formatter ('judges whether a reference is real and accurate; it does not produce formatted styles'), so an agent can separate it from siblings without reading schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the trigger ('Use when you must audit a reference list, DOIs or titles before submission or review') and both exclusions with named alternatives: discovery goes to literature_search or pubmed_evidence_table, restyling goes to citation_formatter. Monitor-mode usage (reuse the same monitorName on scheduled runs) is also specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
researcher_expert_finderGoogle Scholar Author Alternative: Find Experts & KOLs by TopicARead-only
Rank the academic experts and key opinion leaders on a research topic from OpenAlex, with institution, ORCID, h-index, topic paper counts and their recent topic papers. Unlike literature_search (returns papers) this returns people; unlike company_team_finder (staff listed on a company website) it covers academics by publication record. Use when you need reviewers, KOLs, collaborators or speakers for a topic, optionally by country or institution. Do not use for company contacts (use company_team_finder) or for papers themselves (use literature_search). Parameters: the ranked pool is the 200 authors with the most matching papers, so maxResults above 200 adds nothing. maxAuthorsPerPaper ignores mega-collaboration papers that would inflate everyone on them; raise it only for physics-style fields. yearFrom/yearTo limit which papers count, while activeSince filters people. includeOrcid adds employment and bio at no extra charge. Returns per item: expert score, name, ORCID, current institution and country, h-index, total and topic works/citations, recent topic papers (title, year, DOI, citations), summary.
Behavior: read-only; runs the Apify Actor pandadad0214/researcher-expert-finder (https://apify.com/pandadad0214/researcher-expert-finder) on your own Apify account. Price: $0.0025 per expert found. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxResults when you leave it unset, so it also limits what is billed; setting maxResults higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Research topic. What the experts work on, e.g. perovskite solar cells, antimicrobial resistance, large language models in healthcare. Matched against paper titles and abstracts. Use quotes for exact phrases ("machine learning") and AND / OR / NOT for Boolean searches. | perovskite solar cells |
| sortBy | No | Sort. Expert score (default) blends matching papers, their citations and h-index. Or sort by a single number. Choices: expertScore = Expert score; topicWorks = Matching papers; topicCitations = Citations of top matching papers; citations = Total citations; hIndex = h-index. | expertScore |
| yearTo | No | Papers to year. Optional. Only count matching papers published up to this year. Whole number, 1900 or more. | |
| minWorks | No | Minimum total works. Optional. Total works on the person's OpenAlex profile. Whole number, 0 or more works. | |
| yearFrom | No | Papers from year. Optional. Only count matching papers published in or after this year, e.g. 2020 for people active in the field recently. Whole number, 1900 or more. | |
| countries | No | Countries. Optional 2-letter ISO country codes (US, GB, DE, IN, AU…). Keeps experts whose current institution is in one of these countries, and counts only papers with an author in them. | |
| minHIndex | No | Minimum h-index. Optional. Whole number, 0 or more. | |
| maxResults | No | Maximum experts. You pay per expert returned, so this also caps the cost. Up to 200 (the ranked pool is the 200 authors with the most matching papers). Whole number, 1 to 200 results; default 25. | |
| activeSince | No | Active since (year). Optional. Only keep people who published anything in or after this year (uses OpenAlex yearly counts for the last ~10 years). Whole number, 1900 or more. | |
| institution | No | Institution. Optional. University, hospital, lab or company name (e.g. Stanford University), a ROR ID or an OpenAlex institution ID (I…). Sub-units count too: a university includes its schools and hospitals. The matched institution is shown in the search log. | |
| includeOrcid | No | Add ORCID details. For experts with an ORCID iD, add current employment and role, keywords, websites and a short biography from the public ORCID record. Default: on. | |
| minCitations | No | Minimum total citations. Optional. Whole number, 0 or more citations. | |
| minTopicWorks | No | Minimum matching papers. Each expert must have at least this many papers on your topic. Whole number, 1 or more papers; default 2. | |
| run_max_items | No | Optional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field. | |
| papersPerExpert | No | Recent papers per expert. How many of each expert's newest matching papers to list (title, year, DOI, citations). 0 to skip. Whole number, 0 to 10 papers; default 3. | |
| run_timeout_secs | No | Optional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300). | |
| maxAuthorsPerPaper | No | Ignore papers with more authors than. Large collaboration papers (hundreds of authors) would make everyone on them look like an expert. Papers with more authors than this are not counted. Whole number, 1 or more authors; default 50. | |
| run_max_charge_usd | No | Optional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive, so the description correctly spends its words on what the annotations cannot say: the Apify Actor it runs, $0.0025 per expert pricing, the no-charge-on-empty-runs rule, the per-call spending cap, and realistic 5-15 s latency with timeout remediation. It also clarifies the run_max_items / maxResults billing interaction, which is a genuine behavioral gotcha.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and sibling differentiation before mechanics, and every section (use, don't use, params, behavior, returns) is labeled implicitly by position. The parameter recap paragraph is somewhat long given 100% schema coverage and repeats a few schema facts, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter tool with no output schema, the description supplies the return envelope ({actor, count, items}), the per-item field list (score, ORCID, institution, h-index, recent papers), and the structuredContent trimming behavior. Combined with cost, latency, and timeout guidance, an agent has everything needed to call it and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns above that by adding cross-parameter semantics the schema does not spell out, notably that the ranked pool is capped at 200 authors so maxResults above 200 adds nothing, and that run_max_items fills maxResults and therefore bounds billing while a larger maxResults can bill more than is returned. The yearFrom/yearTo-vs-activeSince and maxAuthorsPerPaper notes largely restate the schema, so this sits at 5 rather than higher.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ("Rank the academic experts and key opinion leaders on a research topic from OpenAlex") and immediately disambiguates against the sibling literature_search ("returns people" vs "returns papers"). An agent can pick this tool without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete use cases (reviewers, KOLs, collaborators, speakers), states the optional country/institution dimension, and adds explicit exclusions with named alternatives ("Do not use for company contacts (use company_team_finder) or for papers themselves (use literature_search)"). Nothing 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
citation_formatter - First observed
literature_search - First observed
pdf_table_extractor - First observed
pubmed_evidence_table - First observed
reference_checker - First observed
researcher_expert_finder
TDQS
Scored across 6 tools
Each tool occupies a distinct slot in the research workflow: discover papers (literature_search), screen biomedical literature (pubmed_evidence_table), format citations (citation_formatter), audit references (reference_checker), find people (researcher_expert_finder), and pull tables from PDFs (pdf_table_extractor). Descriptions explicitly name the nearest neighbour and give a 'Do not use X, use Y' rule for the only genuinely close pairs (check vs. format, OpenAlex vs. PubMed). The residual overlap of literature_search/pubmed returning ready-made citations is a side output, not a competing use case.
All six names follow the same snake_case <subject>_<function> compound pattern (reference_checker, citation_formatter, literature_search, researcher_expert_finder, pdf_table_extractor, pubmed_evidence_table). No mixing of camelCase, verb-first, or vague one-word names; each name states the resource and the operation.
Six tools is well within the sweet spot and each maps to a clearly separate stage of a literature/research pipeline, so nothing feels redundant or padded. No obvious missing capability is being papered over by splitting or merging tools.
The surface covers the discovery → screening → verification → formatting loop plus two adjacent needs (expert finding, PDF table extraction), which is strong lifecycle coverage for a research toolkit. Minor gaps remain: no full-text/abstract-level reading or data-extraction tool for a specific paper, and no library/deduplication management across result sets, but agents can work around these via literature_search output and pdf_table_extractor.
Maintenance
Related MCP Connectors
Hosted research subset: check citations, catch fake/retracted papers, search OpenAlex & PubMed.
PRISMA 2020 systematic reviews as MCP tools - verified citations, IMRAD papers
Scholarly literature search across nine sources
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides MCP tools to check reference lists for retracted or problematic citations, retrieve nuanced editorial statuses with evidence, and monitor institutions for newly flagged papers using open data from OpenAlex, Retraction Watch, and Crossref.324 PyPIMIT
- AlicenseAqualityBmaintenanceEnables AI agents and LLM tools to verify academic citations against real literature, detect hallucinated references, retrieve authoritative metadata and DOIs, generate BibTeX/APA/IEEE citations, and search over 200M+ scientific publications via MCP tools.317 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables academic integrity auditing, manuscript preparation, literature search, journal formatting, and submission packaging through local MCP tools.-

genpark-smart-citationofficial
FlicenseNot gradedqualityBmaintenanceEnables users to audit academic citation contexts, calculate scientific consensus ratios, and generate credibility badge indexes for verified citations through MCP-compliant tools.8-