Skip to main content
Glama
zongmin-yu

Semantic Scholar MCP Server

语义学者 MCP 服务器

铁匠徽章

针对 Semantic Scholar API 的 FastMCP 服务器实现,提供对学术论文数据、作者信息和引用网络的全面访问。

项目结构

该项目已重构为模块化结构,以提高可维护性:

semantic-scholar-server/
├── semantic_scholar/            # Main package
│   ├── __init__.py             # Package initialization
│   ├── server.py               # Server setup and main functionality
│   ├── mcp.py                  # Centralized FastMCP instance definition
│   ├── config.py               # Configuration classes
│   ├── utils/                  # Utility modules
│   │   ├── __init__.py
│   │   ├── errors.py           # Error handling
│   │   └── http.py             # HTTP client and rate limiting
│   ├── api/                    # API endpoints
│       ├── __init__.py
│       ├── papers.py           # Paper-related endpoints
│       ├── authors.py          # Author-related endpoints
│       └── recommendations.py  # Recommendation endpoints
├── run.py                      # Entry point script

此结构:

  • 将关注点划分为逻辑模块

  • 使代码库更易于理解和维护

  • 允许更好的测试和未来的扩展

  • 将相关功能分组在一起

  • 集中 FastMCP 实例以避免循环导入

Related MCP server: Semantic Scholar MCP Server

特征

  • 论文检索与发现

    • 具有高级过滤功能的全文搜索

    • 基于标题的论文匹配

    • 论文推荐(单篇和多篇论文)

    • 批量检索论文详情

    • 具有排名策略的高级搜索

  • 引文分析

    • 引文网络探索

    • 参考追踪

    • 引用上下文和影响分析

  • 作者信息

    • 作者搜索和个人资料详情

    • 出版历史

    • 批量检索作者详细信息

  • 高级功能

    • 具有多种排名策略的复杂搜索

    • 可自定义的字段选择

    • 高效的批量操作

    • 速率限制合规性

    • 支持经过身份验证和未经身份验证的访问

    • 优雅关机和错误处理

    • 连接池和资源管理

系统要求

  • Python 3.8+

  • FastMCP 框架

  • API 密钥的环境变量(可选)

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 Semantic Scholar MCP Server:

npx -y @smithery/cli install semantic-scholar-fastmcp-mcp-server --client claude

手动安装

  1. 克隆存储库:

git clone https://github.com/YUZongmin/semantic-scholar-fastmcp-mcp-server.git
cd semantic-scholar-server
  1. 安装 FastMCP 和其他依赖项: https://github.com/jlowin/fastmcp

  2. 配置 FastMCP:

对于 Claude Desktop 用户,您需要在 FastMCP 配置文件中配置服务器。将以下内容添加到您的配置中(通常在~/.config/claude-desktop/config.json中):

{
  "mcps": {
    "Semantic Scholar Server": {
      "command": "/path/to/your/venv/bin/fastmcp",
      "args": [
        "run",
        "/path/to/your/semantic-scholar-server/run.py"
      ],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "your-api-key-here"  # Optional
      }
    }
  }
}

请确保:

  • /path/to/your/venv/bin/fastmcp替换为 FastMCP 安装的实际路径

  • /path/to/your/semantic-scholar-server/run.py替换为机器上 run.py 的实际路径

  • 如果您有 Semantic Scholar API 密钥,请将其添加到env部分。如果没有,您可以完全删除env部分。

  1. 开始使用服务器:

现在,您的 Claude Desktop 实例即可使用该服务器。无需手动运行任何命令 - Claude 会在需要时自动启动并管理服务器进程。

API 密钥(可选)

为了获得更高的速率限制和更好的性能:

  1. Semantic Scholar API获取 API 密钥

  2. 将其添加到 FastMCP 配置中,如上图所示,在env部分

如果未提供 API 密钥,服务器将使用速率限制较低的未经身份验证的访问。

配置

环境变量

  • SEMANTIC_SCHOLAR_API_KEY :您的 Semantic Scholar API 密钥(可选)

速率限制

服务器自动调整适当的速率限制:

使用 API 密钥

  • 搜索、批处理和推荐端点:每秒 1 个请求

  • 其他端点:每秒 10 个请求

没有 API 密钥

  • 所有端点:每 5 分钟 100 个请求

  • 请求超时时间更长

可用的 MCP 工具

注意:所有工具均与Semantic Scholar API 官方文档保持一致。请参阅官方文档,了解详细的字段规范和最新更新。

论文搜索工具

  • paper_relevance_search :使用相关性排名搜索论文

    • 支持全面的查询参数,包括年份范围和引用计数过滤器

    • 返回具有可自定义字段的分页结果

  • paper_bulk_search :批量论文搜索,带有排序选项

    • 与相关性搜索类似,但针对更大的结果集进行了优化

    • 支持按引用次数、出版日期等排序。

  • paper_title_search :按精确标题匹配查找论文

    • 当你知道标题时,有助于查找特定论文

    • 返回具有可自定义字段的详细论文信息

  • paper_details :获取有关特定论文的全面详细信息

    • 接受各种论文 ID 格式(S2 ID、DOI、ArXiv 等)

    • 返回带有嵌套字段支持的详细论文元数据

  • paper_batch_details :高效检索多篇论文的详细信息

    • 每个请求最多接受 1000 个论文 ID

    • 支持与单张纸质明细相同的ID格式和字段

引用工具

  • paper_citations :获取引用特定论文的论文

    • 返回引用论文的分页列表

    • 包含可用的引用上下文

    • 支持字段自定义和排序

  • paper_references :获取特定论文引用的论文

    • 返回参考论文的分页列表

    • 包含参考上下文(如有)

    • 支持字段自定义和排序

作者工具

  • author_search :按姓名搜索作者

    • 返回具有可自定义字段的分页结果

    • 包括附属机构和出版物数量

  • author_details :获取作者的详细信息

    • 返回全面的作者元数据

    • 包括 H 指数和引用计数等指标

  • author_papers :获取作者撰写的论文

    • 返回作者出版物的分页列表

    • 支持字段自定义和排序

  • author_batch_details :获取多个作者的详细信息

    • 高效检索多达 1000 位作者的信息

    • 返回与单个作者详细信息相同的字段

推荐工具

  • paper_recommendations_single :根据一篇论文获取建议

    • 根据内容和引用模式返回类似的论文

    • 支持推荐论文字段自定义

  • paper_recommendations_multi :根据多篇论文获取推荐

    • 接受正反例论文

    • 返回与正面例子相似、与负面例子不相似的论文

使用示例

基本论文搜索

results = await paper_relevance_search(
    context,
    query="machine learning",
    year="2020-2024",
    min_citation_count=50,
    fields=["title", "abstract", "authors"]
)

论文推荐

# Single paper recommendation
recommendations = await paper_recommendations_single(
    context,
    paper_id="649def34f8be52c8b66281af98ae884c09aef38b",
    fields="title,authors,year"
)

# Multi-paper recommendation
recommendations = await paper_recommendations_multi(
    context,
    positive_paper_ids=["649def34f8be52c8b66281af98ae884c09aef38b", "ARXIV:2106.15928"],
    negative_paper_ids=["ArXiv:1805.02262"],
    fields="title,abstract,authors"
)

批量操作

# Get details for multiple papers
papers = await paper_batch_details(
    context,
    paper_ids=["649def34f8be52c8b66281af98ae884c09aef38b", "ARXIV:2106.15928"],
    fields="title,authors,year,citations"
)

# Get details for multiple authors
authors = await author_batch_details(
    context,
    author_ids=["1741101", "1780531"],
    fields="name,hIndex,citationCount,paperCount"
)

错误处理

服务器提供标准化的错误响应:

{
    "error": {
        "type": "error_type",  # rate_limit, api_error, validation, timeout
        "message": "Error description",
        "details": {
            # Additional context
            "authenticated": true/false  # Indicates if request was authenticated
        }
    }
}
-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zongmin-yu/semantic-scholar-fastmcp-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server