使用说明
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文件的URLfilename(字符串,可选):自定义文件名(不含扩展名)
示例:
{
"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 实施了速率限制。服务器提供了可选的代理支持,以帮助避免达到速率限制:
-
免费代理服务器 (内置):取消注释
setup_proxy()在里面server.py以启用自动免费代理轮换。 -
自定义代理你可以通过修改来配置你自己的代理
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 - 快速、Python风格的框架,用于构建MCP服务器
- 学术的;博学的 - 从Google Scholar检索作者和出版信息的Python模块
- 模型上下文协议 - 开放协议,用于将AI助手连接到数据源
故障排除
“未找到名为 'fastmcp' 的模块”或类似错误
确保所有依赖项都已安装:
uv pip install -e .
速率限制错误
如果你遇到速率限制:
- 通过取消注释来启用代理支持
setup_proxy()在server.py - 在请求之间添加延迟
- 考虑使用付费代理服务
未找到作者/出版物
并非所有作者或出版物都能在Google学术上找到。请尝试使用不同的搜索查询,或先在Google学术网站上检查确切的标题/名称。