Skip to main content
Glama

Citations MCP

npm downloads license ci

Paste a DOI, an ISBN or an arXiv ID into your AI app and get a formatted citation back in APA 7, MLA 9, Chicago author date, Harvard or IEEE, ready to paste into your works cited list. It is a citation generator that runs inside the app you are already writing in, so there is no web page to fill in and no account to create. You can also type the details yourself, or give the DOI or the ISBN, and get the matching in text citation, either in brackets or in the narrative form for a sentence where you name the author. Give several sources in one call and you get them back as an alphabetised works cited list. The wording and punctuation come from tested code, so they are the same every time. Free and open source, no account, no key and nothing stored. It works with Claude, ChatGPT, Cursor, VS Code Copilot and any other app that supports MCP.

Citations MCP compared with BibGuru and Citation Machine

BibGuru and Citation Machine are web pages you fill in and copy from. Citations MCP sits inside the AI app you are already writing in, and it takes a DOI or an ISBN as well as typed details. Here is the side by side.

Citations MCP

BibGuru

Citation Machine

Where you use it

In the AI app you already have open

In a web page in your browser

In a web page in your browser

What you type in

A DOI, an ISBN, or the details of the source

A URL, a title or an author to search for, or the details you type

The details you type, or a citation you paste in

Styles you get back

APA 7, MLA 9, Chicago author date, Harvard, IEEE

APA, MLA, Harvard and many more styles

APA, MLA, Chicago, Harvard and thousands more styles

In text citation

Yes, with an optional page number, in the parenthetical or the narrative form

Yes

Yes

Keeping your sources

Nothing is stored

BibGuru Plus saves sources in projects and folders

The paid tier saves your citations

Cost

Free, MIT license, open source

Free, with a paid plan

Free, with a paid tier

Signing in

Never

Only to save your sources

Only to save your citations

Both other tools cover many more styles than this one does. What you get here is a citation in the chat you are writing in, from a DOI or an ISBN, with nothing to sign up for.

Related MCP server: Scholar Sidekick

Citations MCP compared with the Zotero MCP servers

The other MCP servers for citations are the Zotero ones: zotero-mcp, @oscardvs/zoteus and @xbghc/zotero-mcp. They are the closer competition, because they run inside your app as well. They are also built around a library you keep in Zotero, so they ask more of you first. Here is the side by side.

Citations MCP

zotero-mcp

@oscardvs/zoteus

@xbghc/zotero-mcp

What it works with

A DOI, an ISBN, or the details you type

Your Zotero library

Your Zotero library

Your Zotero library

What you need first

Node.js 20 or newer, nothing else

Zotero on your computer, with the plugin the project ships

Zotero on your computer, or an account at zotero.org

An account at zotero.org, with an API key and a user ID

Signing in

Never

Only if you use the Zotero web library

Only for sync and group libraries

Always, the API key is how it reaches your library

Citation styles

APA 7, MLA 9, Chicago author date, Harvard, IEEE

None of its own, it passes your items to your app

Any CSL style, through the citeproc-js library

Entries as BibTeX, RIS or CSL JSON

Harvard and IEEE

Both, with the in text form for each and a numbered list in IEEE

Not itself, your app does the formatting

Yes, if you pick a Harvard or IEEE CSL style

Not as a finished reference, only as an export for another tool

What you get back

A finished citation, and the in text form with a page number

Items, notes and PDF text from your library

Items, PDF passages with page numbers, and formatted bibliographies

Items and PDF text, plus exports for a bibliography tool

Reading your library

No, it looks up one source at a time

Search, collections, annotations and PDF text

Search by word or by meaning, PDF passages, annotations and bibliography imports

Search, details, full text, and filtering by group or tag

Writing to your library

No, every tool is read only

Notes, tags, metadata and new items

Adds, edits, tags, groups and files

Creates, edits, deletes, tags, groups and attachments

Where your sources live

Nowhere, nothing is stored

In your Zotero library

In your Zotero library

In your Zotero library

Good for

One citation now, with nothing to set up

Working inside a library you already keep in Zotero

The same, with a deeper read of your PDFs and many more styles

The same, with export formats your bibliography tool can read

All three are open source under the MIT license, as this one is. Two of them talk to the Zotero desktop app, so you install Zotero and keep it running while you work. The third goes through the Zotero web API, so you sign in at zotero.org and paste an API key and your user ID.

That is the trade. The Zotero servers do more with a library you already keep. They search it, read your PDFs, give you a passage with its page number and write notes and tags back into it. Citations MCP covers the other half of the job. You give it a DOI, an ISBN or the details of a source, and it gives you the citation and the in text form, in the chat, with nothing to install, no account and nothing stored. If your course needs one of the many styles Zotero can produce, take one of the Zotero servers. If you need the reference for one essay, this is the shorter path.

Each project keeps its own setup guide: cookjohn/zotero-mcp, oscardvs/zoteus and xbghc/zotero-mcp.

Paste ready output

Here is the same paper in all three styles, with the in text citation and the narrative form for each one. The narrative form is for a sentence where you name the author, as in "LeCun et al. (2015, p. 436) argue that ...". Copy the lines you need.

Deep learning
LeCun, Yann, Yoshua Bengio and Geoffrey Hinton
Nature, 2015, volume 521, issue 7553, pages 436 to 444
DOI 10.1038/nature14539

APA 7
LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. *Nature*, *521*(7553), 436-444. https://doi.org/10.1038/nature14539
In text: (LeCun et al., 2015, p. 436)
Narrative: LeCun et al. (2015, p. 436)

MLA 9
LeCun, Yann, et al. "Deep learning." *Nature*, vol. 521, no. 7553, 2015, pp. 436-444, https://doi.org/10.1038/nature14539.
In text: (LeCun et al. 436)
Narrative: LeCun et al. (436)

Chicago author date
LeCun, Yann, et al. 2015. "Deep learning." *Nature* 521 (7553): 436-444. https://doi.org/10.1038/nature14539.
In text: (LeCun et al. 2015, 436)
Narrative: LeCun et al. (2015, 436)

All three styles at once

If you are comparing styles, pass style as all to format_citation, cite_from_doi, cite_from_isbn or cite_from_arxiv. You get one labelled citation for APA 7, MLA 9 and Chicago author date in one reply, instead of three calls. The label above each citation is the style name, so you can pick the one you want. format_bibliography and in_text_citation still take one style at a time.

BibTeX

Pass style as bibtex to format_citation, format_bibliography, cite_from_doi, cite_from_isbn, cite_from_arxiv or cite_from_url to get a .bib entry instead of a formatted citation. Each entry gets a cite key built from the first author's family name and the year, or from the title and the year when there is no author, and format_bibliography returns one entry after another in the order you give the sources, separated by blank lines. Paste the result into a .bib file or import it into a reference manager.

@article{lecun2015,
  author = {LeCun, Yann and Bengio, Yoshua and Hinton, Geoffrey},
  title = {Deep learning},
  journal = {Nature},
  year = {2015},
  volume = {521},
  number = {7553},
  pages = {436--444},
  doi = {10.1038/nature14539}
}

BibTeX is an entry format, so there is no in text form for it. Use APA 7, MLA 9, Chicago author date, Harvard or IEEE for the in text citation.

RIS

Pass style as ris to format_citation, format_bibliography, cite_from_doi, cite_from_isbn, cite_from_arxiv or cite_from_url to get a RIS record instead of a formatted citation. Zotero, EndNote and Mendeley import RIS. format_bibliography returns one record after another in the order you give the sources, separated by blank lines. Like BibTeX, RIS has no in text form.

Install

npx -y student-citations-mcp

Nothing else to install. You need Node.js 20 or newer. The config block for your app is further down this page.

Tools

Tool

What it does

format_citation

Format a journal article, book, website, book chapter, thesis, report, dataset or preprint from details you type, in APA 7, MLA 9, Chicago author date, Harvard, IEEE or BibTeX. For books you can name the editors and the translators too. Pass style as all to get all three styles in one reply, or bibtex for a .bib entry

format_bibliography

Format several sources as one works cited list, alphabetised by author in APA 7, MLA 9, Chicago author date or Harvard, numbered in the order you give them in IEEE, or as a BibTeX block in the order you give them. Each source takes the same fields as format_citation, and dois, isbns and urls lists are looked up and added to the list

cite_from_doi

Look up a DOI on Crossref and format the citation. The Crossref record decides the shape, so a book chapter comes back as a chapter and a dissertation comes back as a thesis. Pass style as all to get all three styles in one reply, or bibtex for a .bib entry

find_doi

Search Crossref by title, and optionally an author's family name, and list the best matches with their DOIs. Pass the one you want to cite_from_doi

cite_from_arxiv

Look up an arXiv ID, or an arxiv.org link, and cite the preprint in APA 7, MLA 9, Chicago author date, Harvard, IEEE or BibTeX. Pass style as all to get all three styles in one reply

cite_from_isbn

Look up an ISBN on Open Library and format the citation in APA 7, MLA 9, Chicago author date, Harvard, IEEE or BibTeX

cite_from_url

Fetch a web page and cite it as a website in APA 7, MLA 9, Chicago author date, Harvard, IEEE or BibTeX. It reads the page title, site name and date, and you can override any of them

in_text_citation

The in text citation that matches a source, with an optional page number, in the parenthetical or the narrative form. It takes the authors and year you type, or a DOI or an ISBN and looks up the authors and year for you

All eight tools are read only.

Prompts

Prompt

What it does

cite_this

Start a citation in APA 7, MLA 9 or Chicago author date from a DOI, an ISBN or details you type. It fills in the wording the tools use, so you can edit the source and send it

A client that supports prompts, such as Claude Desktop or VS Code, shows it in the chat as a command you can run. In Claude Desktop it is /cite_this.

The prompt looks nothing up. It only writes out the request, so you can check it before you send it. Here is the message it puts in the chat when you run it with no arguments:

Cite this source in APA 7.

Use the tool that fits the source: cite_from_doi for a DOI, cite_from_isbn for an ISBN, cite_from_url for a web address, format_citation for details you type and in_text_citation for the in text form.

Example prompts:
- "Cite this journal article in APA 7: Learning to learn by John Kenneth Smith and Alice Jones, 2020, Journal of Study Skills, volume 4, issue 2, pages 11-25."
- "Cite 10.1038/nature14539 in APA."
- "Cite ISBN 978-0-262-03384-8 in APA 7."
- "Give the APA in text citation for Smith and Jones 2020 on page 14."
- "Cite this journal article in Harvard: Learning to learn by John Kenneth Smith and Alice Jones, 2020, Journal of Study Skills, volume 4, issue 2, pages 11-25."
- "Cite 10.1038/nature14539 in IEEE."
- "Cite this web page in Harvard: https://example.edu/study."

It takes two arguments. style picks the style, which is APA 7 unless you say otherwise, and source is the DOI, the ISBN or the details you want to cite. Give it a DOI and the message says so and points at cite_from_doi.

What you can ask

  • "Cite 10.1038/nature14539 in APA."

  • "Cite 10.1038/nature14539 in all three styles."

  • "Cite this web page in APA: https://example.edu/study."

  • "Cite the DOI of this book chapter in APA, with the editors of the book."

  • "Make an MLA citation for ISBN 9780262033848."

  • "Cite arXiv 1706.03762 in APA."

  • "Give me a preprint citation in IEEE for https://arxiv.org/abs/1706.03762."

  • "Give me BibTeX for this DOI: 10.1038/nature14539."

  • "Format this as Chicago: Smith and Jones, 2020, Learning to Learn, Journal of Study Skills, volume 4, issue 2, pages 11 to 25."

  • "What's the in text citation for a quote on page 14 of that paper?"

  • "Give me the APA in text citation for DOI 10.1038/nature14539 on page 436."

  • "What's the MLA in text citation for ISBN 9780262033848?"

  • "Give me the APA citation for that in narrative form, so I can name the author in my sentence."

  • "Format this book in MLA with the editors taking the author's place: A dictionary of study words by Jamie Patel and Robin Cole, 2019, North Gate Press."

  • "Cite this translated book in APA: My brilliant friend by Elena Ferrante, translated by Ann Goldstein, 2012, Europa Editions."

  • "Cite this thesis in APA: Learning to learn by Jane Doe, 2021, North Gate University, Ph.D. dissertation."

  • "Put these sources into one APA works cited list, alphabetised by author."

Example

Ask for "Cite 10.1038/nature14539 in APA." and the server gives back:

LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. *Nature*, *521*(7553), 436-444. https://doi.org/10.1038/nature14539

(From Crossref. Check it against your style guide.)

Italics come back as asterisks so your app can style them.

If this saved you a formatting headache, please give the repo a star. It sits at 0 stars, and one star helps the next student find it.

Editors and translators

Edited and translated books are common in coursework, and each style puts those names in its own spot. format_citation takes editors and translators in the same shape as authors. When a book has editors and no authors, the editors take the author's place. When the book has an author as well, the extra names go after the title, next to the edition. Here is one edited book and one translated book in all three styles.

A dictionary of study words
Jamie Patel and Robin Cole, editors, 2019, North Gate Press

APA 7
Patel, J., & Cole, R., Eds. (2019). *A dictionary of study words*. North Gate Press.

MLA 9
Patel, Jamie, and Robin Cole, editors. *A dictionary of study words*. North Gate Press, 2019.

Chicago author date
Patel, Jamie, and Robin Cole, eds. 2019. *A dictionary of study words*. North Gate Press.

My brilliant friend
Elena Ferrante, 2012, translated by Ann Goldstein, Europa Editions

APA 7
Ferrante, E. (2012). *My brilliant friend* (Goldstein, A., Trans.). Europa Editions.

MLA 9
Ferrante, Elena. *My brilliant friend*. Translated by Ann Goldstein, Europa Editions, 2012.

Chicago author date
Ferrante, Elena. 2012. *My brilliant friend*. Translated by Ann Goldstein. Europa Editions.

Source types

With a DOI the server reads the Crossref record and follows the type it finds. A book does not come back as a journal article with a volume and an issue it does not have.

Crossref type

What you get back

journal-article

A journal article, with its volume, issue and pages

book, monograph, edited-book, reference-book, proceedings

A book, and the editors take the author's place when the book has no author

book-chapter, proceedings-article

A chapter in its book, with the pages it covers

dissertation

A thesis, with the degree and the university

report, standard

A report, with its report number

dataset

A data set

posted-content

A preprint, with the repository it was posted in

format_citation takes the same kinds of source, so you can type the details of a chapter, a thesis, a report, a data set or a preprint when there is no DOI to look up. A journal article and a chapter also need container, the journal name or the book title they appear in. Without it the server returns an error that names the container, instead of a citation with a missing part.

Works cited list

format_bibliography takes several sources in one call and returns them as one list, alphabetised by the first author's family name. A source with no author is alphabetised by its title, and a leading "A", "An" or "The" is skipped. Each source takes the same fields as format_citation, so a journal article, a book and a website can sit in the same list. You can also pass dois and isbns lists, which are looked up on Crossref and Open Library and added to the list, up to 50 in one call. If one lookup fails, the reply is an error that names it. Pass style as bibtex to get the same sources as a block of .bib entries in the order you give them. Here are those three sources in APA 7.

Cormen, T. H. (2009). *Introduction to algorithms* (3rd ed.). MIT Press.

Smith, J. K., & Jones, A. (2020). Learning to learn. *Journal of Study Skills*, *4*(2), 11-25.

*The water cycle*. Example Uni. https://example.edu/water

Add it to your app

Claude Desktop. Put it in claude_desktop_config.json.

{
  "mcpServers": {
    "citations": {
      "command": "npx",
      "args": ["-y", "student-citations-mcp"]
    }
  }
}

Cursor. Put it in .cursor/mcp.json.

{
  "mcpServers": {
    "citations": {
      "command": "npx",
      "args": ["-y", "student-citations-mcp"]
    }
  }
}

VS Code. Put it in .vscode/mcp.json. VS Code uses a servers key, not mcpServers.

{
  "servers": {
    "citations": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "student-citations-mcp"]
    }
  }
}

Restart your AI app, then try one of the questions above. For Claude Code, run claude mcp add citations -- npx -y student-citations-mcp.

Frequently asked questions

Does it work with Cursor?

Yes. It runs over MCP, so it works in Cursor, Claude Desktop, VS Code with Copilot, ChatGPT and any other app that supports MCP. The config block is the same for every app, only the file it goes in changes. Copy that block into your app's MCP config, restart the app and ask for a citation.

Is it free?

Yes. It is MIT licensed and free to use. There is no account, no key, no paid plan and no trial that runs out. The DOI, ISBN and arXiv lookups go to Crossref, Open Library and arXiv, and the server sends no key, so there is nothing else to sign up for.

Do I need an account or an API key?

No. There is no sign up step and no key to paste into a config file. The install command is the whole setup.

How is this different from the Zotero MCP servers?

They are the other MCP servers for citations, and they are the closer competition, because they run inside your app as well. They are built around a Zotero library, so they need Zotero installed or a Zotero account, and they can search that library, read your PDFs and write back to it. This server works on one source at a time. You give it a DOI, an ISBN or the details and it gives you the citation, with nothing to install, no account and nothing stored. The comparison table above has the details.

What happens to my data?

Nothing is stored. The server keeps no list of your sources, writes no files and sends no usage data anywhere. It takes the details you type in the chat and, for a DOI, an ISBN or a web page URL, sends that identifier or address to Crossref, Open Library or the page itself to fetch the record or the page. The request also carries a user agent line with the server name and version, plus your email address if you set CROSSREF_EMAIL.

How do I install it?

Run npx -y student-citations-mcp. You need Node.js 20 or newer, and that is the only thing to install. npx fetches the package into the npm cache and runs it, so nothing is added to your project. Then add the config block to your app and restart it.

Does it work without internet?

Partly. format_citation works offline, because it formats the details you type. in_text_citation works offline too when you type the authors and the year. It also takes a DOI or an ISBN, and those lookups need a connection, as do cite_from_doi, cite_from_isbn, cite_from_arxiv and cite_from_url, which fetch the record or the page from Crossref, Open Library or the web address you give.

Which styles can I ask for?

APA 7, MLA 9, Chicago author date, Harvard and IEEE. Ask for "APA", "MLA 9", "Chicago" or "Harvard" in the chat and the server works out the style name. In IEEE, format_bibliography numbers the list [1], [2] and so on in the order you give the sources, and in_text_citation gives [1], so change the number to the one the source has in your list. format_citation, cite_from_doi, cite_from_isbn, cite_from_arxiv and cite_from_url also take all, which returns APA 7, MLA 9 and Chicago author date in one reply. Pass bibtex to format_citation, format_bibliography, cite_from_doi, cite_from_isbn, cite_from_arxiv or cite_from_url to get a .bib entry for a reference manager instead of a formatted citation. BibTeX is an entry format, so in_text_citation has no BibTeX form. A request for a style it does not have comes back with an error that names the styles it knows.

What can I cite?

A journal article, a book, a book chapter, a thesis, a report, a dataset, a preprint or a website. With a DOI the server reads the Crossref record and follows the type it finds, so a journal article comes back as an article, an edited book comes back as a book with its editors, a book chapter or a conference paper comes back as a chapter, a dissertation comes back as a thesis, and a preprint comes back with the repository it was posted in. With an ISBN it reads the Open Library record for the book. With an arXiv ID it reads the arXiv record and cites the paper as a preprint. If the lookup fails, or the source has no DOI, format_citation takes the details you type and formats them.

Can I cite a book with editors or translators?

Yes. format_citation takes editors and translators in the same shape as authors, and each style puts those names where it wants them. The Editors and translators section above shows a worked example for each style.

Does it check the citation against my style guide?

No. It formats from fixed rules in the code, and every style has cases it does not cover, such as editors and translators inside a journal article, chapter numbers and multi volume sets. Check the result against your course's style guide or your instructor's rules.

Will it touch my files or my bibliography?

No. The tools only return text in the chat. Nothing is written to your project and nothing is added to your reference list, so copy a citation into your own bibliography if you want to keep it.

Can I use it to build a works cited list?

Yes. format_bibliography takes several sources and returns them alphabetised as one list, in APA 7, MLA 9 or Chicago author date, ready to paste into your document. Each source takes the same fields as format_citation. The server keeps no list of your sources, so your works cited list stays where you put it.

How do I remove it?

Take the block out of your app's MCP config and the server stops running. There is nothing else to uninstall, since npx keeps its copy in the npm cache rather than in your project.

Can I paste a DOI link or an ISBN with dashes?

Yes. cite_from_doi and in_text_citation take a plain DOI like 10.1038/nature14539 or a doi.org link, and cite_from_isbn and in_text_citation take a 10 or 13 digit ISBN with or without dashes.

Is the source code open?

Yes. The MIT license and the full source are on GitHub, and the formatting rules live in src/format.ts if you want to read them.

Good to know

  • Always check the result against your course's style guide or your instructor's rules. Styles have many special cases this tool does not cover, such as editors and translators inside a journal article, chapter numbers and multi volume sets.

  • Titles are used as the source gives them. APA wants sentence case for article titles, so fix capitals if your style needs it.

  • Optional environment variables, CROSSREF_EMAIL puts your address in lookups so Crossref can reach you about heavy use, and CROSSREF_BASE_URL and OPENLIBRARY_BASE_URL point to other servers for testing.

Development

npm install
npm run build
npm test

Tests run against fake Crossref and Open Library servers, so they need no network. The test runner needs Node.js 22.12 or newer, and the CI workflow uses Node 22.

The CI workflow installs the dependencies, builds the server and runs the tests on every push to main and on every pull request. One of those tests checks that the version is the same in package.json, server.json, llms.txt and glama.json, so the npm release and the registry entry stay in step. Another one checks that the paste ready example above is exactly what cite_from_doi returns for that DOI, so the page and the code stay in step. One more checks that the npm keywords and the descriptions keep the words students type when they look for a citation tool. A test also checks that the cite_this prompt is registered and that the message it returns carries the same example wording as the citation tool descriptions.

More free student MCP servers

All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.

Server

What it does

Brightspace MCP

D2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files.

Canvas MCP

Canvas LMS for AI, read only. Due dates, missing work, grades and announcements.

Moodle MCP

Moodle for AI, read only. Due dates, overdue work, grades and announcements.

Google Classroom MCP

Google Classroom for AI, read only. Todos, due dates, missing work and grades.

GPA Calculator MCP

GPA, grade conversion and the grade you need on the final, for AI. Works offline, no account.

Study Planner MCP

Exam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline.

Paper Finder MCP

Search scholarly papers, find open access copies and related work through OpenAlex. No key needed.

BibTeX Reference Manager MCP

Clean, convert, dedupe and lint BibTeX, RIS and CSL JSON reference lists, and make cite keys. Works offline.

Open Textbook Finder MCP

Find free legal copies of textbooks on OpenStax, DOAB and Open Library, look up editions by ISBN and suggest cheaper older ones.

STEM Calculator MCP

Chemistry and physics homework math: molar mass, balancing equations, grams to moles, unit conversion and significant figures. Works offline.

Essay Stats MCP

Offline writing metrics for essays. Word and page counts, readability scores, passive voice, repeated openers, filler words, long sentences and word limit checks, so students can check their work against assignment requirements. No account, no network.

Syllabus to Calendar MCP

Syllabus to calendar MCP server. Extract dates from syllabus text, build an ics calendar, expand recurring classes and merge calendars. Works offline, no account.

Job Application Tracker MCP

Job application tracker MCP server. Track internships, jobs, interviews and deadlines offline, see what is coming up, and export your list as CSV or Markdown. No account and no API keys.

License

MIT

Available Tools

8 tools
cite_from_arxivCite from an arXiv IDA
Read-only

Look up an arXiv ID on arXiv and format the preprint citation in APA 7, MLA 9, Chicago author date, Harvard, IEEE or BibTeX. Inputs: arxiv_id (an ID like 2001.00001 or math/0603452, with an optional version such as v2, or an arxiv.org abs or pdf link) and style (apa7, mla9, chicago-ad, harvard, ieee, bibtex or all). Pass all to get all three styles in one reply, each one with its style name on the line above it. Pass bibtex to get one .bib entry for a reference manager. Example prompt: "Cite arXiv 1706.03762 in APA."

NameRequiredDescriptionDefault
styleNoCitation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one.apa7
arxiv_idYesAn arXiv ID like 2001.00001 or math/0603452, with an optional version such as v2, or an arxiv.org abs or pdf link.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description's 'on arXiv' confirms an external lookup. It adds useful output-shape detail (style name on the line above each citation, one .bib entry) but says nothing about behavior on invalid IDs, unversioned papers, or network failures.

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 purpose is front-loaded in the first clause, followed by input enumeration and a concrete example. It runs long for a two-parameter tool and repeats the arXiv ID format already in the schema, but no sentence is filler.

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 read-only, two-parameter lookup with no output schema, the description supplies enough: supported styles, the 'all' response layout, and the bibtex variant. Gaps remain on the ris style (only in the schema) and on error behavior for malformed or nonexistent IDs.

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 baseline is 3. The description does add meaning beyond the schema by explaining the 'all' output layout ('each one with its style name on the line above it') and the bibtex use case, but it also lists fewer styles than the schema (it omits 'ris'), creating a partial mismatch.

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: 'Look up an arXiv ID on arXiv and format the preprint citation' plus the exact list of supported styles. The arXiv-ID resource inherently separates it from siblings like cite_from_doi or cite_from_isbn, though no sibling is ever named.

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?

An example prompt ("Cite arXiv 1706.03762 in APA.") and the note that 'bibtex' should be passed for a reference manager give implied usage guidance. However, it never states when to prefer this over cite_from_doi, cite_from_url or format_citation, so an agent must infer routing from the resource type alone.

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

cite_from_doiCite from a DOIA
Read-only

Look up a DOI on Crossref and format the citation. The Crossref record decides the shape: a journal article, a book or an edited book, a book chapter or a conference paper, a thesis, a report, a dataset or a preprint. Inputs: doi (a DOI like 10.1038/nature14539 or a doi.org link) and style (apa7, mla9, chicago-ad, harvard, ieee, bibtex or all). Pass all to get all three styles in one reply, each one with its style name on the line above it. Pass bibtex to get one .bib entry for a reference manager. Example prompt: "Cite 10.1038/nature14539 in APA." For BibTeX, ask "Give me BibTeX for this DOI: 10.1038/nature14539."

NameRequiredDescriptionDefault
doiYesA DOI like 10.1038/nature14539, or a doi.org link.
styleNoCitation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one.apa7

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so this is a known-safe external lookup. The description adds real value on top: the result shape is determined by the Crossref record type, and multi-style output is laid out with the style name on the line above each entry. Auth, rate limits, and failure behavior on unknown DOIs are unaddressed.

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?

Purpose and Crossref-dependent output shape come first, then parameters, then modes, then examples — a sensible front-loaded order. The two example prompts at the end are marginally redundant with the preceding sentences but demonstrate realistic invocation phrasing.

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?

With no output schema, the description carries the burden of describing returns and does so for both single-style and 'all' modes, plus the BibTeX special case. The 'ris' omission and lack of error behavior for unresolvable DOIs are the remaining gaps.

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 both parameters, making 3 the baseline. The description adds example prompts and the 'all' vs 'bibtex' distinction, but its style list omits 'ris', which the schema documents — a minor inconsistency that prevents credit above baseline.

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 chain (look up a DOI on Crossref and format the citation) and enumerates the record shapes it can produce. The DOI-specific scope implicitly separates it from cite_from_url, cite_from_arxiv, and cite_from_isbn siblings.

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 (DOI in hand, optional style selection) and explicit instructions for special modes: pass 'all' for three styles, pass 'bibtex' for a .bib entry. It never names an alternative sibling or states when-not to use it, which keeps it short of a 5.

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

cite_from_isbnCite from an ISBNA
Read-only

Look up an ISBN on Open Library and format the book citation in APA 7, MLA 9, Chicago author date, Harvard, IEEE or BibTeX. Inputs: isbn (a 10 or 13 digit ISBN, dashes are fine) and style (apa7, mla9, chicago-ad, harvard, ieee, bibtex or all). Pass all to get all three styles in one reply, each one with its style name on the line above it. Pass bibtex to get one .bib entry for a reference manager. Example prompt: "Cite ISBN 978-0-262-03384-8 in MLA 9."

NameRequiredDescriptionDefault
isbnYesA 10 or 13 digit ISBN. Dashes are fine.
styleNoCitation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one.apa7

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description usefully names Open Library as the external source and describes the reply shape (style name on the line above each citation). It adds no error behavior for an invalid or unknown ISBN, no rate-limit or latency note for the external lookup, and its "all three styles" claim is internally inconsistent with the six styles it lists.

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 then inputs then output conventions; every sentence is functional and the example prompt is a cheap way to show a real invocation. Minor deduction because "all three styles" is a misleading compression of the six style choices enumerated one clause earlier.

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?

With no output schema, the description supplies the missing return-format detail (each citation labeled with its style name, bibtex yielding a single .bib entry), which is exactly what an agent needs. It stops short of covering failure modes for a bad ISBN or divergence between the style list here and the schema's ris option.

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 both params, including the ris alias. The description restates the dash tolerance and style values almost verbatim and even omits the ris option the schema offers, so it adds little meaning beyond structured fields.

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 ("Look up an ISBN on Open Library") plus the resource and the transform applied (format book citation in APA 7, MLA 9, Chicago author date, Harvard, IEEE or BibTeX). The ISBN input alone distinguishes it from cite_from_doi, cite_from_url and cite_from_arxiv 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.

Usage Guidelines3/5

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

Gives in-tool guidance for parameter choices ("Pass all to get all three styles", "Pass bibtex to get one .bib entry for a reference manager") and an example prompt. It never says when to pick this over the sibling citers (DOI/URL/arXiv) or what happens if the ISBN is unknown, so routing across the family 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.

cite_from_urlCite from a web pageA
Read-only

Fetch a web page and format it as a website citation in APA 7, MLA 9, Chicago author date, Harvard, IEEE or BibTeX. It reads the page title, the site name and the date from the page. Inputs: url (a full web address), style (apa7, mla9, chicago-ad, harvard, ieee, bibtex or all), and optional title, site_name and date to replace what the page gives. Pass all to get all three styles in one reply, each one with its style name on the line above it. Pass bibtex to get one .bib entry for a reference manager. Example prompt: "Cite this page in APA: https://example.edu/study."

NameRequiredDescriptionDefault
urlYesA full web address, like https://example.edu/study.
dateNoUse this date instead of the one on the page, like 2026-10-14 or October 14, 2026.
styleNoCitation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one.apa7
titleNoUse this title instead of the one on the page.
site_nameNoUse this site name instead of the one on the page.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover read-only and open-world behavior, and the description still adds useful context: it reads title, site name and date from the page, allows overriding them, and explains that 'all' returns three labeled citations in one reply. It omits failure behavior (unreachable page, missing metadata), which is the main remaining gap.

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

Conciseness3/5

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

The first sentence is front-loaded and strong, but the 'Inputs:' enumeration largely duplicates the input schema field-by-field, and the example prompt repeats the same information a third time. Roughly a third of the text does not earn its place.

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?

With no output schema, the description usefully sketches the return shape for the 'all' mode (labeled citations, one per style) and for bibtex. For a single-fetch formatting tool with fully documented parameters, only network-failure behavior 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 coverage is 100%, so the baseline is 3. The description restates the parameters rather than extending them, and its style list ('apa7, mla9, chicago-ad, harvard, ieee, bibtex or all') actually drops 'ris', which the schema does include – a small inconsistency that adds no meaning beyond 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?

The description opens with a specific verb and resource: 'Fetch a web page and format it as a website citation' in seven named styles. The web-page framing implicitly separates it from cite_from_doi, cite_from_isbn and cite_from_arxiv, though no sibling is named explicitly, which keeps it just short of a 5.

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 ('Cite this page in APA: https://...') and the description explains the bibtex path for reference managers, but it never states when to prefer cite_from_doi or find_doi over this tool, nor any exclusions such as paywalled or non-HTML pages. The agent must infer routing from the input type.

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

find_doiFind a DOI from a titleA
Read-only

Search Crossref for the DOI of a paper or a book when you have its title but no DOI. Returns the best matches, 5 by default, each with its title, authors, year, container and DOI, so you can pick the right one and pass the DOI to cite_from_doi. Inputs: title (the title, or as much of it as you know), optional author (a family name to narrow the search) and optional limit (1 to 10 matches). Example prompt: "Find the DOI for the paper Deep learning by LeCun."

NameRequiredDescriptionDefault
limitNoHow many matches to return, 1 to 10.
titleYesThe title of the paper or book, or as much of it as you know.
authorNoAn author's family name, to narrow the search.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, but the description adds real value: the data source (Crossref), the default result count of 5, and the returned fields (title, authors, year, container, DOI). It doesn't mention fuzzy-match behavior for partial titles beyond implying it, which keeps it just 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.

Conciseness4/5

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

Front-loaded with purpose then return shape then inputs, with zero filler. The example-prompt sentence is a nice addition but slightly redundant given the rest of the text.

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?

With no output schema, the description correctly compensates by enumerating the returned fields and default result count. Combined with the source and next-step tool, an agent has everything needed to call it and use the result.

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 all three parameters are already documented with matching wording ("family name", "as much of it as you know", limit 1-10). The description largely restates the schema rather than adding new syntax or edge-case guidance, 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?

States a specific verb and resource ("Search Crossref for the DOI") and names the input precondition (title but no DOI). It also distinguishes itself from sibling cite_from_doi by positioning this tool as the lookup step that feeds that one.

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 a clear trigger condition ("when you have its title but no DOI") and routes downstream to cite_from_doi. It does not explicitly contrast with cite_from_url or cite_from_isbn, so the agent must infer that those handle non-title identifiers.

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

format_bibliographyFormat a works cited listA
Read-only

Format several sources at once as one works cited list, alphabetised by the first author's family name in APA 7, MLA 9, Chicago author date or Harvard, numbered in citation order in IEEE, or as one BibTeX block or one RIS block in the order you give the sources. A source with no author is alphabetised by its title. Inputs: sources (an array of objects, each with the same fields as format_citation: type, title and optional authors, year, container, publisher, city, edition, editors, translators, volume, issue, pages, doi, url, date_text, accessed, institution, degree, repository and report_number), dois (a list of DOIs to look up on Crossref), isbns (a list of ISBNs to look up on Open Library), urls (a list of web addresses to fetch and cite as websites) and style (apa7, mla9, chicago-ad, harvard, ieee, bibtex or ris). Give sources, dois, isbns, urls or any mix, up to 50 lookups in one call. If one lookup fails the reply is an error that names it. Example prompt: "Put these three sources into an APA works cited list: a journal article by Smith and Jones from 2020, a book by Cormen from 2009 and a website from example.edu."

NameRequiredDescriptionDefault
doisNoDOIs to look up on Crossref and add to the list, each one a DOI like 10.1038/nature14539 or a doi.org link.
urlsNoWeb addresses to fetch and add to the list as websites. Each one a full URL like https://example.edu/study.
isbnsNoISBNs to look up on Open Library and add to the list as books. Dashes are fine.
styleNoCitation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley).apa7
sourcesNoThe sources for the list. Each one takes the same fields as format_citation, so a journal article, a book, a website, a chapter, a thesis, a report, a dataset and a preprint can share one list. Optional when you give dois, isbns or urls.

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description still adds real behavior: alphabetisation by first author's family name with a title fallback for anonymous works, IEEE numbered in citation order, BibTeX and RIS emitted in the order given, a 50-lookup ceiling, and all-or-nothing error handling that names the failing lookup. Those are exactly the details an agent cannot get from the 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.

Conciseness3/5

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

The purpose and ordering rules are front-loaded well, and the example prompt is a useful anchor. However, the long mid-sentence inventory of source fields (type, title, authors, year, container, publisher, city, edition, ...) duplicates the schema verbatim at 100% coverage and bloats an already dense single sentence.

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 tool this complex the description covers what matters: how the list is ordered per style, how inputs combine, the 50-lookup limit, and error behaviour. There is no output schema, and it only implicitly signals the return shape (a list, or one BibTeX/RIS block) rather than stating it, which is the one gap worth closing.

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 every parameter including the style enum values and the Crossref/Open Library lookups. The description largely re-enumerates the source object fields rather than adding meaning, though it does clarify that all four input arrays can be combined and that sources is optional when lookups are supplied. 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?

The description opens with a specific verb and resource — formatting several sources into one works cited list — and immediately pins down the scope that separates it from format_citation: many sources, one list, with per-style collation rules. It also distinguishes itself from the lookup siblings (cite_from_doi, cite_from_isbn, cite_from_url) by describing those as inputs it can absorb in bulk.

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?

Usage is clear: give sources, dois, isbns, urls or any mix, up to 50 lookups, and a failing lookup aborts with an error naming it. The example prompt shows a realistic invocation pattern. What is missing is explicit routing guidance — it never says to use format_citation for a single source or cite_from_doi when only one DOI is involved, leaving the agent to infer that from the 'same fields as format_citation' reference.

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

format_citationFormat a citationA
Read-only

Format a journal article, book, website, book chapter, thesis, report, dataset or preprint as a citation in APA 7, MLA 9, Chicago author date, Harvard, IEEE, BibTeX or RIS, from details you provide. Inputs: type (journal, book, website, chapter, thesis, report, dataset or preprint), title, and optional authors (family plus given names), year, container, publisher, city, edition, editors, translators, volume, issue, pages, doi, url, date_text, accessed, institution, degree, repository, report_number and style (apa7, mla9, chicago-ad, harvard, ieee, bibtex, ris or all). Pass all to get all three styles in one reply, each one with its style name on the line above it. Pass bibtex to get one .bib entry for a reference manager. Pass ris to get one RIS record that Zotero, EndNote and Mendeley import. Editors and translators are for books and take the same shape as authors: a book with editors and no authors puts the editors where the author goes, and a book with authors too carries the other names after the title, in the spot each style uses. Example prompt: "Cite this journal article in APA 7: Learning to learn by John Kenneth Smith and Alice Jones, 2020, Journal of Study Skills, volume 4, issue 2, pages 11-25."

NameRequiredDescriptionDefault
doiNo
urlNo
cityNoPublisher city, used by Chicago for books.
typeYes
yearNo
issueNo
pagesNoFor example "11-25".
styleNoCitation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one.apa7
titleYes
degreeNoThe degree of a thesis, like "Ph.D.".
volumeNo
authorsNo
editionNoFor example "2nd".
editorsNoEditors of a book or a chapter, same shape as authors. When a book has editors and no authors, they take the author's place in the citation.
accessedNoMLA access date, like "14 Oct. 2026".
containerNoJournal name, the book title for a chapter, or website name. Required for a journal article and for a chapter, since without it the citation would be missing the work it appears in.
date_textNoWebsite date as you want it shown, like "2026, October 14" for APA or "14 Oct. 2026" for MLA.
publisherNo
repositoryNoWhere a preprint was posted, like arXiv.
institutionNoThe university or organisation behind a thesis, a report or a dataset.
translatorsNoTranslators of a book, same shape as authors.
report_numberNoThe number of a report or a standard.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=true, so the description's job is to add output behavior — and it does: multi-style replies are labelled with the style name on the line above, BibTeX yields a single .bib entry, RIS yields an importable record. It does not discuss error behavior for missing fields (e.g. a journal with no container), which limits it to a 4.

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

Conciseness3/5

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

The content is front-loaded and ends with a useful example, but the source types and styles are enumerated twice (first sentence, then again in the 'Inputs:' list), and the style list appears a third time in the 'Pass all/bibtex/ris' sentences. That repetition inflates a description that could be materially shorter without losing anything.

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 22-parameter, no-output-schema tool, the description covers the input contract, the meaning of the style selector, and the shape of the response for each output mode, which is what an agent most needs. The residual gaps are conditional-requirement details (which fields each source type demands) that are spread partially in the schema rather than summarized here.

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?

With 59% schema description coverage and 22 parameters, the description carries real weight: it explains editor/translator placement rules (editors substitute for authors; co-existing names follow the title per style) and clarifies the container concept beyond the schema. It still only lists several parameters (doi, url, year, volume, issue, pages) by name without explaining their per-style behavior.

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 first sentence names a specific verb (Format) and resource (citation) and enumerates supported source types and styles, so the agent knows exactly what comes out. It is clearly distinguishable from sibling tools like cite_from_doi or cite_from_url, which take an identifier rather than supplied details.

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?

The description gives concrete invocation guidance: pass "all" for the three main styles, "bibtex" for a .bib entry, "ris" for a Zotero/EndNote/Mendeley record, and it supplies a worked example prompt. It never explicitly says when to prefer this over cite_from_doi/cite_from_isbn, so the alternative-routing guidance is implicit rather than stated.

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

in_text_citationIn text citationA
Read-only

The in text citation that goes with a source, with an optional page number and an optional narrative form for a sentence where the author is named. Give authors and year, or a doi or an isbn and the record fills them in. Inputs: authors (family name plus optional given names), year, doi, isbn, page, form (parenthetical or narrative) and style (apa7, mla9, chicago-ad, harvard or ieee). A doi or an isbn cannot be combined with the other one. Example prompt: "Give the APA in text citation for Smith and Jones 2020 on page 14."

NameRequiredDescriptionDefault
doiNoA DOI like 10.1038/nature14539, or a doi.org link. The lookup fills in the authors and the year.
formNoparenthetical is the usual brackets, like (Smith & Jones, 2020, p. 14). narrative puts the author in your sentence and keeps the rest in brackets, like Smith and Jones (2020, p. 14).parenthetical
isbnNoA 10 or 13 digit ISBN. Dashes are fine. The lookup fills in the authors and the year.
pageNo
yearNo
styleNoCitation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee.apa7
authorsNo

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already establish readOnlyHint and openWorldHint, and the description adds meaningful behavioral detail: DOI or ISBN lookup fills in authors and year, and DOI and ISBN cannot be combined. It does not cover lookup failure behavior, but the added disclosure is substantive and consistent with the annotations.

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 description is front-loaded with the tool's purpose and then packs the key input rules, form/style options, and an example prompt into a short space. The example earns its place, though some input listing slightly repeats schema information.

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 7-parameter citation tool with no output schema, the description is complete enough: it explains the output type, input modes, supported styles/forms, and the DOI/ISBN constraint. It could say more about invalid identifiers or missing author/year cases, but the core call behavior is covered.

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?

With only 57% schema description coverage, the description meaningfully compensates by explaining authors, year, DOI, ISBN, page, form, and style inputs. It adds the important mutual-exclusion rule for DOI and ISBN and clarifies narrative vs parenthetical form, though page and year formatting details remain sparse.

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 clearly identifies the resource and output: an in-text citation generated from authors/year or DOI/ISBN, with optional page and narrative form. It is specific enough to distinguish this from bibliography generation, but it does not explicitly differentiate itself from sibling tools such as format_citation or cite_from_doi.

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 gives input guidance and an example prompt, which implies when the tool is useful. However, it does not state when to use this tool instead of siblings like format_citation, cite_from_doi, cite_from_isbn, or format_bibliography, and it provides no explicit exclusions.

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. 6 tool updatesv0.1.8
    • Addedcite_from_arxiv
    • Changedcite_from_doi1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
    • Changedcite_from_isbn1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
    • Changedcite_from_url1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
    • Changedformat_bibliography1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley)."
    • Changedformat_citation1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee, bibtex and ris (a .ris record for Zotero, EndNote and Mendeley), or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
  2. 5 tool updatesv0.1.7
    • Changedcite_from_doi1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
    • Changedcite_from_isbn1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex."
    • Changedcite_from_url1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
    • Changedformat_bibliography1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex."
    • Changedformat_citation1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard, ieee and bibtex, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
  3. 7 tool updatesv0.1.6
    • Changedcite_from_doi1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date)."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
    • Changedcite_from_isbn1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date)."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee."
    • Addedcite_from_url
    • Addedfind_doi
    • Changedformat_bibliography8 fields changed
      • addedInput schema / properties / dois
        Added value: +{
        +  "default": [],
        +  "description": "DOIs to look up on Crossref and add to the list, each one a DOI like 10.1038/nature14539 or a doi.org link.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / isbns
        Added value: +{
        +  "default": [],
        +  "description": "ISBNs to look up on Open Library and add to the list as books. Dashes are fine.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / sources / default
        Added value: +[]
      • changedInput schema / properties / sources / description
        Previous value: -"The sources for the list. Each one takes the same fields as format_citation, so a journal article, a book, a website, a chapter, a thesis, a report, a dataset and a preprint can share one list."New value: +"The sources for the list. Each one takes the same fields as format_citation, so a journal article, a book, a website, a chapter, a thesis, a report, a dataset and a preprint can share one list. Optional when you give dois, isbns or urls."
      • changedInput schema / properties / sources / items / properties / container / description
        Previous value: -"Journal name, the book title for a chapter, or website name."New value: +"Journal name, the book title for a chapter, or website name. Required for a journal article and for a chapter, since without it the citation would be missing the work it appears in."
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date)."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee."
      • addedInput schema / properties / urls
        Added value: +{
        +  "default": [],
        +  "description": "Web addresses to fetch and add to the list as websites. Each one a full URL like https://example.edu/study.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "sources"
        -]
    • Changedformat_citation2 fields changed
      • changedInput schema / properties / container / description
        Previous value: -"Journal name, the book title for a chapter, or website name."New value: +"Journal name, the book title for a chapter, or website name. Required for a journal article and for a chapter, since without it the citation would be missing the work it appears in."
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date)."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee, or all to get APA 7, MLA 9 and Chicago author date in one reply with a label above each one."
    • Changedin_text_citation1 field changed
      • changedInput schema / properties / style / description
        Previous value: -"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date)."New value: +"Citation style. Aliases such as APA, MLA 9 and Chicago are accepted. Valid styles: apa7, mla9, chicago-ad (Chicago author date), harvard and ieee."
  4. 5 tool updatesv0.1.3
    • First observedcite_from_doi
    • First observedcite_from_isbn
    • First observedformat_bibliography
    • First observedformat_citation
    • First observedin_text_citation

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation4/5

The lookup tools (cite_from_doi, cite_from_isbn, cite_from_arxiv, cite_from_url) are cleanly separated by input source, and find_doi versus the cite_* tools distinguishes discovery from formatting. The only real overlap is format_citation versus format_bibliography, since a single source passed to the batch tool reproduces the single-citation result; descriptions mitigate this but the boundary is soft. in_text_citation is clearly distinct.

Naming Consistency4/5

The set uses consistent snake_case with verb-first naming and a tidy cite_from_<source> family plus a format_* pair. Minor deviation: in_text_citation is a noun phrase with no verb, sitting outside the verb_noun pattern. Overall predictable and readable.

Tool Count5/5

Eight tools is well-scoped for a citation server: one per lookup source, one batch formatter, one discovery tool, one in-text tool. Each earns its place with no filler or missing obvious variants.

Completeness4/5

Coverage is strong: formatting, batch bibliographies, in-text citations, DOI discovery, and DOI/ISBN/arXiv/URL lookups with BibTeX and RIS output. Gaps are minor: no bare metadata retrieval (you must format to get data), RIS is only available from format_citation, and custom CSL styles are unsupported. Agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Retrieve citation data effortlessly from CiteAs and Google Scholar. Get BibTeX-formatted citations for your resources with just a few commands. Enhance your research workflow by integrating citation retrieval directly into your applications.
    2
    14
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Resolves scholarly identifiers — DOI, PubMed ID, PMCID, ISBN, ISSN, arXiv, ADS bibcode — into clean, formatted citations in any of 10,000+ CSL styles. Returns plain text, HTML, Markdown, RIS, BibTeX, CSL-JSON, or EndNote XML for direct paste or reference manager import.
    7
    508 npm
    11
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables querying citation data from OpenCitations, including references, citations, citation counts, and bibliographic metadata for DOIs.
    478 npm
    MIT