Papers
Scholarly paper search with real citations for AI assistants, over MCP.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"papers": {
"url": "https://papers-mcp.vercel.app/mcp"
}
}
}Remote endpoints
https://papers-mcp.vercel.app/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢search_papers(query, year_from, year_to, field, open_access, ...)
Search peer-reviewed and preprint records by question or keywords. Filters: year_from, year_to, field, open_access, and source (openalex, semantic_scholar, pubmed, crossref, arxiv, or all). Returns only works those APIs returned, each with a source link and an identifier. An empty list means the APIs returned nothing. Do not invent papers to fill a gap.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 400,
"description": "Question or keywords"
},
"year_from": {
"type": "integer",
"minimum": 1800,
"maximum": 2100
},
"year_to": {
"type": "integer",
"minimum": 1800,
"maximum": 2100
},
"field": {
"type": "string",
"minLength": 2,
"maxLength": 80,
"description": "Subject area, such as Medicine or Computer Science"
},
"open_access": {
"type": "boolean"
},
"source": {
"type": "string",
"enum": [
"openalex",
"semantic_scholar",
"pubmed",
"crossref",
"arxiv",
"all"
],
"description": "Index to search. Defaults to all, which mixes sources."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Maximum papers to return. Defaults to 8."
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_paper(identifier)
Fetch one paper's title, authors, year, venue, and abstract by DOI, PMID, arXiv id, or OpenAlex work id. Metadata comes from the API that resolved the identifier. If no source returns a record, say so. Do not guess the abstract.
Input Schema
{
"type": "object",
"properties": {
"identifier": {
"type": "string",
"minLength": 2,
"maxLength": 300,
"description": "DOI, PMID, arXiv id, or OpenAlex work id"
}
},
"required": [
"identifier"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢find_related_papers(identifier, relation, limit)
List papers that cite a work (relation cited_by) or papers that work cites (relation references). Every row is an API hit. An empty list means the API returned none, not that none exist.
Input Schema
{
"type": "object",
"properties": {
"identifier": {
"type": "string",
"minLength": 2,
"maxLength": 300
},
"relation": {
"type": "string",
"enum": [
"cited_by",
"references"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"identifier",
"relation"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢format_citation(identifier, style)
Format a real paper in APA, MLA, Chicago author-date, or BibTeX using metadata fetched for the identifier. Titles are kept as the source provided them. Author particles may need a human check because display names are split mechanically. If the paper cannot be resolved, do not hand-write a citation.
Input Schema
{
"type": "object",
"properties": {
"identifier": {
"type": "string",
"minLength": 2,
"maxLength": 300
},
"style": {
"type": "string",
"enum": [
"apa",
"mla",
"chicago",
"bibtex"
]
}
},
"required": [
"identifier",
"style"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence