pubmed-mcp-server
PubMed MCP 서버
이 저장소에는 BioPython의 Entrez 모듈을 사용하여 PubMed에서 논문 초록을 검색하는 MCP 서버가 포함되어 있습니다. FastMCP 프레임워크를 활용하여 PubMed에 비동기 검색 기능을 제공합니다.
특징
PubMed 검색: 검색어를 기반으로 기사를 검색합니다.
초록 검색: PubMed에서 반환된 기사의 초록을 가져옵니다.
비동기 작업:
asyncio.to_thread를 통해 비동기 실행을 사용하여 서버 차단을 방지합니다.
Related MCP server: PubMed MCP Server
필수 조건
Python 3.8 이상
mcp[cli]
바이오파이썬
설정
저장소 복제:
지엑스피1
종속성 설치:
uv를 사용하여 필요한 패키지를 설치할 수 있습니다.
uv add -r requirements.txtEntrez 이메일 구성:
코드(
main.py)에서 유효한 이메일 주소를 설정했는지 확인하세요.Entrez.email = "give an email address"
서버 실행
다음을 실행하여 PubMed MCP 서버를 시작합니다.
uv run main.py이 명령은 uv 명령줄 도구(구성에 지정된 대로)를 사용하여 서버를 시작합니다.
MCP 클라이언트 구성
PubMed MCP 서버에 연결하도록 MCP 클라이언트를 구성하려면 다음과 같이 config.json 파일을 만들거나 업데이트하세요.
{
"mcpServers": {
"pubmed": {
"command": "C:/Users/aiany/.local/bin/uv",
"args": [
"--directory",
"C:/Users/aiany/OneDrive/Desktop/YT Video/pubmed-mcp-server",
"run",
"main.py"
]
}
}
}구성 설명
명령:
MCP 서버를 실행하는 데 사용되는 명령줄 도구의 전체 경로(이 경우uv).인수:
--directory: 서버가 위치한 작업 디렉토리를 지정합니다."C:/Users/aiany/OneDrive/Desktop/YT Video/pubmed-mcp-server": 서버의 루트 디렉토리 경로입니다."run"및"main.py": PubMed MCP 서버를 시작하는 명령 및 진입점입니다.
용법
서버가 실행 중이고 MCP 클라이언트가 구성되면 제공된 도구를 사용할 수 있습니다.
도구:
search_pubmed매개변수:
query: PubMed에 대한 검색어(기본값은"endocarditis")입니다.max_results: 검색할 최대 기사 수(기본값은10)
사용 예:
search_pubmed(query="endocarditis", max_results=10)이는 줄바꿈 문자로 구분된 기사의 초록을 담은 문자열을 반환합니다.
특허
이 프로젝트는 MIT 라이선스 에 따라 라이선스가 부여되었습니다.
특정 설정에 맞게 경로와 세부 정보를 필요에 따라 조정할 수 있습니다.
Available Tools
1 toolsearch_pubmedB
Search PubMed for articles matching the query.
Args:
query: The search term for PubMed.
max_results: Maximum number of articles to retrieve.
Returns:
A string containing the abstracts of found articles, separated by two newlines.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | ||
| query | No | endocarditis |
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 mentions the tool 'searches' and 'retrieves' articles, implying a read-only operation, but doesn't clarify if it's safe, requires authentication, has rate limits, or details the search behavior (e.g., relevance ranking, filters). The return format is described, but key behavioral traits like error handling or performance are omitted.
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 well-structured and front-loaded with the core purpose, followed by clear sections for Args and Returns. Every sentence adds value: the first states the purpose, and the others explain parameters and output. There's no redundancy or unnecessary information, making it highly efficient.
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 moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose, parameters, and return format, but lacks behavioral context like error handling, search constraints, or performance details. Without annotations or output schema, more completeness would be beneficial, but it meets basic requirements.
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 description adds basic meaning for both parameters: 'query' is described as 'the search term for PubMed,' and 'max_results' as 'maximum number of articles to retrieve.' This compensates for the 0% schema description coverage by providing semantic context. However, it lacks details on query syntax, result limits, or default behaviors, keeping it at a baseline level.
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 the tool's purpose: 'Search PubMed for articles matching the query.' This specifies the verb ('search'), resource ('PubMed articles'), and scope ('matching the query'). It's not a tautology and is unambiguous. However, with no sibling tools mentioned, there's no explicit differentiation from alternatives, preventing a perfect score.
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. It lacks context about prerequisites, limitations, or scenarios where it's most appropriate. While it implies usage for searching PubMed articles, there's no explicit when/when-not advice or mention of other tools, leaving the agent with minimal usage direction.
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.
1 tool update
v1.0.0- First observed
search_pubmed
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools. The tool 'search_pubmed' has a clear, singular purpose of searching PubMed for articles, making disambiguation trivial.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'search_pubmed' follows a clear verb_noun pattern, and there are no other tools to compare it against for inconsistency.
A single tool for a PubMed server is too few for the apparent scope. PubMed typically involves operations like fetching article details, filtering by date or author, or retrieving citations, which are missing. This minimal set limits functionality and feels incomplete for the domain.
The tool set is severely incomplete for a PubMed server. While 'search_pubmed' covers basic searching, there are obvious gaps such as retrieving full article metadata, accessing citations, filtering results, or managing user queries. This will likely cause agent failures when more complex tasks are required.
Maintenance
Related MCP Connectors
Search 36M+ PubMed biomedical articles and ClinicalTrials.gov studies.
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.
Search PubMed with precision using keyword and journal filters and smart sorting. Uncover MeSH ter…
Search biomedical literature, get article details, find related articles, and explore MeSH terms
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables searching and retrieving detailed information from PubMed articles using the NCBI Entrez API. Supports configurable search parameters including title/abstract filtering and keyword expansion to find relevant scientific publications.1-
- AlicenseBqualityDmaintenanceEnables AI assistants to search and retrieve biomedical research articles from PubMed's database of over 35 million citations, including metadata, abstracts, MeSH terms, and full-text PDFs when available.11MIT
- FlicenseNot gradedqualityCmaintenanceEnables searching PubMed's biomedical literature database and retrieving article metadata, abstracts, and full content through the E-utilities API. Supports advanced queries, batch operations, and multiple output formats with automatic rate limiting.2-
- AlicenseNot gradedqualityBmaintenanceEnables searching and retrieving biomedical literature from PubMed via the NCBI E-utilities API.225 npm1MIT