内容
# unpaywall-mcp
[Polish](README.pl.md)
Unpaywall 开放获取学术 API MCP 服务器。通过 DOI 查找免费阅读版本的论文,并搜索文章标题以匹配开放获取。
## 目录
- [工具列表](#工具)
- [环境变量](#环境变量)
- [连接](#连接)
- [本地运行](#本地运行)
## 工具
| 工具 | 参数 | 描述 |
|------|--------|-------------|
| `get_doi` | `doi: 字符串` | 获取单个 DOI 的开放获取状态和参考文献元数据 |
| `search_articles` | `query: 字符串, is_oa: 可选布尔值 = None, page: 整数 = 1` | 搜索文章标题;每页返回最多 50 个 DOI 对象 |
`search_articles` 查询修饰符:`"引号短语"`(连续),`OR`(任一术语),`-term`(排除)。`is_oa` 三态:`None` 无过滤,`True` 仅开放获取,`False` 仅非开放获取。
## 环境变量
| 变量 | 是否必需 | 描述 |
|----------|----------|-------------|
| `UNPAYWALL_MCP_EMAIL` | 是 | Unpaywall 要求在每次请求中提供的联系邮箱 |
Unpaywall 请求限制:每个邮箱每天 100,000 次调用。
## 连接
唯一要求:`uv`(https://docs.astral.sh/uv/)。无需安装其他内容。
### Claude 代码
```
claude mcp add unpaywall-mcp -e UNPAYWALL_MCP_EMAIL=<您的邮箱> -- uvx --from git+https://github.com/dam2452/unpaywall-mcp.git unpaywall-mcp
```
### Claude 桌面版 / 其他 MCP 客户端
```json
{
"mcpServers": {
"unpaywall-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/dam2452/unpaywall-mcp.git", "unpaywall-mcp"],
"env": { "UNPAYWALL_MCP_EMAIL": "<您的邮箱>" }
}
}
}
```
推送新版本后:运行 `uv cache clean` 并重启客户端。
## 本地运行
```
uv run --directory . unpaywall-mcp
```
测试(手动):
```
uv run --directory . --with pytest pytest test/
```