Skip to main content
Glama
AIAnytime

pubmed-mcp-server

by AIAnytime

PubMed MCP 服务器

本仓库包含一个 MCP 服务器,该服务器使用 BioPython 的 Entrez 模块在 PubMed 数据库中搜索文章摘要。它利用 FastMCP 框架为 PubMed 提供异步搜索功能。

特征

  • **搜索 PubMed:**根据搜索词查询文章。

  • **检索摘要:**获取从 PubMed 返回的文章摘要。

  • **异步操作:**使用异步执行(通过asyncio.to_thread )来避免阻塞服务器。

Related MCP server: PubMed MCP Server

先决条件

  • Python 3.8 或更高版本

  • mcp[cli]

  • BioPython

设置

  1. 克隆存储库:

    git clone https://github.com/AIAnytime/MCP-Servers
    cd pubmed-mcp-server
  2. 安装依赖项:

    您可以使用 uv 安装所需的软件包:

    uv add -r requirements.txt
  3. 配置 Entrez 电子邮件:

    确保您已在代码中(在main.py中)设置了有效的电子邮件地址:

    Entrez.email = "give an email address"

运行服务器

通过运行以下命令启动 PubMed MCP 服务器:

uv run main.py

此命令使用uv命令行工具(如您的配置中所指定)启动服务器。

配置 MCP 客户端

要配置您的 MCP 客户端以连接到 PubMed 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 tool
search_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.
ParametersJSON Schema
NameRequiredDescriptionDefault
max_resultsNo
queryNoendocarditis

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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. 1 tool updatev1.0.0
    • First observedsearch_pubmed

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness2/5

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

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Enables 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
    -
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    1
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
    -