Skip to main content
Glama

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