
PubMed
STDIOMCP server for searching PubMed articles and retrieving abstracts using BioPython
MCP server for searching PubMed articles and retrieving abstracts using BioPython
This repository contains an MCP server that searches PubMed for article abstracts using BioPython's Entrez module. It leverages the FastMCP framework to provide asynchronous search capabilities for PubMed.
asyncio.to_thread
) to avoid blocking the server.Clone the Repository:
git clone https://github.com/AIAnytime/MCP-Servers cd pubmed-mcp-server
Install Dependencies:
You can install the required packages using uv:
uv add -r requirements.txt
Configure Entrez Email:
Ensure you have set a valid email address in the code (in main.py
):
Entrez.email = "give an email address"
Start the PubMed MCP server by running:
uv run main.py
This command starts the server using the uv
command-line tool (as specified in your configuration).
To configure your MCP client to connect to the PubMed MCP server, create or update your config.json
file as follows:
{ "mcpServers": { "pubmed": { "command": "C:/Users/aiany/.local/bin/uv", "args": [ "--directory", "C:/Users/aiany/OneDrive/Desktop/YT Video/pubmed-mcp-server", "run", "main.py" ] } } }
command:
The full path to the command-line tool used to run the MCP server (in this case, uv
).
args:
--directory
: Specifies the working directory where the server is located."C:/Users/aiany/OneDrive/Desktop/YT Video/pubmed-mcp-server"
: The path to the server's root directory."run"
and "main.py"
: The command and entry point to start the PubMed MCP server.Once the server is running and your MCP client is configured, you can use the provided tool:
search_pubmed
query
: The search term for PubMed (default is "endocarditis"
).max_results
: Maximum number of articles to retrieve (default is 10
).Example Usage:
search_pubmed(query="endocarditis", max_results=10)
This will return a string with the abstracts of the articles separated by newlines.
This project is licensed under the MIT License.
You can adjust paths and details as needed for your specific setup.