Skip to main content

An MCP server for searching and retrieving articles from medRxiv

Project description

medRxiv MCP Server

smithery badge

๐Ÿ” 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.

๐Ÿค Contribute โ€ข ๐Ÿ“ Report Bug

โœจ Core Features

  • ๐Ÿ”Ž Paper Search: Query medRxiv papers with custom search strings or advanced search parameters โœ…
  • ๐Ÿš€ Efficient Retrieval: Fast access to paper metadata โœ…
  • ๐Ÿ“Š Metadata Access: Retrieve detailed metadata for specific papers using DOI โœ…
  • ๐Ÿ“Š Research Support: Facilitate health sciences research and analysis โœ…
  • ๐Ÿ“„ Paper Access: Download and read paper content ๐Ÿ“
  • ๐Ÿ“‹ Paper Listing: View all downloaded papers ๐Ÿ“
  • ๐Ÿ—ƒ๏ธ Local Storage: Papers are saved locally for faster access ๐Ÿ“
  • ๐Ÿ“ Research Prompts: A set of specialized prompts for paper analysis ๐Ÿ“

๐Ÿš€ Quick Start

Installing via Smithery

To install medRxiv Server for Claude Desktop automatically via Smithery:

claude

npx -y @smithery/cli@latest install @JackKuo666/medrxiv-mcp-server --client claude --config "{}"

Cursor

Paste the following into Settings โ†’ Cursor Settings โ†’ MCP โ†’ Add new server:

  • Mac/Linux
npx -y @smithery/cli@latest run @JackKuo666/medrxiv-mcp-server --client cursor --config "{}" 

Windsurf

npx -y @smithery/cli@latest install @JackKuo666/medrxiv-mcp-server --client windsurf --config "{}"

CLine

npx -y @smithery/cli@latest install @JackKuo666/medrxiv-mcp-server --client cline --config "{}"

Installing Manually

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

๐Ÿ“Š Usage

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:

Example 1: Search for papers using keywords

result = await mcp.use_tool("search_medrxiv_key_words", {
    "key_words": "COVID-19 vaccine efficacy",
    "num_results": 5
})
print(result)

Example 2: Perform an advanced search

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)

Example 3: Get metadata for a specific paper

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.

๐Ÿ›  MCP Tools

The medRxiv MCP Server provides the following tools:

search_medrxiv_key_words

Search for articles on medRxiv using key words.

Parameters:

  • key_words (str): Search query string
  • num_results (int, optional): Number of results to return (default: 10)

Returns: List of dictionaries containing article information

search_medrxiv_advanced

Perform an advanced search for articles on medRxiv.

Parameters:

  • term (str, optional): General search term
  • title (str, optional): Search in title
  • author1 (str, optional): First author
  • author2 (str, optional): Second author
  • abstract_title (str, optional): Search in abstract and title
  • text_abstract_title (str, optional): Search in full text, abstract, and title
  • section (str, optional): Section of medRxiv
  • start_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

get_medrxiv_metadata

Fetch metadata for a medRxiv article using its DOI.

Parameters:

  • doi (str): DOI of the article

Returns: Dictionary containing article metadata

Usage with Claude Desktop

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:

Searching Papers

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:

โ€ข Paper title

โ€ข Authors

โ€ข DOI

Getting Paper Details

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:

โ€ข Full paper title

โ€ข Authors

โ€ข Publication date

โ€ข Paper abstract

โ€ข Links to available formats (PDF/HTML)

๐Ÿ“ TODO

download_paper

Download a paper and save it locally.

read_paper

Read the content of a downloaded paper.

list_papers

List all downloaded papers.

๐Ÿ“ Research Prompts

The server offers specialized prompts to help analyze academic papers:

Paper Analysis Prompt

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:

  • Detailed instructions for using available tools (list_papers, download_paper, read_paper, search_papers)
  • A systematic workflow for paper analysis
  • Comprehensive analysis structure covering:
    • Executive summary
    • Research context
    • Methodology analysis
    • Results evaluation
    • Practical and theoretical implications
    • Future research directions
    • Broader impacts

๐Ÿ“ Project Structure

  • medrxiv_server.py: The main MCP server implementation using FastMCP
  • medrxiv_web_search.py: Contains the web scraping logic for searching medRxiv

๐Ÿ”ง Dependencies

  • Python 3.10+
  • FastMCP
  • asyncio
  • logging
  • requests (for web scraping, used in medrxiv_web_search.py)
  • beautifulsoup4 (for web scraping, used in medrxiv_web_search.py)

You can install the required dependencies using:

pip install FastMCP requests beautifulsoup4

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿ™ Acknowledgements

This project is inspired by and built upon the work done in the arxiv-mcp-server project.

โš ๏ธ Disclaimer

This tool is for research purposes only. Please respect medRxiv's terms of service and use this tool responsibly.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mseep_mcp_server_medrxiv-0.1.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mseep_mcp_server_medrxiv-0.1.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file mseep_mcp_server_medrxiv-0.1.0.tar.gz.

File metadata

  • Download URL: mseep_mcp_server_medrxiv-0.1.0.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for mseep_mcp_server_medrxiv-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d5c9da616cb780cc437e69fd9422f6ceb01d85c4a301b9cb4904df056ff65e0a
MD5 7d8060b97ee181ed90e3e579d189c6cf
BLAKE2b-256 0e615e05a112d9d0b56638bf47bd61d47c45ee96fbd4139f5fceb0df63e4d14d

See more details on using hashes here.

File details

Details for the file mseep_mcp_server_medrxiv-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mseep_mcp_server_medrxiv-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de7bfa0813a2c92ed3273104e7f915bb933eefdf674fee1097b0ca1f02c10730
MD5 26a3a7cbcf8cbd1503fce6c7a45afb7f
BLAKE2b-256 23f022004873d7fde305fc0425261b6e7b089071876b1310b70f6027c4f602c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page