Paper Finder MCP
[npm]
[downloads]
[license]
Google Scholar for your AI. See how it compares.
Paper Finder MCP is an academic paper search MCP server. Ask your AI to find real scholarly papers for an essay or research project, with authors, year, citation counts, DOIs, a one line abstract and a free to read link when one exists.
Sort by citation count to get the most cited papers on a topic, or by date to get the newest ones. Ask for the papers a paper cites, or the papers that cite it, when you build a literature review.
A search that matches thousands of papers says how many there are and which results you are reading, so you can keep going with the next page instead of stopping at the first handful. The author, citing, related and reference lists work the same way.
Results come straight from OpenAlex, a free open catalog of scholarly works, so the papers are real, not invented. Free forever, no account and no key.
Students often type things like 'find 5 sources for my essay on spaced repetition' or 'citations for my literature review'. Once you have a paper, ask for an 'APA citation', a 'BibTeX' entry or to 'cite this paper' in MLA, and format_citation gives you a reference to paste.
Essay workflow in three steps
-
Find sources. Ask: "Find 5 sources for my essay on spaced repetition." This uses search_papers.
-
Follow the citations. Pick a paper and ask: "What does this paper cite?" or "Which papers cite it?" This uses paper_references and find_citing_papers.
-
Format the reference. Ask: "Give me the APA citation for this paper." This uses format_citation, and it also does MLA, Chicago, Harvard, IEEE and BibTeX.
Install
[Install in Cursor] [Install in VS Code]
Click a button to add the server to Cursor or VS Code, or set it up by hand with the config below.
Add this to your AI app's MCP config. Where the file goes and what the key inside it is called depends on the app.
Claude Desktop
The file is claude_desktop_config.json.
Cursor
The file is ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one project.
VS Code
The file is .vscode/mcp.json in your workspace. VS Code calls the key servers and asks for the type.
To use OpenAlex's faster polite pool, add an env block next to args with "OPENALEX_MAILTO": "[email protected]", using your own email. It is optional and sent only to OpenAlex.
Restart your AI app, then try one of the prompts below. You need Node.js 20 or newer. For Claude Code, run claude mcp add paper-finder -- npx -y paper-finder-student-mcp.
What it looks like
This is what search_papers returns for the query "spaced repetition" when you ask for the most cited papers first.
Each result carries the title, the authors, the year, the venue, the citation count, the DOI, the OpenAlex id, a free to read link when one exists and the first line of the abstract, so you can judge a paper before you open it. The showing line says which results you are reading and how many matched in all, and the page to ask for next. OpenAlex counts change over time, so the totals in this sample will differ when you run it.
Example prompts
- "Find open access papers on spaced repetition and exam performance since 2020."
- "Find the most cited papers on spaced repetition since 2020."
- "Find papers with spaced repetition in the title."
- "Find papers on spaced repetition published from 2015 to 2020 with at least 50 citations."
- "Show me the newest journal articles about spaced repetition."
- "Find 5 sources for my essay on spaced repetition."
- "Citations for my literature review."
- "Get the paper with DOI 10.1038/nature14539 and show me the abstract."
- "Find a free PDF of this paper, DOI 10.1038/nature14539."
- "What papers are related to DOI 10.48550/arXiv.1706.03762?"
- "Who cited DOI 10.48550/arXiv.1706.03762?"
- "What does DOI 10.1038/nature14539 cite?"
- "Find authors named John Dewey."
- "I am citing a Dewey for my education essay but there are several of them. Find authors named John Dewey and tell me which one wrote about learning by doing."
- "I want to cite the Attention Is All You Need paper, DOI 10.48550/arXiv.1706.03762. Show me the papers it cites so I can pick background sources for my essay."
- "List papers by John Dewey on education since 1950."
- "List papers by A. Duckworth on grit."
How it compares
Three ways to get papers for an essay, and what each one actually gives you. This section has a stable anchor at README.md#how-it-compares if you want to link someone here.
Paper Finder MCP is the one where every line has a live catalog record behind it and the follow up questions are tools rather than more guessing. The Semantic Scholar MCP column describes those servers in general, since they are separate projects with their own features and setup. Always open the paper itself before you cite it.
Tools
Every tool description states its inputs and one example prompt, so clients can pick the right tool without reading this page. paper accepts a DOI like 10.1038/nature14539, a doi.org link, or an OpenAlex id like W2741809807. doi accepts a DOI or doi.org link with no OpenAlex ids, and get_paper takes either paper or doi, so a DOI lookup has one home. limit is 1 to 25, default 8 and page is 1 to 400, default 1. search_papers shows the title, authors, year, venue, citations, DOI and a one line abstract for every hit, so you can judge a paper before you open it. sort takes relevance (the default OpenAlex order), cited_by_count:desc for the most cited papers on the topic first, or publication_date:desc for the newest papers first. type takes journal_article, preprint or book_chapter to keep the results to one kind of paper. title_only keeps only the papers whose title carries the search words, which stops a famous paper that only mentions the topic from taking the top spot on a broad search. from_year and to_year set the two ends of a range of years, so a search can ask for the papers published from 2015 to 2020, and min_citations keeps only the papers with at least that many citations, so a search can ask for the well cited papers on a topic. list_author_papers looks the name up in the OpenAlex author records first and then takes the papers from that author id, so J. Smith, Smith, John and John Smith all reach the same papers, even when the name on the paper is written differently. When the name cannot be resolved that way, the tool matches the name as it is written on the papers instead. get_papers takes a papers list of 1 to 10 DOIs or OpenAlex ids and looks them all up in one call, listing any it cannot find at the end. format_citation takes a paper and a style of apa, mla or bibtex. It leaves out any part the record does not have, so check the reference against the paper before you use it. find_citing_papers gives the papers that cite a paper, and paper_references gives the papers it cites, so a literature review can walk the citation graph in both directions. Those two lists and the related paper list show the same one line abstract under every entry, so a paper can be judged from the list before it is opened. paper_references takes its own sort, with cited_by_count:desc for the most cited references first and publication_year:asc for the oldest references first, which reads like a bibliography from the beginning. The heading says how many references OpenAlex holds for the paper, so a list cut short by limit is clear. Every search and every one of those lists comes with a showing line that says which results are on this page and how many matched in all, and names the page to ask for next, so a long list can be read a page at a time with page.
cited_by, related_papers, get_paper_by_doi and get_related_work still exist as deprecated aliases so saved prompts keep working. They do the same work as find_citing_papers, find_related_papers and get_paper with doi, and new prompts should use those instead. They are not in the tool list a client sees, so a client gets the tools above and no second name for them. A saved prompt that calls one of the old names still gets an answer.
Good to know
- Lookups that miss are flagged as errors with a stable code, not empty results. A wrong or unknown reference returns a not found error that suggests searching by the title or checking the DOI format, and a rate limit returns an error that says to wait about a minute and retry. An OpenAlex outage, such as a server error, a request that runs out of time or a connection that breaks, returns an upstream error with the code
upstream_error and says to try again shortly, so a client can tell an outage from a bad request. A missing free copy is not an error, find_open_access_pdf just says that none was found.
venue limits a search to one journal or other venue. Give a name like Nature and the server asks OpenAlex for the best matching source, then keeps only the papers whose main location is that source. The heading of the results names the venue OpenAlex picked and shows its source id, so check that they are the ones you meant. You can also pass an OpenAlex source id like S137773608 to be exact.
sort reorders the papers OpenAlex matched. It does not change which papers match, so on a broad topic the most cited match can be a famous paper that only mentions the topic. Ask for relevance when you want the closest match first, or set title_only to true so only the papers with the search words in the title come back.
from_year, to_year and min_citations narrow the results, so a year range that is too narrow or a citation count that is too high can leave you with nothing. When a search finds nothing it says which of those filters to relax.
- Author names go through the OpenAlex author records, so a name that is written in another form on the papers still finds them. OpenAlex sometimes keeps more than one profile for a name. In that case the tool shows the profile whose name matches best and has the most papers, and it lists the others. You can pass one of those ids, such as
A5108843829, as author to see that profile.
- Citation counts and open access links come from OpenAlex and can be a little behind the publisher.
- If you want faster, more reliable service for heavy use, set
OPENALEX_MAILTO to your own email (OPENALEX_EMAIL works too). OpenAlex asks for it so they can reach you, and it is sent only to OpenAlex.
OPENALEX_BASE_URL points the server somewhere else, which the tests use.
- Retraction check: when OpenAlex marks a paper as retracted,
get_paper, get_papers and the paper lists print a WARNING line under the title, so you do not cite a retracted paper by mistake.
- Citation styles:
format_citation and format_citations write a Chicago citation, an IEEE citation, APA, MLA, Harvard or BibTeX.
- Always read the paper yourself before you cite it. A catalog entry is not the paper.
Development
Tests run against a fake OpenAlex server, so they need no network.
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.
License
MIT