PubMed医学论文搜索服务

一个基于Model Context Protocol(MCP)的服务,用于分析医学相关问题,从PubMed搜索相关论文,并根据相关性和期刊影响因子提供EndNote格式的结果。

  • by YOUNGSUK81
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 youngsuk81/pubmed_search

使用说明

PubMed搜索MCP服务器

作为Model Context Protocol(MCP)服务器,我们分析有关医学主题的问题,在PubMed上搜索相关论文,并根据关联性和期刊Impact Factor以EndNote格式提供结果。

主要功能

  • 分析搜索查询:分析医学相关问题,通过PubMed API检索医学论文
  • 关联性分析:分析论文的标题、摘要、MeSH用语等,筛选出与问题关联度最高的论文
  • 基于Impact Factor的排序:根据期刊的Impact Factor对论文进行排序,以提供高影响力的研究
  • EndNote格式输出:将筛选的论文以EndNote兼容格式输出,便于文献管理
  • 结果分类:通过三个文件提供结果
    • 关联度高的论文列表
    • Impact Factor较高的论文列表
    • Impact Factor数据库中不存在的期刊论文列表

工具提示

  • pubmed_search:在PubMed上搜索和分析医学论文

    • 输入:
      • query (string,必需):医学问题或搜索查询
      • maxResults (number,Select,默认值:10):要返回的最大结果数
      • outputDir (string,选择,默认值:“./output”):保存结果文件的目录路径
  • load_impact_factor:加载Impact Factor数据文件

    • 输入:
      • filePath (string,必需):Impact Factor数据文件路径

安装和设置

必备条件

  • Node.js 16或更高版本
  • NCBI API키 (무료로 발급 가능: https://ncbiinsights.ncbi.nlm.nih.gov/2017/11/02/new-api-keys-for-the-e-utilities/)
  • Impact Factor数据JSON文件

Impact Factor数据转换

将PDF格式的Impact Factor数据转换为JSON:

# 변환 스크립트 실행
node impact-factor-converter.js impact-factor.pdf impact_factor_data.json

设置

# 저장소 클론
git clone https://github.com/YOUNGSUK81/Pubmed_Search.git
cd Pubmed_Search

# 의존성 설치
npm install

# 빌드
npm run build

设置环境变量

# NCBI API 키 설정
export NCBI_API_KEY=your_api_key_here

# Impact Factor 데이터 경로 설정(선택 사항)
export IMPACT_FACTOR_PATH=./path/to/impact_factor_data.json

# 출력 디렉터리 설정(선택 사항)
export OUTPUT_DIR=./output

使用方法

与Claude Desktop一起使用

Claude Desktop配置文件(claude_desktop_config.json)添加以下内容:

{
  "mcpServers": {
    "pubmed-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-pubmed-search"],
      "env": {
        "NCBI_API_KEY": "9585a3fc07ce86e32a3f42169e2c571a5708",
        "IMPACT_FACTOR_PATH": "./impact_factor_data.json",
        "OUTPUT_DIR": "./output"
      }
    }
  }
}

使用Docker

{
  "mcpServers": {
    "pubmed-search": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "NCBI_API_KEY=9585a3fc07ce86e32a3f42169e2c571a5708",
        "-v",
        "/path/to/impact_factor_data.json:/data/impact_factor_data.json",
        "-v",
        "/path/to/output:/data/output",
        "mcp/pubmed-search"
      ]
    }
  }
}

与VS Code一起使用

VS Code配置文件(.vscode/settings.json 或者在User Settings)中添加以下内容:

{
  "mcp": {
    "servers": {
      "pubmed-search": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-pubmed-search"],
        "env": {
          "NCBI_API_KEY": "9585a3fc07ce86e32a3f42169e2c571a5708",
          "IMPACT_FACTOR_PATH": "./impact_factor_data.json",
          "OUTPUT_DIR": "./output"
        }
      }
    }
  }
}

坞站构建

要直接构建坞站映像,请:

docker build -t mcp/pubmed-search .

目录结构

pubmed-search-mcp-server/
├── package.json                   # 프로젝트 의존성 정보
├── tsconfig.json                  # TypeScript 설정
├── Dockerfile                     # Docker 빌드 설정
├── README.md                      # 프로젝트 문서
├── impact-factor-converter.js     # PDF → JSON 변환 스크립트
├── impact_factor_data.json        # Impact Factor 데이터 (생성됨)
├── src/
│   ├── index.ts                   # 메인 서버 파일
│   └── pubmed-service.ts          # PubMed API 및 분석 서비스
└── output/                        # 결과 출력 디렉터리 (생성됨)
    ├── relevance-results.txt      # 연관성 높은 논문 결과
    ├── impact-factor-results.txt  # Impact Factor 높은 논문 결과
    └── unknown-impact-factor.txt  # Impact Factor 미상 논문 목록

开发指南

扩展项目时的注意事项:

  1. pubmed-service.ts:核心模块,包括PubMed API请求和结果处理逻辑
  2. index.ts:MCP服务器初始化和工具定义,请求处理模块
  3. impact-actor-converter.js:Impact Factor数据转换脚本(PDF→JSON)

添加新功能

要添加新功能或工具,请:

  1. pubmed-service.ts实现所需的函数
  2. index.ts的 ListToolsRequestSchema 向处理程序添加工具定义
  3. CallToolRequestSchema 将工具处理逻辑添加到处理程序

许可证

根据MIT许可证分发。有关详细信息,请参阅LICENSE文件。