🔍 Enable AI assistants to search and access medRxiv papers through a simple MCP interface.
The medRxiv MCP Server provides a bridge between AI assistants and medRxiv's preprint repository through the Model Context Protocol (MCP). It allows AI models to search for health sciences preprints and access their content in a programmatic way.
To install medRxiv Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli@latest install @JackKuo666/medrxiv-mcp-server --client claude --config "{}"
Paste the following into Settings → Cursor Settings → MCP → Add new server:
npx -y @smithery/cli@latest run @JackKuo666/medrxiv-mcp-server --client cursor --config "{}"
npx -y @smithery/cli@latest install @JackKuo666/medrxiv-mcp-server --client windsurf --config "{}"
npx -y @smithery/cli@latest install @JackKuo666/medrxiv-mcp-server --client cline --config "{}"
Install using uv:
uv tool install medRxiv-mcp-server
For development:
# Clone and set up development environment
git clone https://github.com/JackKuo666/medRxiv-MCP-Server.git
cd medRxiv-MCP-Server
# Create and activate virtual environment
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
Start the MCP server:
python medrxiv_server.py
Once the server is running, you can use the provided MCP tools in your AI assistant or application. Here are some examples of how to use the tools:
result = await mcp.use_tool("search_medrxiv_key_words", {
"key_words": "COVID-19 vaccine efficacy",
"num_results": 5
})
print(result)
result = await mcp.use_tool("search_medrxiv_advanced", {
"term": "COVID-19",
"author1": "MacLachlan",
"start_date": "2020-01-01",
"end_date": "2023-12-31",
"num_results": 3
})
print(result)
result = await mcp.use_tool("get_medrxiv_metadata", {
"doi": "10.1101/2025.03.09.25323517"
})
print(result)
These examples demonstrate how to use the three main tools provided by the medRxiv MCP Server. Adjust the parameters as needed for your specific use case.
The medRxiv MCP Server provides the following tools:
Search for articles on medRxiv using key words.
Parameters:
key_words
(str): Search query stringnum_results
(int, optional): Number of results to return (default: 10)Returns: List of dictionaries containing article information
Perform an advanced search for articles on medRxiv.
Parameters:
term
(str, optional): General search termtitle
(str, optional): Search in titleauthor1
(str, optional): First authorauthor2
(str, optional): Second authorabstract_title
(str, optional): Search in abstract and titletext_abstract_title
(str, optional): Search in full text, abstract, and titlesection
(str, optional): Section of medRxivstart_date
(str, optional): Start date for search range (format: YYYY-MM-DD)end_date
(str, optional): End date for search range (format: YYYY-MM-DD)num_results
(int, optional): Number of results to return (default: 10)Returns: List of dictionaries containing article information
Fetch metadata for a medRxiv article using its DOI.
Parameters:
doi
(str): DOI of the articleReturns: Dictionary containing article metadata
Add this configuration to your claude_desktop_config.json
:
(Mac OS)
{
"mcpServers": {
"medrxiv": {
"command": "python",
"args": ["-m", "medrxiv-mcp-server"]
}
}
}
(Windows version):
{
"mcpServers": {
"medrxiv": {
"command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
"args": ["-m", "medrxiv-mcp-server"]
}
}
}
Using with Cline
{
"mcpServers": {
"medrxiv": {
"command": "bash",
"args": ["-c", "source /home/YOUR/PATH/mcp-server-medRxiv/.venv/bin/activate && python /home/YOUR/PATH/mcp-server-medRxiv/medrxiv_server.py"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
After restarting Claude Desktop, the following capabilities will be available:
You can ask Claude to search for papers using queries like:
Can you search medRxiv for recent papers about genomics?
The search will return basic information about matching papers including:
Once you have a DOI, you can ask for more details:
Can you show me the details for paper 10.1101/003541?
This will return:
Download a paper and save it locally.
Read the content of a downloaded paper.
List all downloaded papers.
The server offers specialized prompts to help analyze academic papers:
A comprehensive workflow for analyzing academic papers that only requires a paper ID:
result = await call_prompt("deep-paper-analysis", {
"paper_id": "2401.12345"
})
This prompt includes:
medrxiv_server.py
: The main MCP server implementation using FastMCPmedrxiv_web_search.py
: Contains the web scraping logic for searching medRxivYou can install the required dependencies using:
pip install FastMCP requests beautifulsoup4
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
This project is inspired by and built upon the work done in the arxiv-mcp-server project.
This tool is for research purposes only. Please respect medRxiv's terms of service and use this tool responsibly.