# 参考文献功能使用示例
## 功能概述
新增的参考文献获取功能允许您通过 DOI 获取某篇文献的参考文献列表。该功能结合了 Crossref 和 Europe PMC 两个数据源,提供更完整的参考文献信息。
## 主要特性
- 🔍 **双数据源**: 使用 Crossref 获取参考文献列表,使用 Europe PMC 补全详细信息
- 📚 **信息丰富**: 包含标题、作者、期刊、年份、摘要、链接等详细信息
- 🔄 **智能去重**: 基于 DOI 自动去重,保留信息最完整的记录
- 📊 **统计信息**: 提供处理统计,包括各数据源的贡献度
- ⚡ **错误处理**: 完善的错误处理和重试机制
## 使用方法
### 1. 启动 MCP 服务器
```bash
# 使用 stdio 模式(推荐用于 Claude Desktop)
uv run --no-project python main.py server
# 使用 SSE 模式
uv run --no-project python main.py server --transport sse
# 使用 Streamable HTTP 模式
uv run --no-project python main.py server --transport streamable-http
```
### 2. 在 Claude Desktop 中配置
在 Claude Desktop 的配置文件中添加:
```json
{
"mcpServers": {
"europe-pmc": {
"command": "uv",
"args": ["run", "--no-project", "python", "/path/to/project/main.py", "server"],
"cwd": "/path/to/project"
}
}
}
```
### 3. 调用参考文献获取功能
在 Claude Desktop 中使用以下方式调用:
```
请使用 get_references_by_doi 工具获取这篇文献的参考文献:
DOI: 10.1038/nature12373
```
## 返回结果示例
```json
{
"references": [
{
"title": "Machine learning for drug discovery",
"authors": ["John Smith", "Jane Doe"],
"journal": "Nature Reviews Drug Discovery",
"year": "2020",
"doi": "10.1038/nrd.2020.001",
"pmid": "12345678",
"pmcid": "PMC7123456",
"abstract": "Machine learning has emerged as a powerful tool...",
"pmid_link": "https://pubmed.ncbi.nlm.nih.gov/12345678/",
"pmcid_link": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7123456/",
"doi_link": "https://doi.org/10.1038/nrd.2020.001",
"source": "europe_pmc"
}
],
"message": "成功获取 25 条参考文献 (Crossref + Europe PMC)",
"error": null,
"total_count": 25,
"enriched_count": 18,
"processing_info": {
"crossref_count": 25,
"europe_pmc_count": 18,
"enriched_count": 18,
"total_processed": 25
}
}
```
## 字段说明
### 参考文献对象字段
- **title**: 文献标题
- **authors**: 作者列表
- **journal**: 期刊名称
- **year**: 发表年份
- **doi**: DOI 标识符
- **pmid**: PubMed ID
- **pmcid**: PMC ID
- **abstract**: 摘要(如果可用)
- **pmid_link**: PubMed 链接
- **pmcid_link**: PMC 链接
- **doi_link**: DOI 链接
- **source**: 数据源标识(crossref 或 europe_pmc)
### 返回结果字段
- **references**: 参考文献列表
- **message**: 处理结果消息
- **error**: 错误信息(如果有)
- **total_count**: 总参考文献数量
- **enriched_count**: 使用 Europe PMC 补全的数量
- **processing_info**: 详细的处理统计信息
## 常见用例
### 1. 学术研究
```
我在研究机器学习在药物发现中的应用,请帮我获取这篇综述的参考文献:
DOI: 10.1038/s41573-019-0024-5
```
### 2. 文献综述
```
我需要了解这篇论文引用了哪些文献,请获取其参考文献列表:
DOI: 10.1126/science.aaw9285
```
### 3. 相关研究发现
```
请帮我获取这篇重要论文的参考文献,我想找到该领域的其他重要工作:
DOI: 10.1038/nature25778
```
## 注意事项
1. **DOI 格式**: 确保提供的 DOI 格式正确,可以包含或不包含 "https://doi.org/" 前缀
2. **网络连接**: 功能需要稳定的网络连接来访问 Crossref 和 Europe PMC API
3. **处理时间**: 由于需要查询多个数据源,处理时间可能较长(通常 30-60 秒)
4. **结果完整性**: 某些参考文献可能无法从 Europe PMC 获取完整信息,会保留 Crossref 的基本信息
## 错误处理
常见错误及解决方案:
- **"DOI不能为空"**: 请提供有效的 DOI
- **"Crossref 查询失败"**: 检查网络连接或 DOI 是否正确
- **"未找到参考文献"**: 该文献可能没有公开的参考文献列表
- **"获取参考文献失败"**: 网络问题或 API 临时不可用
## 技术实现
该功能的技术实现包括:
1. **Crossref API**: 获取参考文献基本列表
2. **Europe PMC API**: 补全详细信息(摘要、PMID、PMCID等)
3. **信息合并**: 智能合并两个数据源的信息
4. **去重处理**: 基于 DOI 的去重算法
5. **错误恢复**: 完善的错误处理和重试机制
## 性能优化
- 使用会话复用减少连接开销
- 批量处理 API 请求
- 智能的请求频率控制
- 缓存机制(未来版本)
这个功能为学术研究和文献分析提供了强大的工具,帮助用户快速获取和分析参考文献信息。