Unpaywall MCP Server
Servidor MCP de Unpaywall
Un servidor MCP (Model Context Protocol) que expone herramientas de Unpaywall para que los clientes de IA puedan:
Obtener metadatos por DOI
Buscar títulos de artículos
Recuperar los mejores enlaces a texto completo en acceso abierto (OA)
Descargar y extraer texto de archivos PDF en acceso abierto
Inicio rápido (npx)
Añade esto a la configuración de tu cliente MCP (ejemplo de Claude Desktop):
{
"mcpServers": {
"unpaywall": {
"command": "npx",
"args": ["-y", "unpaywall-mcp"],
"env": { "UNPAYWALL_EMAIL": "you@example.com" }
}
}
}Luego prueba las herramientas: unpaywall_search_titles, unpaywall_get_fulltext_links, unpaywall_fetch_pdf_text.
No necesitas clonar este repositorio ni ejecutar npm install: npx se encarga de la descarga y el almacenamiento en caché en la primera llamada.
Related MCP server: ScholarScope MCP
Requisitos
Node.js 18+ (para
npx)Una dirección de correo electrónico para las solicitudes a Unpaywall / OpenAlex (requerido por Unpaywall, utilizado para el grupo de cortesía de OpenAlex).
Desarrollo local (solo para colaboradores)
Los usuarios finales deben usar la configuración de npx anterior. Los colaboradores que compilen desde el código fuente:
npm install
npm run build
UNPAYWALL_EMAIL=you@example.com npm start # stdio transport, as required by MCP clientsEjecución en caliente (sin paso de compilación):
UNPAYWALL_EMAIL=you@example.com npm run devHerramientas
unpaywall_get_by_doi
Descripción: Obtener metadatos de Unpaywall para un DOI
Esquema de entrada:
doi(cadena, requerido): ej.10.1038/nphys1170email(cadena, opcional): sobrescribeUNPAYWALL_EMAILsi se proporciona
Salida: Respuesta JSON de Unpaywall
unpaywall_search_titles
Descripción: Buscar títulos de artículos y devolver metadatos OA al estilo de Unpaywall para cada resultado (50 resultados/página)
Esquema de entrada:
query(cadena, requerido): consulta de títulois_oa(booleano, opcional): si es verdadero, solo resultados OA; si es falso, solo cerrados; omitir para todospage(entero >= 1, opcional): número de páginaemail(cadena, opcional): sobrescribeUNPAYWALL_EMAIL
Salida: JSON que coincide con la forma de búsqueda de Unpaywall:
results[].responsees un registro de estilo DOI (doi,title,is_oa,oa_status,best_oa_location,oa_locations), conscoreysnippetpor resultado._source: "openalex"marca el origen.Nota: Respaldado por el endpoint
/worksde OpenAlex porque el propio/v2/searchde Unpaywall ha estado devolviendo HTTP 500 desde su reescritura en mayo de 2025. Unpaywall ahora funciona como una subrutina de OpenAlex, por lo que este es el equivalente moderno canónico.
unpaywall_get_fulltext_links
Descripción: Devolver la mejor URL de PDF OA y Open URL para un DOI, además de todas las ubicaciones OA
Esquema de entrada:
doi(cadena, requerido)email(cadena, opcional): sobrescribeUNPAYWALL_EMAIL
Salida: JSON con campos:
best_pdf_url,best_open_url,best_oa_location,oa_locationsy metadatos seleccionados
unpaywall_fetch_pdf_text
Descripción: Descargar y extraer texto del mejor PDF OA para un DOI, o de una
pdf_urlproporcionadaEsquema de entrada:
pdf_url(cadena, opcional): URL directa del PDF (tiene prioridad)doi(cadena, opcional): utilizado para resolver el mejor PDF OA si no se proporcionapdf_urlemail(cadena, opcional): requerido si se usadoiy no hay variable de entornoUNPAYWALL_EMAILtruncate_chars(entero >= 1000, opcional): caracteres máximos del texto extraído a devolver (predeterminado 20000)
Salida: JSON con
text(posiblemente truncado),length_chars,truncated,pdf_urly metadatos del PDF
Consejos para prompts de LLM (MCP)
Cuando utilices este servidor desde un cliente LLM habilitado para MCP, pide al modelo que:
Busque y luego obtenga: Usa
unpaywall_search_titlescon una frase de título concisa; selecciona un resultado; luego llama aunpaywall_get_fulltext_linksounpaywall_fetch_pdf_textsobre el DOI elegido.Prefiera OA: Pasa
is_oa: trueen las búsquedas cuando solo desees acceso abierto.Controle el tamaño: Establece
truncate_charsenunpaywall_fetch_pdf_text(predeterminado 20000) y resume textos largos antes de continuar.Sea resiliente: Si falta la mejor URL de PDF, recurre a
best_open_urly extrae el contenido de la página de destino (fuera de este servidor).Respete los límites de tasa: Espacia las solicitudes si realizas muchas llamadas; reutiliza respuestas anteriores en lugar de repetir la misma llamada.
Buenas instrucciones de usuario para el LLM:
"Encuentra 3 artículos OA sobre 'modelos de base en biomedicina', luego extrae y resume la introducción del mejor."
"Busca 'Graph Neural Networks survey 2024', filtra por OA si es posible, luego obtén el texto del PDF y produce un resumen de 10 puntos."
Ejemplos de cargas útiles de llamadas a herramientas
Dependiendo de tu cliente MCP, la estructura difiere; las cargas útiles principales son:
// Search titles
{
"name": "unpaywall_search_titles",
"arguments": {
"query": "graph neural networks survey",
"is_oa": true,
"page": 1
}
}// Get best OA links for a DOI
{
"name": "unpaywall_get_fulltext_links",
"arguments": {
"doi": "10.48550/arXiv.1812.08434"
}
}// Fetch and extract PDF text (by DOI)
{
"name": "unpaywall_fetch_pdf_text",
"arguments": {
"doi": "10.48550/arXiv.1812.08434",
"truncate_chars": 20000
}
}Configuración en un cliente MCP
Configuración recomendada (sin compilación) para Claude Desktop usando npm/npx:
{
"mcpServers": {
"unpaywall": {
"command": "npx",
"args": ["-y", "unpaywall-mcp"],
"env": {
"UNPAYWALL_EMAIL": "you@example.com"
}
}
}
}Configuración alternativa (repositorio local) usando la distribución compilada:
{
"mcpServers": {
"unpaywall": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"UNPAYWALL_EMAIL": "you@example.com"
}
}
}
}Después de añadirlo, pide a tu cliente que liste las herramientas y prueba:
unpaywall_search_titlescon unaqueryunpaywall_get_fulltext_linkscon undoiunpaywall_fetch_pdf_textcon undoi(opdf_url)
Notas
Respeta los límites de tasa y las directrices de uso de Unpaywall: https://unpaywall.org/products/api
El servidor utiliza transporte stdio y
@modelcontextprotocol/sdk.Establece
UNPAYWALL_EMAILo pasaemailpor llamada para que Unpaywall pueda contactarte sobre el uso.
Mantenedores: publicar en npm
# 1) Build the project (also runs automatically on publish)
npm run build
# 2) Bump version (choose patch/minor/major)
npm version patch
# 3) Publish (ensure you are logged in: npm login)
npm publish --access public
# 4) Tag a release on GitHub (optional, recommended)Los usuarios pueden entonces configurar su cliente MCP con npx -y unpaywall-mcp como se muestra arriba. No se requiere clonar ni compilar.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityFmaintenanceEnables real-time search and retrieval of academic paper information from multiple sources, providing access to paper metadata, abstracts, and full-text content when available, with structured data responses for integration with AI models that support tool/function calling.3119AGPL 3.0
- AlicenseAqualityDmaintenanceEnables academic research through the OpenAlex API, allowing users to search for papers, authors, and institutions, retrieve citations, and fetch full-text content when available. Perfect for building intelligent research assistants that can explore academic literature and related works.87MIT
- AlicenseAqualityCmaintenanceEnables querying open-access availability of scholarly articles via Unpaywall API, including DOI lookup, title search, and citation export.4MIT
- FlicenseAqualityCmaintenanceEnables looking up free-to-read versions of scholarly papers by DOI and searching article titles for Open Access matches via the Unpaywall API.21
Related MCP Connectors
Unpaywall MCP — open-access lookup for scholarly papers (free, no key)
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Find academic papers across major sources like arXiv, PubMed, bioRxiv, and more. Download PDFs whe…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ElliotPadfield/unpaywall-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server