PaperMCP
Enables searching for papers in the ACM Digital Library.
Enables searching, downloading, and reading papers from arXiv.
Enables searching for papers on Google Scholar.
Enables searching and accessing papers from IEEE Xplore.
Enables searching and looking up papers on PubMed.
Enables searching for papers on ResearchGate.
Enables searching for papers on Scopus.
Enables searching and looking up papers on Semantic Scholar.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PaperMCPsearch for papers about few-shot learning on arXiv"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PaperMCP
Search and access academic papers from 23+ sources through Model Context Protocol
❌ Without PaperMCP
Manually visiting multiple academic databases
Copy-pasting DOIs and paper IDs between tools
Switching contexts to download PDFs
No unified interface for paper search
Related MCP server: Paper Search MCP
✅ With PaperMCP
Single interface for 23+ academic sources
Direct access from Claude and other AI assistants
Automatic PDF download and text extraction
Plugin system for sensitive sources
🛠️ Installation
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Using npx (Recommended)
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Using npm global install
npm install -g @telagod/papermcp{
"mcpServers": {
"papermcp": {
"command": "papermcp"
}
}
}With API keys
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "YOUR_KEY",
"WOS_API_KEY": "YOUR_KEY",
"SCOPUS_API_KEY": "YOUR_KEY"
}
}
}
}Add to Cline MCP settings:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Add to ~/.config/zed/settings.json:
{
"context_servers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Add to Continue config:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Add to Cody settings:
{
"cody.experimental.mcp": {
"servers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
}Add to Cursor MCP settings:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Add to Windsurf config:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Add to Roo Cline settings:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Add to OpenHands config:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Add to Void settings:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Use the claude mcp add command:
claude mcp add papermcp -- npx -y @telagod/papermcpOr manually add to ~/.claude.json:
{
"projects": {
"/your/project/path": {
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
}
}Add to ~/.config/gemini-cli/settings.json:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}Add to ~/.codex/config.toml:
[mcp_servers.papermcp]
command = "npx"
args = ["-y", "@telagod/papermcp"]Add to .opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"papermcp": {
"type": "local",
"command": ["npx", "-y", "@telagod/papermcp"],
"enabled": true
}
}
}Add to Crush config:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}📚 Supported Platforms
Core Platforms (16)
Platform | ID | API Key | Features |
arXiv |
| ❌ | Search, Download, Read |
PubMed |
| ❌ | Search, Lookup |
PubMed Central |
| ❌ | Search, Download, Read |
bioRxiv |
| ❌ | Search |
medRxiv |
| ❌ | Search |
Google Scholar |
| ❌ | Search |
IACR ePrint |
| ❌ | Search, Download |
Semantic Scholar |
| ⚠️ | Search, Lookup |
CrossRef |
| ❌ | Search, Lookup |
ACM Digital Library |
| ❌ | Search |
Web of Science |
| ✅ | Search |
Scopus |
| ✅ | Search |
JSTOR |
| ❌ | Search |
ResearchGate |
| ❌ | Search |
CORE |
| ✅ | Search |
Microsoft Academic |
| ✅ | Search |
Optional Plugins (7)
Enable via environment variables:
PLUGIN_SCI_HUB=true
PLUGIN_LIBGEN=true
PLUGIN_UNPAYWALL=true
PLUGIN_OA_BUTTON=true
PLUGIN_SCIENCE_DIRECT=true
PLUGIN_SPRINGER_LINK=true
PLUGIN_IEEE_XPLORE=trueSci-Hub and LibGen plugins are disabled by default. Use responsibly and comply with local regulations.
🚀 Usage
Available Tools (4 Unified Tools)
recommend_platforms
Get platform recommendations based on field
{
"query": "transformer neural network",
"field": "computer-science" // biomedical, physics, mathematics, cryptography, open-access, general
}search_papers
Search for papers on specified platform
{
"platform": "arxiv", // Use recommend_platforms to get suggestions
"query": "machine learning",
"limit": 10
}download_paper
Download paper PDF from platform
{
"platform": "arxiv",
"id": "2301.00001",
"dir": "/path/to/save"
}read_paper
Extract text from paper PDF
{
"platform": "pmc",
"id": "PMC8123456",
"dir": "/path/to/pdfs"
}⚙️ Configuration
Environment Variables
# Optional API keys for enhanced features
SEMANTIC_SCHOLAR_API_KEY=your-key
WOS_API_KEY=your-key
SCOPUS_API_KEY=your-key
CORE_API_KEY=your-key
# Plugin toggles (default: false)
PLUGIN_SCI_HUB=true # No config needed
PLUGIN_LIBGEN=true # No config needed
PLUGIN_UNPAYWALL=true # Requires UNPAYWALL_EMAIL
PLUGIN_OA_BUTTON=true # Optional OA_BUTTON_API_KEY
PLUGIN_SCIENCE_DIRECT=true # Requires ELSEVIER_API_KEY
PLUGIN_SPRINGER_LINK=true # No config needed
PLUGIN_IEEE_XPLORE=true # No config needed
# Plugin API keys
UNPAYWALL_EMAIL=your@email.com # Required for Unpaywall
ELSEVIER_API_KEY=your-key # Required for ScienceDirect
OA_BUTTON_API_KEY=your-key # Optional for Open Access ButtonGetting API Keys
Platform | Link | Notes |
Semantic Scholar | Free, increases rate limit | |
Web of Science | Requires institutional subscription | |
Scopus | Requires institutional subscription | |
CORE | Free | |
Unpaywall | Any email | No registration needed |
ScienceDirect | Requires institutional subscription | |
Open Access Button | Optional, free |
🔧 Development
Install from source
git clone https://github.com/telagod/papermcp.git
cd papermcp/ts
npm install
npm run build
npm run devProject Structure
ts/
├── src/
│ ├── core/ # Core types and config
│ ├── platforms/ # Platform adapters
│ ├── plugins/ # Optional plugins
│ ├── services/ # Registry and tools
│ ├── server/ # MCP server
│ └── utils/ # HTTP, logging
└── dist/ # Compiled outputAdding a Platform
import { BasePlatformAdapter } from './baseAdapter.js';
import { addAdapterFactory } from './index.js';
class MyAdapter extends BasePlatformAdapter {
constructor() {
super('my-platform');
}
async search(query: SearchQuery): Promise<SearchResult> {
// Implementation
}
}
addAdapterFactory(() => new MyAdapter());📄 License
MIT License - see LICENSE for details.
🙏 Acknowledgments
Built with Model Context Protocol and MCP TypeScript SDK
Made with ❤️ for researchers
Available Tools
4 toolsdownload_paper下载论文PDFC
从指定平台下载论文PDF文件
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| dir | No | ||
| platform | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| path | Yes | |
| cached | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the basic action of downloading a PDF, without explaining side effects (e.g., file creation), output format, or whether any authentication is needed. This is insufficient for a tool that likely creates files on the system.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant wording, which is structurally neat. However, it is under-specified; the brevity comes at the cost of explanatory value, so it does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters (two required), no parameter descriptions, and an output schema that is not detailed, the description should compensate by explaining usage and context. It only states the action, omitting crucial information such as how to choose a platform, what to pass for id, and what the output schema represents. The presence of siblings makes the lack of guidance more problematic.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (id, dir, platform). It is unclear what 'id' refers to (paper ID?), what 'dir' does (destination directory?), and what values 'platform' can take. This leaves the agent reliant on guessing parameter meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '从指定平台下载论文PDF文件' clearly states the tool downloads a paper PDF from a specified platform, using a specific verb (download) and resource (paper PDF). It distinguishes from siblings like search_papers and read_paper by focusing on the download action, though it lacks detail on what exactly is returned or saved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as search_papers or read_paper. It does not mention prerequisites, when a download is appropriate, or any exclusions, leaving the agent to infer usage solely from the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_paper读取论文内容B
读取指定平台论文的PDF文本内容
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| dir | No | ||
| platform | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| text | Yes | |
| source | Yes | |
| statistics | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that PDF text content is read, but does not mention potential errors, rate limits, authentication, or what the output actually contains. The single sentence lacks sufficient behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy, front-loading the core purpose immediately. Every word contributes to the meaning, making it highly concise and well-structured for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters, no annotations, and no parameter descriptions. The description is too minimal to provide complete context: it doesn't explain the role of id or dir, nor does it describe return values or expected output format, even though an output schema exists. The context is incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, it only hints at 'platform' being specified, while 'id' and especially 'dir' remain unexplained. The description adds little meaning beyond what the schema property names imply, leaving the dir parameter particularly ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (读取/read) and resource (PDF text of papers), and mentions 'specified platform', which directly maps to the platform parameter. This distinguishes it from sibling tools like search_papers, download_paper, and recommend_platforms, which have different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context. It simply states what the tool does, leaving the agent to infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_platforms推荐学术平台A
根据查询意图和学科领域推荐最合适的学术搜索平台。返回按优先级排序的平台列表及其特点。
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| field | No | |
| recommendations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
无注解,描述承担行为披露责任。它披露了返回形式(按优先级排序的平台列表及其特点),但未提及可能的失败情况、输出格式限制或额外行为。基本透明但不深入。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
单句描述,信息完整,无冗余内容,且结果输出形式在开头前置。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
该工具功能相对简单且存在输出 schema,描述提及输入依据和返回列表形式,足以提供基本使用概念。但缺少参数细节、使用边界和替代工具对比,整体完整度中等。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
schema 描述覆盖率为 0%,描述需要补偿参数语义。'查询意图和学科领域'大致对应 query 和 field,但未说明具体参数名、field 枚举值如何影响推荐结果,也没有说明 query 的用法,语义贡献有限。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述以明确的动词 '推荐' 指向特定资源 '学术搜索平台',并说明基于查询意图和学科领域,与兄弟工具 search_papers(搜索论文)、download_paper(下载)、read_paper(阅读)清晰区分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述隐含了使用场景(需要推荐平台时),但没有明确说明何时应使用本工具而不是 search_papers 等替代工具,也没有给出排除条件。从名称和兄弟工具可推断,但描述本身未提供直接指导。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_papers搜索学术论文B
在指定平台搜索学术论文。使用 recommend_platforms 工具获取推荐平台。
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| query | Yes | ||
| cursor | No | ||
| filters | No | ||
| platform | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| source | Yes | |
| nextCursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool searches papers on a specified platform and does not mention any behavioral traits such as pagination, rate limits, authentication requirements, or result format. This minimal disclosure is insufficient for a tool with potential side effects or complex behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, efficiently front-loaded with the primary action and immediately providing a relevant pointer to recommend_platforms. Every word earns its place; there is no fluff or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested filters object, and an output schema), the description is severely incomplete. It lacks any mention of return values, parameters, pagination, or usage scenarios beyond the platform recommendation. The agent cannot confidently invoke this tool based solely on this description, especially with no annotation support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 6 parameters with 0% description coverage, so the description must compensate by explaining parameter meaning. It only references the platform implicitly ('specified platform') and does not describe query, year, limit, cursor, or filters. This leaves the agent without enough semantic understanding of the parameters, warranting a low score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool searches for academic papers on a specified platform, using the specific verb 'search' and resource 'academic papers'. It distinguishes from siblings like recommend_platforms, download_paper, and read_paper by focusing on the search action, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs using recommend_platforms to get recommended platforms, providing a clear prerequisite for when to use this tool. However, it does not explicitly mention when not to use this tool or how it relates to download_paper/read_paper, leaving some gaps but still offering actionable context.
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. Dates show when Glama detected each change.
4 tool updates
v0.3.5- First observed
download_paper - First observed
read_paper - First observed
recommend_platforms - First observed
search_papers
TDQS
Each tool has a distinct role in the workflow: recommend_platforms suggests sources, search_papers finds papers, download_paper retrieves files, and read_paper extracts content. There is no overlap or confusion between these tools.
All tool names follow the verb_noun pattern with consistent snake_case formatting (recommend_platforms, search_papers, download_paper, read_paper). The naming is uniform and predictable.
With only 4 tools, the set is tightly scoped and each tool addresses a necessary step in the paper search and reading pipeline. This is an appropriate size for the server's purpose.
The tool set covers the complete workflow from platform recommendation, to search, download, and reading. There are no obvious gaps in the core functionality a user would expect from a paper management server.
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 Connectors
Search and download academic papers from arXiv, PubMed, bioRxiv, medRxiv, Google Scholar, Semantic…
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…
Search 340M+ academic papers — citation graphs, semantic similarity, and AI literature reviews.
Related MCP Servers
- AlicenseBqualityFmaintenanceProvides paper search, PDF link retrieval, and content parsing for arXiv research papers, enabling seamless access to scientific literature through the Model Context Protocol.44024MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching and downloading academic papers from multiple sources including arXiv, PubMed, bioRxiv, Google Scholar, and Semantic Scholar. Provides standardized tools compatible with OpenAI Deep Research and ChatGPT connectors.14MIT
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to search for academic papers by DOI, title, or keywords and download full-text PDFs from Sci-Hub. It provides a programmatic interface for accessing metadata and scientific literature through the Model Context Protocol.143-
- AlicenseNot gradedqualityDmaintenanceProvides real-time access to over 200 million scientific papers and full-text extraction from major academic sources including arXiv, OpenAlex, and PubMed Central. It enables users to search, fetch metadata, and analyze citations across multiple research disciplines through a unified Model Context Protocol interface.5455MIT
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/telagod/papermcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server