使用说明
谷歌学术MCP服务器
适用于AI助手的最全面的Google Scholar MCP服务器
一个强大的模型上下文协议(MCP)服务器,将克劳德等人工智能助手连接到谷歌学术。搜索学术出版物,查找研究人员,分析引文,下载论文,并执行高级研究工作流程。
🌟 特性
工具(共11个)
| 工具 | 说明 |
|---|---|
search_publications |
按主题、作者或日期范围搜索学术论文 |
search_author |
按姓名、领域或机构查找研究人员 |
get_author_profile |
获取详细的作者信息,包括h-index、出版物和合著者 |
get_citations |
查找引用特定出版物的论文 |
generate_bibtex |
生成BibTeX条目以供引用 |
get_related_articles |
查找出版物的相关文章 |
get_all_versions |
获取一篇论文的所有可用版本 |
download_paper |
在本地下载和存储论文以供离线访问 |
list_papers |
列出所有本地存储的纸张 |
read_paper |
读取存储纸张的内容 |
advanced_search |
使用语言、专利和日期过滤器进行高级搜索 |
提示(共6条)
| 提示 | 描述 |
|---|---|
literature_review |
进行文献综述的结构化方法 |
find_expert |
寻找特定领域的顶尖研究人员 |
citation_analysis |
分析出版物的引用影响 |
deep_paper_analysis |
全面的多步骤纸张分析工作流程 |
research_synthesis |
综合多篇论文的研究 |
methodology_comparison |
比较不同研究论文的方法 |
关键优势
- 11强大的工具:搜索、引用、相关文章、版本、下载等
- 高级搜索:按语言、专利、评论文章等筛选
- 本地纸张存储:下载和缓存论文以供离线访问
- 智能高速缓存:使用基于TTL的缓存减少冗余请求
- 元数据:摘要、引用次数、h指数、合著者等
- 速率限制:内置防止Google Scholar屏蔽的保护功能
- 错误处理:优雅地处理速率限制和验证码
- BibTeX支持:生成适当的学术引文
- 高级提示:用于深度论文分析和研究综合的预构建工作流程
📦 安装
史密斯路(推荐)
npx -y @smithery/cli install @dihannahdi/google-scholar-mcp --client claude
通过npm
npm install -g @dihannahdi/google-scholar-mcp
来源
git clone https://github.com/dihannahdi/google-scholar-mcp.git
cd google-scholar-mcp
npm install
npm run build
🚀 快速开始
运行服务器
# If installed globally
google-scholar-mcp
# From source
npm start
# Development mode
npm run dev
Claude桌面配置
添加到您的 claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"google-scholar": {
"command": "node",
"args": ["/path/to/google-scholar-mcp/dist/index.js"],
"env": {
"SCHOLAR_STORAGE_PATH": "~/.google-scholar-mcp/papers",
"SCHOLAR_RATE_LIMIT_MS": "3000",
"SCHOLAR_CACHE_ENABLED": "true",
"SCHOLAR_CACHE_TTL_MS": "3600000",
"SERPAPI_KEY": "your_serpapi_key_here",
"SCHOLAR_USE_SERPAPI_FALLBACK": "true"
}
}
}
}
或者使用npx:
{
"mcpServers": {
"google-scholar": {
"command": "npx",
"args": ["-y", "@dihannahdi/google-scholar-mcp"]
}
}
}
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
SCHOLAR_STORAGE_PATH |
存储下载论文的路径 | ~/.google-scholar-mcp/papers |
SCHOLAR_RATE_LIMIT_MS |
请求之间的速率限制(ms) | 3000 |
SCHOLAR_CACHE_ENABLED |
启用响应缓存 | true |
SCHOLAR_CACHE_TTL_MS |
缓存生存时间(ms) | 3600000 (1小时) |
SCHOLAR_PROXY_URL |
可选代理URL | - |
SERPAPI_KEY |
SerpAPI密钥用于可靠回退(免费获取密钥) | - |
SCHOLAR_USE_SERPAPI_FALLBACK |
在被阻止时启用自动SerpAPI回退 | false |
SCHOLAR_ROTATE_USER_AGENT |
轮换用户代理以避免被检测到 | true |
SCHOLAR_ENABLE_JITTER |
在请求之间添加随机延迟 | true |
SCHOLAR_JITTER_MAX_MS |
最大抖动延迟(毫秒) | 2000 |
🔐 SerpAPI回退(推荐)
Google Scholar积极阻止自动访问。确保 100%正常运行时间,我们建议使用 SerpAPI 作为后备方案:
- 获取免费的API密钥 在 蛇网 (每月100次免费搜索)
- 设置环境变量:
export SERPAPI_KEY="your_serpapi_key" export SCHOLAR_USE_SERPAPI_FALLBACK="true"
它是如何工作的:
- 服务器首先尝试直接抓取(免费,但可能被阻止)
- 如果被阻止,它会自动回退到SerpAPI(可靠、付费)
- 无论来源如何,结果都标准化为相同的格式
SerpAPI的好处:
- ✅ 100%正常运行时间保证
- ✅ 没有验证码或屏蔽问题
- ✅ 处理所有反机器人措施
- ✅ 丰富的结构化数据
- ✅ 作者简介、引文、相关文章
📖 用法示例
搜索出版物
Search for recent machine learning papers about transformers
Tool: search_publications
Arguments:
query: "transformer neural network"
yearStart: 2020
numResults: 10
sortBy: "relevance"
查找作者
Find researchers working on quantum computing at MIT
Tool: search_author
Arguments:
query: "quantum computing"
organization: "MIT"
numResults: 5
获取作者资料
Get detailed profile for Geoffrey Hinton
Tool: get_author_profile
Arguments:
scholarId: "JicYPdAAAAAJ"
获取引用
Find papers citing "Attention Is All You Need"
Tool: get_citations
Arguments:
clusterId: "4054916225996727837"
numResults: 10
sortBy: "date"
生成BibTeX
Create BibTeX for a paper
Tool: generate_bibtex
Arguments:
title: "Attention Is All You Need"
authors: ["Ashish Vaswani", "Noam Shazeer", "Niki Parmar"]
year: 2017
venue: "Advances in Neural Information Processing Systems"
🔧 API 参考
搜索_出版物
在谷歌学术搜索中搜索学术出版物。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| 查询 | 字符串 | 是 | - | 搜索查询 |
| author | string | 否 | - | 按作者姓名筛选 |
| yearStart | number | No | - | 筛选器的起始年份 |
| yearEnd | 编号 | 否 | - | 筛选器的结束年份 |
| num结果 | 数量 | 否 | 10 | 结果数量(1-20) |
| sortBy | string | 否 | “相关性” | “相关性或日期” |
退货:
- 出版物列表,包括标题、作者、摘要、地点、年份、引用次数、网址
搜索作者
寻找学术研究人员。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| query | string | 是 | - | 作者姓名或关键字 |
| 组织 | string | 否 | - | 按机构筛选 |
| num结果 | 数量 | 否 | 10 | 结果数量(1-20) |
退货:
- 作者简介列表,包括姓名、所属机构、兴趣、引用次数
get_author_profile
获取详细的作者信息。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scholarId | string | 是 | 谷歌学者作者ID |
退货:
- 完整的个人资料,包括出版物、h-index、i10 index、合著者、引文历史
get_citations
获取引用特定出版物的论文。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| clusterId | string | 是 | - | 谷歌学者集群ID |
| num结果 | 数量 | 否 | 10 | 结果数量(1-20) |
| sortBy | string | 否 | “相关性” | “相关性或日期” |
退货:
- 引用出版物清单及详细信息
generate_bibtex
生成BibTeX引用条目。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | Yes | 出版物标题 |
| authors | string[] | Yes | 作者姓名列表 |
| 年份 | 编号 | 否 | 出版年份 |
| 地点 | 字符串 | 否 | 期刊/会议名称 |
| url | string | 否 | 发布url |
退货:
- 格式化BibTeX条目
获取相关文章
查找给定出版物的相关文章。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| clusterId | string | 是 | - | 谷歌学者集群ID |
| num结果 | 数量 | 否 | 10 | 结果数量(1-20) |
退货:
- 包含元数据的相关出版物列表
获取所有版本
获取一篇论文的所有可用版本。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| clusterId | string | 是 | - | 谷歌学者集群ID |
| num结果 | 数量 | 否 | 10 | 结果数量(1-20) |
退货:
- 所有版本列表(预印本、已发布等)
download_paper
下载并在本地存储论文。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | Yes | 论文的url(PDF、arXiv等) |
| filename | string | Yes | 已保存文件的名称 |
| 元数据 | 对象 | 否 | 可选元数据(标题、作者、年份) |
退货:
- 存储文件的路径和确认
list_papers
列出所有本地存储的纸张。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| pattern | string | No | 可选过滤模式 |
退货:
- 包含元数据的存储论文列表
read_paper
读取存储纸张的内容。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| filename | string | Yes | 存储文件的名称 |
退货:
- 纸张内容(文本格式)
高级搜索
使用其他过滤器进行高级搜索。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| 查询 | 字符串 | 是 | - | 搜索查询 |
| exactPhrase | string | 否 | - | 要匹配的精确短语 |
| without单词 | 字符串 | 否 | - | 要排除的单词 |
| author | string | 否 | - | 按作者筛选 |
| source | string | 否 | - | 按来源/日记筛选 |
| 年份开始 | 编号 | 否 | - | 开始年份筛选器 |
| yearEnd | 数字 | 否 | - | 年终筛选器 |
| language | string | 否 | “en” | 语言代码 |
| includePatents | boolean | 否 | true | 在结果中包含专利 |
| included引用 | 布尔值 | 否 | 真 | 包括引用 |
| num结果 | 编号 | 否 | 10 | 结果数量 |
退货:
- 符合条件的出版物列表
🛠️ 发展
项目结构
google-scholar-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── config/
│ │ └── index.ts # Environment configuration
│ ├── types/
│ │ └── index.ts # TypeScript type definitions
│ ├── tools/
│ │ ├── definitions.ts # Tool schemas (11 tools)
│ │ ├── handlers.ts # Tool implementation
│ │ └── index.ts
│ ├── scraper/
│ │ ├── scholar.ts # Google Scholar scraper
│ │ └── index.ts
│ └── utils/
│ ├── helpers.ts # URL builders, rate limiting
│ ├── cache.ts # In-memory caching
│ ├── storage.ts # Local paper storage
│ └── index.ts
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md
建筑
npm run build
测试
# Run MCP Inspector for debugging
npx @modelcontextprotocol/inspector node dist/index.js
⚠️ 局限性
-
速率限制:Google Scholar可能会限制或阻止请求。服务器包括延迟和重试,但大量使用可能会触发阻塞。
-
验证码:过多的请求可能会触发验证码挑战。如果发生这种情况,请等待几分钟后重试。
-
没有官方API:此服务器会抓取Google Scholar的web界面,如果Google更改其HTML结构,该界面可能会损坏。
-
结果有限:每次请求最多20个结果,以保持在合理范围内。
🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
📬 支持
对于问题和疑问:
- 在GitHub上打开一个问题
- 检查 MCP文件
由...制作❤️ 对于研究界
