学术论文搜索 MCP 服务器,用于 Claude 桌面集成。允许 Claude 访问来自 Semantic Scholar 和 Crossref 的数据。
概述
学术论文搜索 MCP 服务器
一个 模型上下文协议 (MCP) 服务器,能够从多个来源搜索和检索学术论文信息。
该服务器为大型语言模型提供:
- 实时学术论文搜索功能
- 访问论文元数据和摘要
- 在可用时检索全文内容
- 遵循 MCP 规范的结构化数据响应
虽然主要设计用于与 Anthropic 的 Claude Desktop 客户端集成,但 MCP 规范允许与其他支持工具/函数调用功能的 AI 模型和客户端(例如 OpenAI 的 API)兼容。
注意:此软件正在积极开发中。功能和功能可能会发生变化。
功能
此服务器公开以下工具:
-
search_papers
:跨多个来源搜索学术论文- 参数:
query
(str):搜索查询文本limit
(int, 可选):返回的最大结果数量(默认:10)
- 返回:包含论文详细信息的格式化字符串
- 参数:
-
fetch_paper_details
:检索特定论文的详细信息- 参数:
paper_id
(str):论文标识符(DOI 或 Semantic Scholar ID)source
(str, 可选):数据源("crossref" 或 "semantic_scholar",默认:"crossref")
- 返回:包含全面论文元数据的格式化字符串,包括:
- 标题、作者、年份、DOI
- 发表地点、开放访问状态、PDF URL(仅 Semantic Scholar)
- 摘要和 TL;DR 概要(如果有)
- 参数:
-
search_by_topic
:按主题搜索论文,并可选择日期范围过滤- 参数:
topic
(str):搜索查询文本(限制在 300 个字符内)year_start
(int, 可选):日期范围的起始年份year_end
(int, 可选):日期范围的结束年份limit
(int, 可选):返回的最大结果数量(默认:10)
- 返回:包含搜索结果的格式化字符串,包括:
- 论文标题、作者和年份
- 摘要和 TL;DR 概要(如果有)
- 发表地点和开放访问信息
- 参数:
设置
通过 Smithery 安装
要通过 Smithery 自动安装 Academic Paper Search Server for Claude Desktop:
bash
npx -y @smithery/cli install @afrise/academic-search-mcp-server --client claude
注意 此方法尚未经过充分测试,因为他们的服务器似乎存在问题。您可以按照独立安装说明进行操作,直到 Smithery 修复问题。
通过 uv 手动安装:
- 安装依赖项:
sh
uv add "mcp[cli]" httpx
- 在环境或
.env
文件中设置所需的 API 密钥:
sh
# 这些实际上尚未实现
SEMANTIC_SCHOLAR_API_KEY=your_key_here
CROSSREF_API_KEY=your_key_here # 可选但推荐
- 运行服务器:
sh
uv run server.py
与 Claude Desktop 一起使用
- 将服务器添加到您的 Claude Desktop 配置文件 (
claude_desktop_config.json
) 中:
json
{
"mcpServers": {
"academic-search": {
"command": "uv",
"args": ["run ", "/path/to/server/server.py"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "your_key_here",
"CROSSREF_API_KEY": "your_key_here"
}
}
}
}
- 重启 Claude Desktop
开发
此服务器使用以下技术构建:
- Python MCP SDK
- FastMCP 用于简化服务器实现
- httpx 用于 API 请求
API 来源
- Semantic Scholar API
- Crossref API
许可证
此项目根据 GNU Affero General Public License v3.0 (AGPL-3.0) 许可。此许可证确保:
- 您可以自由使用、修改和分发此软件
- 任何修改必须以相同的许可证开源
- 任何人使用此软件提供网络服务时必须公开源代码
- 允许商业使用,但软件及其任何衍生作品必须保持免费和开源
请参阅 LICENSE 文件以获取完整的许可证文本。
贡献
欢迎贡献!以下是您如何帮助的方法:
- 分叉仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature
) - 提交更改 (
git commit -m 'Add amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开 Pull Request
请注意:
- 遵循现有的代码风格和约定
- 为任何新功能添加测试
- 根据需要更新文档
- 确保您的更改遵守 AGPL-3.0 许可条款
通过为此项目贡献,您同意您的贡献将根据 AGPL-3.0 许可证进行许可。