学术论文搜索服务

一个基于模型上下文协议(MCP)的服务器,提供从多个来源搜索和检索学术论文信息的功能,适用于AI模型和客户端的集成。

  • by afrise
  • Python
  • 本地部署
  • 118 星标
  • 更新于
在 GitHub 查看 afrise/academic-search-mcp-server

使用说明

学术论文搜索MCP服务器

A. 模型上下文协议(MCP) 能够从多个来源搜索和检索学术论文信息的服务器。

服务器为LLM提供:

  • 实时学术论文搜索功能
  • 获取纸质元数据和摘要
  • 能够检索可用的全文内容
  • 遵循MCP规范的结构化数据响应

虽然主要设计用于与Anthropic的Claude Desktop客户端集成,但MCP规范允许与其他支持工具/功能调用功能的人工智能模型和客户端(例如OpenAI的API)进行潜在兼容性。

备注:该软件正在积极开发中。特性和功能可能会发生变化。

特性

此服务器公开以下工具:

  • search_papers:跨多个来源搜索学术论文

    • 参数:
      • query (str):搜索查询文本
      • limit (int,可选):返回的最大结果数(默认值:10)
    • 返回:包含纸张详细信息的格式化字符串
  • fetch_paper_details:检索特定论文的详细信息

    • 参数:
      • paper_id (str):论文标识符(DOI或语义学者ID)
      • source (str,可选):数据源(“crossref”或“semantic_scholar”,默认值:“crossref“)
    • 返回:包含全面论文元数据的格式化字符串,包括:
      • 标题、作者、年份、DOI
      • 地点、开放访问状态、PDF URL(仅限语义学者)
      • 摘要和TL;DR摘要(可用时)
  • search_by_topic:使用可选的日期范围过滤器按主题搜索论文

    • 参数:
      • topic (str):搜索查询文本(限制为300个字符)
      • year_start (int,可选):日期范围的起始年份
      • year_end (int,可选):日期范围的结束年份
      • limit (int,可选):返回的最大结果数(默认值:10)
    • 返回:包含搜索结果的格式化字符串,包括:
      • 论文标题、作者和年份
      • 摘要和TL;DR摘要(如果可用)
      • 场地和开放获取信息

设置

通过Smithery安装

通过以下方式自动安装克劳德桌面学术论文搜索服务器 史密瑟里:

npx -y @smithery/cli install @afrise/academic-search-mcp-server --client claude

笔记 这种方法基本上没有经过测试,因为他们的服务器似乎遇到了问题。您可以按照独立的说明进行操作,直到smithery得到修复。

通过uv安装(手动安装):

  1. 安装依赖项:
uv add "mcp[cli]" httpx
  1. 在您的环境中设置所需的API密钥或 .env 文件:
#  These are not actually implemented
SEMANTIC_SCHOLAR_API_KEY=your_key_here 
CROSSREF_API_KEY=your_key_here  # Optional but recommended
  1. 运行服务器:
uv run server.py

使用Claude Desktop

  1. 将服务器添加到Claude Desktop配置中(claude_desktop_config.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"
      }
    }
  }
}
  1. 重新启动克劳德桌面

发展

此服务器是使用以下方式构建的:

  • Python MCP SDK
  • FastMCP简化了服务器实施
  • 用于API请求的httpx

API来源

  • 语义学者API
  • 交叉引用API

许可证

本项目根据GNU Affero通用公共许可证v3.0(AGPL-3.0)获得许可。此许可证确保:

  • 您可以自由使用、修改和分发此软件
  • 任何修改都必须在同一许可证下开源
  • 任何使用此软件提供网络服务的人都必须提供源代码
  • 允许商业使用,但软件和任何衍生产品必须保持免费和开源

请参阅 许可证 完整许可证文本的文件。

贡献

欢迎投稿!以下是您可以提供帮助的方式:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

请注意:

  • 遵循现有的代码样式和约定
  • 为任何新功能添加测试
  • 根据需要更新文档
  • 确保您的更改符合AGPL-3.0许可条款

通过参与此项目,您同意您的贡献将根据AGPL-3.0许可证获得许可。