学术文献检索服务

一个基于Google Scholar的学术文献和作者信息检索服务,提供搜索、下载PDF等功能。

  • by hz1ulqu01gmnZH4
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 hz1ulqu01gmnZH4/google-scholar-mcp

使用说明

Google Scholar MCP服务器

一个模型上下文协议(MCP)服务器,提供工具用于从Google学术中搜索和检索学术出版物及作者信息。该服务器是用……构建的(注:原文在此处截断,未给出具体构建技术或语言,故翻译时保留此开放性) FastMCP 并且 学术的;学者的。

特点/功能

这个MCP服务器提供了以下工具,用于与Google学术进行交互:

  • 搜索出版物通过查询搜索学术出版物
  • 搜索作者搜索作者并获取他们的完整资料
  • 获取出版物详情获取特定出版物的详细信息
  • 根据ID获取作者通过Google学术ID检索作者信息
  • 按关键词搜索按研究兴趣/关键词查找作者
  • 下载PDF文件从给定的URL下载PDF文件(例如,从eprint_url)
  • 搜索并下载PDF文件搜索一篇论文,并在可用的情况下自动下载其PDF文件

安装

使用紫外线(推荐)

# Install dependencies
uv pip install -e .

# Or install directly
uv pip install fastmcp scholarly free-proxy

使用 pip

pip install fastmcp scholarly free-proxy

使用方法

运行服务器

STDIO传输(用于本地MCP客户端,如Claude Desktop)

python server.py

或者使用紫外线:

uv run server.py

HTTP传输(用于基于Web的集成)

python server.py --transport http --port 8000

使用Claude Desktop进行配置

将此添加到您的Claude桌面MCP设置中(推荐):

{
  "mcpServers": {
    "google-scholar": {
      "command": "/path/to/google-scholar-mcp/.venv/bin/python",
      "args": [
        "/path/to/google-scholar-mcp/server.py"
      ]
    }
  }
}

注: 使用虚拟环境中的Python的绝对路径,以确保所有依赖项均可使用。

可用工具

1. 搜索出版物

在谷歌学术上搜索学术出版物。

参数:

  • query (字符串):搜索查询(例如,“机器学习变换器”)
  • max_results (int, 可选): 要返回的最大结果数(默认:10,最大:50)

示例:

{
  "query": "deep learning for computer vision",
  "max_results": 5
}

返回值: 包含标题、作者、发表地点、年份、引用次数、摘要及网址的出版物列表。

2. 搜索作者

搜索作者并获取其完整资料。

参数:

  • author_name (字符串):要搜索的作者姓名

示例:

{
  "author_name": "Geoffrey Hinton"
}

返回: 作者简介,包括姓名、所属机构、引用指标(h指数、i10指数)、研究兴趣及近期发表的论文。

3. 获取出版物详细信息

获取特定出版物的详细信息。

参数:

  • title (字符串):出版物的标题

示例:

{
  "title": "Attention Is All You Need"
}

返回: 详细的出版信息,包括完整摘要、BibTeX引文和作者ID。

4. 通过ID获取作者

通过作者的Google学术ID检索作者信息。

参数:

  • scholar_id (字符串):谷歌学术ID

示例:

{
  "scholar_id": "JicYPdAAAAAJ"
}

返回值: 完整的作者资料,包括合著者及发表作品。

5. 按关键词搜索

按研究兴趣或关键词查找作者。

参数:

  • keyword (字符串):研究关键词(例如,“量子计算”)
  • max_results (int, 可选):最大结果数(默认:10,最大:20)

示例:

{
  "keyword": "natural language processing",
  "max_results": 10
}

返回值: 具有相似研究兴趣的作者名单。

6. 下载PDF文件

从给定的URL下载PDF文件。

参数:

  • pdf_url (字符串):要下载的PDF文件的URL
  • filename (字符串,可选):自定义文件名(不含扩展名)

示例:

{
  "pdf_url": "https://arxiv.org/pdf/1706.03762.pdf",
  "filename": "attention_is_all_you_need"
}

返回: 下载状态、文件路径、文件名以及文件大小信息。

注: PDF文件已保存至 pdfs/ 项目文件夹中的目录。

7. 搜索并下载PDF文件

搜索出版物,如果可获取免费版本,则自动下载其PDF文件。

参数:

  • query (字符串):搜索查询或论文标题
  • max_attempts (int, 可选):要检查的搜索结果数量(默认:5,最大:10)

示例:

{
  "query": "Attention Is All You Need",
  "max_attempts": 5
}

返回: 出版信息及下载状态。若找到免费PDF,将自动下载。

注: 这个工具用于搜索那些PDF版本公开可用的论文(通过 eprint_url)。 并非所有论文都有免费的PDF版本可供获取。

PDF下载

服务器可以从以下来源免费下载PDF文件:

  • arXiv预印本
  • 开放获取存储库
  • 作者上传的版本
  • 机构知识库

重要提示:

  • 仅下载可免费获取的PDF文件(尊重版权)
  • PDF文件已保存至 pdfs/ 目录
  • 并非所有在谷歌学术(Google Scholar)上的论文都提供免费的PDF下载
  • 某些网址可能需要额外的访问权限

速率限制和代理

Google Scholar 实施了速率限制。服务器提供了可选的代理支持,以帮助避免达到速率限制:

  1. 免费代理服务器 (内置):取消注释 setup_proxy() 在里面 server.py 以启用自动免费代理轮换。

  2. 自定义代理你可以通过修改来配置你自己的代理 setup_proxy() 函数在 server.py。

注: 免费代理可能不可靠。如需用于生产环境,请考虑使用付费代理服务。

发展

运行测试

uv run pytest

项目结构

google-scholar-mcp/
├── server.py           # Main MCP server implementation
├── pyproject.toml      # Project dependencies and metadata
├── README.md           # This file
├── cache/              # Cache directory (auto-generated)
└── pdfs/               # Downloaded PDFs (auto-generated)

局限性

  • Google Scholar可能会对请求进行速率限制。大量使用时请使用代理。
  • 根据Scholar(学术搜索引擎)的可用性,部分出版数据可能不完整。
  • 学术图书馆依赖于网页抓取技术,因此如果Google学术改变了其结构,它可能会失效。

做出贡献

欢迎贡献!请随时提交问题或拉取请求。

许可证

WTFPL(做你想做的任何事公共许可证)——随你便,想怎么做就怎么做。

致谢

故障排除

“未找到名为 'fastmcp' 的模块”或类似错误

确保所有依赖项都已安装:

uv pip install -e .

速率限制错误

如果你遇到速率限制:

  1. 通过取消注释来启用代理支持 setup_proxy() 在 server.py
  2. 在请求之间添加延迟
  3. 考虑使用付费代理服务

未找到作者/出版物

并非所有作者或出版物都能在Google学术上找到。请尝试使用不同的搜索查询,或先在Google学术网站上检查确切的标题/名称。