mcpField
P
pubmed-search

pubmed-search

github.com/yorkeccak生产力64707 次安装3 周前更新
代码仓库

关于 pubmed-search

pubmed-search 是面向研究者和临床人员的技能,可用自然语言检索 PubMed 生物医学文献。它通过 Valyu 语义搜索和命令行返回论文全文及图片链接。

主要功能

  1. 01自然语言语义搜索
  2. 02检索 PubMed 数据库
  3. 03返回论文全文
  4. 04提供图表和图片链接
  5. 05通过命令行输出 JSON

适用场景

  1. 01为文献综述查找论文
  2. 02研究药物靶点
  3. 03查找临床试验结果
  4. 04研究基因功能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yorkeccak/scientific-skills --skill pubmed-search

安装后在 Claude Code 中输入/pubmed-search确认已加载。

附带文件scripts/searchscripts/search.mjs

详细介绍

PubMed 搜索

使用 Valyu 的语义搜索 API,通过自然语言查询搜索 PubMed 的完整生物医学文献数据库。

此技能的优势

  • 无需解析 API 参数:直接传入自然语言查询即可,无需构造复杂的搜索参数
  • 语义搜索:理解查询的含义,而不只是匹配关键词
  • 全文访问:返回完整的文章内容,而不只是摘要
  • 图片链接:包含论文中的图表和图片
  • 全面覆盖:可访问 PubMed 中所有生物医学文献

要求

  1. Node.js 18+(使用内置的 fetch)
  2. Valyu API 密钥,获取地址:https://platform.valyu.ai(含 $10 免费额度)

重要:脚本路径解析

本文档中的 scripts/search 命令相对于此技能的安装目录。

运行任何命令之前,请先定位脚本:

PUBMED_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "*/pubmed-search/*/scripts/*" -type f 2>/dev/null | head -1)

然后在所有命令中使用完整路径:

$PUBMED_SCRIPT "CRISPR gene editing" 15

API 密钥设置流程

运行搜索并收到 "setup_required": true 时,请按以下流程操作:

  1. 向用户索取 API 密钥: “要搜索 PubMed,我需要你的 Valyu API 密钥。你可以在 https://platform.valyu.ai 免费获取一个(含 $10 额度)。”

  2. 用户提供密钥后,运行:

    scripts/search setup <api-key>
    
  3. 重试原始搜索。

流程示例:
User: Search PubMed for CAR-T cell therapy advances
→ Response: {"success": false, "setup_required": true, ...}
→ Claude asks: "Please provide your Valyu API key from https://platform.valyu.ai"
→ User: "val_abc123..."
→ Claude runs: scripts/search setup val_abc123...
→ Response: {"success": true, "type": "setup", ...}
→ Claude retries: scripts/search "CAR-T cell therapy advances" 10
→ Success!

用法

基本搜索
scripts/search "your natural language query" [maxResults]
示例
# Search for recent COVID-19 research
scripts/search "COVID-19 vaccine efficacy studies" 15

# Find papers on a specific gene
scripts/search "BRCA1 mutations and breast cancer risk" 20

# Search for treatment approaches
scripts/search "immunotherapy for melanoma clinical trials" 10

# Drug mechanism research
scripts/search "mechanism of action of metformin in type 2 diabetes" 12
设置命令
scripts/search setup <api-key>

输出格式

{
  "success": true,
  "type": "pubmed_search",
  "query": "CRISPR gene editing",
  "result_count": 10,
  "results": [
    {
      "title": "Article Title",
      "url": "https://pubmed.ncbi.nlm.nih.gov/...",
      "content": "Full article text with figures...",
      "source": "pubmed",
      "relevance_score": 0.95,
      "images": ["https://example.com/figure1.jpg"]
    }
  ],
  "cost": 0.025
}

处理结果

使用 jq
# Get article titles
scripts/search "query" 10 | jq -r '.results[].title'

# Get URLs
scripts/search "query" 10 | jq -r '.results[].url'

# Extract full content
scripts/search "query" 10 | jq -r '.results[].content'

常见用例

文献综述
# Find all papers on a topic
scripts/search "mechanisms of aging in humans" 50
药物发现
# Search for drug targets
scripts/search "novel targets for Alzheimer's disease treatment" 20
临床研究
# Find clinical trial results
scripts/search "phase 3 trials for rheumatoid arthritis biologics" 15
基因功能
# Research gene function
scripts/search "role of TP53 in cancer development" 25

错误处理

所有命令都会返回包含 success 字段的 JSON:

{
  "success": false,
  "error": "Error message"
}

退出代码:

  • 0 - 成功
  • 1 - 错误(查看 JSON 了解详情)

API 端点

  • 基础 URL:https://api.valyu.ai/v1
  • 端点:/search
  • 身份验证:X-API-Key 请求头

架构

scripts/
├── search          # Bash wrapper
└── search.mjs      # Node.js CLI

直接使用 Node.js 内置的 fetch() 调用 API,无需任何外部依赖。

添加到你的项目

如果你正在构建 AI 项目,并希望将 PubMed 搜索直接集成到应用程序中,请使用 Valyu SDK:

Python 集成
from valyu import Valyu

client = Valyu(api_key="your-api-key")

response = client.search(
    query="immunotherapy for melanoma",
    included_sources=["valyu/valyu-pubmed"],
    max_results=20
)

for result in response["results"]:
    print(f"Title: {result['title']}")
    print(f"URL: {result['url']}")
    print(f"Content: {result['content'][:500]}...")
TypeScript 集成
import { Valyu } from "valyu-js";

const client = new Valyu("your-api-key");

const response = await client.search({
  query: "immunotherapy for melanoma",
  includedSources: ["valyu/valyu-pubmed"],
  maxResults: 20
});

response.results.forEach((result) => {
  console.log(`Title: ${result.title}`);
  console.log(`URL: ${result.url}`);
  console.log(`Content: ${result.content.substring(0, 500)}...`);
});

有关完整的集成示例和 SDK 参考,请参阅 Valyu 文档。

评论

支持 Markdown