Skip to main content
Glama
scholar-mcp

scholar-mcp

by pvliesdonk

Generate Citations

generate_citations
Read-only

Generate formatted citations for one or more papers in BibTeX, CSL-JSON, or RIS, resolving identifiers via Semantic Scholar and enriching missing venue data with OpenAlex.

Instructions

Generate formatted citations for one or more papers.

Papers are resolved through Semantic Scholar and can be enriched with OpenAlex metadata. The output is BibTeX, CSL-JSON or RIS.

Enrichment fans out per paper, so a large batch can take a while; such a call answers with a job handle to poll using get_job_result instead of the citations themselves.

Input Schema

NameRequiredDescriptionDefault
enrichNoIf True, attempt OpenAlex enrichment for missing venue data when a DOI is available.
paper_idsYesList of paper identifiers (S2 IDs, DOIs, arXiv IDs, etc.). Maximum 100.
citation_formatNoOutput format: ``bibtex``, ``csl-json`` or ``ris``.bibtex

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.1.1
    • changedInput schema / properties / citation_format / description
      Previous value: -"Output format — bibtex, csl-json, or ris."New value: +"Output format: ``bibtex``, ``csl-json`` or ``ris``."
  2. Changed4 schema fields changedv1.10.0
    • addedOutput schema / additionalProperties
      Added value: +true
    • removedOutput schema / properties
      Removed value: -{
      -  "result": {
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "result"
      -]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  3. First observedv1.9.0

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/openWorld/destructive annotations, the description discloses non-obvious behavior: papers are resolved through Semantic Scholar with optional OpenAlex enrichment, and critically that the response may be a job handle instead of citations for large batches. That polymorphic return is exactly the kind of trait an agent cannot infer from annotations or schema.

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?

Four short sentences, front-loaded with purpose then output formats, then the async caveat. Nothing is padded and no sentence repeats structured data verbatim beyond naming the format set once.

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?

An output schema exists and parameter coverage is complete, so the description needn't enumerate return fields. It covers the remaining critical gap (async job-handle responses) but does not state whether the job handle is returned above a specific size threshold, leaving the agent to discover the trigger empirically.

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 coverage is 100%, so the schema already documents paper_ids, citation_format and the enrich default. The description adds indirect meaning by explaining that enrichment fans out per paper (i.e. the cost driver behind the enrich flag, which triggers OpenAlex calls when a DOI exists), but it never ties that explanation to the parameter name or the 100-item cap.

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 and resource ("Generate formatted citations for one or more papers") and immediately names the output formats (BibTeX, CSL-JSON, RIS), which distinguishes it from sibling lookup tools like get_citations or get_references that return raw citing/cited records rather than formatted bibliography entries.

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 actionable runtime guidance: for large batches the call returns a job handle that must be polled with ``get_job_result`` rather than read directly. What it lacks is an explicit statement of when to prefer this tool over enrich_paper or get_citations for a single paper, so the routing against siblings is only partially covered.

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