内容
# bibtex-mcp
用于从 Google Scholar 可见的引用导出流程中获取多个 BibTeX 选项的 CLI 和 MCP 服务器。
## 反向工程内容
Google Scholar 搜索结果在结果容器中包含每个结果的 Scholar ID。可见的“引用”按钮会加载:
```text
https://scholar.google.com/scholar?q=info:{scholarId}:scholar.google.com/&output=cite&scirp={rank}&hl=en
```
该引用对话框 HTML 包含一个签名的 `scholar.bib` 链接,位于 `scholar.googleusercontent.com` 上。该软件包遵循相同的两步流程:
1. 在 Scholar 中搜索论文标题。
2. 从 Scholar 结果 HTML 中读取结果 ID。
3. 遵循“所有版本”链接,以获取预印本/未知行的存档版本,这样可以找到隐藏在 arXiv 结果后面的存档版本。
4. 获取匹配的引用对话框 HTML。
5. 提取并获取 Scholar 的 BibTeX 链接。
6. 排名选项,以便在 Scholar 同时提供两种版本时,存档会议/期刊/出版商记录优先于预印本。
该工具不会绕过 CAPTCHA、付费墙、速率限制或访问控制。
## 安装
```bash
npm install
npm run build
```
## 命令行界面
```bash
npm run cli -- "Attention Is All You Need"
npm run cli -- --exact --json "Attention Is All You Need"
npm run cli -- --limit 20 --json "Attention Is All You Need"
```
全局安装或 `npm link` 后:
```bash
scholar-bibtex "Attention Is All You Need"
```
## MCP
首先构建,然后配置您的 MCP 客户端以运行:
```bash
node /absolute/path/to/bibtex-mcp/dist/mcp.js
```
### 使用 add-mcp 安装
对于本地检出:
```bash
npm install
npm run build
npx add-mcp "node $(pwd)/dist/mcp.js" --name scholar-bibtex -a codex -y
```
对于已发布的 npm 包:
```bash
npx add-mcp bibtex-mcp --name scholar-bibtex -a codex -y
```
等效地,使用显式 stdio 命令形式:
```bash
npx add-mcp "npx -y bibtex-mcp" --name scholar-bibtex -a codex -y
```
您还可以直接从公共 GitHub 仓库安装:
```bash
npx add-mcp "npx -y github:aryankeluskar/bibtex-mcp" --name scholar-bibtex -a codex -y
```
更改 `-a codex` 为另一个支持的代理,例如 `claude-code`、`cursor`、`vscode` 或 `opencode`。
服务器公开一个工具:
```text
google_scholar_bibtex
```
输入:
```json
{
"query": "Attention Is All You Need",
"maxResults": 10,
"exactTitle": false
}
```
## 代理技能
此仓库包含一个适用于使用 `skills` CLI 的代理的可安装技能:
```bash
npx skills add aryankeluskar/bibtex-mcp --skill google-scholar-bibtex-mcp --full-depth
```
从本地检出,列出或安装它:
```bash
npx skills add . --list --full-depth
npx skills add . --skill google-scholar-bibtex-mcp --full-depth -y
```
该技能告诉代理如何使用 `add-mcp` 安装此 MCP,调用 `google_scholar_bibtex`,并选择存档记录而不是预印本。
## 压力测试
在不访问 Google Scholar 的情况下运行确定性压力测试:
```bash
npm run stress
```
压力测试使用固定件模式来验证 CLI、stdio MCP 并发性、存档排名和 `add-mcp` Codex 项目配置生成。
## 准确性说明
BibTeX 源自 Google Scholar 的引用导出,虽然比生成的引用更好,但仍然不是无懈可击的。 Scholar 可能包含重复记录、不完整的元数据或场地变体。
默认情况下,该工具返回多个选项,并将可能的存档记录排在预印本之上。它还遵循 Scholar 的“所有版本”集群,以获取非存档行的存档版本,以便会议或期刊版本可以排在顶级预印本结果之上。排名使用 Scholar 行中的信号,例如场地文本和出版商/会议记录域。对于相机-ready 的书目,选择标题和场地与论文 PDF、会议记录页、DOI/Crossref 或出版商页匹配的最高排名存档选项。