关于 mcp-scholarly MCP server
mcp-scholarly 是一个 MCP 服务,用于检索学术论文。它目前整合了 arXiv、Google Scholar 与可选的 Google 网页搜索,并计划接入更多学术数据源。它适合需要查找相关文献的用户与 Agent。
主要功能
- 01arXiv 论文搜索,无需 API 密钥
- 02Google Scholar 搜索
- 03可选的 Google 网页搜索,需配置 API 密钥
- 04空关键词返回工具错误而非空结果
适用场景
- 01检索与某个关键词相关的学术论文
- 02为 Agent 提供文献检索能力
MCP 相关
作为 MCP 服务,向 MCP 客户端暴露 search-arxiv 等搜索工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-scholarly MCP 服务
一个用于搜索准确学术文章的 MCP 服务。即将添加更多学术出版商。
搜索工具
search-arxiv— arXiv 搜索(无需密钥)search-google-scholar— 通过scholarly库搜索 Google Scholar(免费代理池)search-google-web— 通过 SerpBase API 搜索 Google 网页。可选;仅在设置SERPBASE_API_KEY时注册。可在 https://serpbase.dev/dashboard/api-keys 获取密钥(提供免费套餐)。

组件
工具
该服务实现了一个工具:
- search-arxiv:搜索与给定关键词相关的 arxiv 文章。
- 将“keyword”作为必需的字符串参数
快速开始
安装
Claude Desktop
在 MacOS 上:~/Library/Application\ Support/Claude/claude_desktop_config.json
在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
开发版/未发布服务配置
``` "mcpServers": { "mcp-scholarly": { "command": "uv", "args": [ "--directory", "/Users/adityakarnam/PycharmProjects/mcp-scholarly/mcp-scholarly", "run", "mcp-scholarly" ] } } ```已发布服务配置
``` "mcpServers": { "mcp-scholarly": { "command": "uvx", "args": [ "mcp-scholarly" ] } } ```或者,如果你使用 Docker
已发布 Docker 服务配置
``` "mcpServers": { "mcp-scholarly": { "command": "docker", "args": [ "run", "--rm", "-i", "mcp/scholarly" ] } } ```通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 mcp-scholarly:
npx -y @smithery/cli install mcp-scholarly --client claude
开发
构建和发布
准备分发软件包:
- 同步依赖项并更新锁定文件:
uv sync
- 构建软件包分发文件:
uv build
这将在 dist/ 目录中创建源代码分发包和 wheel 分发包。
- 发布到 PyPI:
uv publish
注意:你需要通过环境变量或命令标志设置 PyPI 凭据:
- 令牌:
--token或UV_PUBLISH_TOKEN - 或用户名/密码:
--username/UV_PUBLISH_USERNAME和--password/UV_PUBLISH_PASSWORD
调试
由于 MCP 服务通过 stdio 运行,调试可能颇具挑战。为获得最佳调试体验,我们强烈建议使用 MCP Inspector。
你可以通过 npm 使用以下命令启动 MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /Users/adityakarnam/PycharmProjects/mcp-scholarly/mcp-scholarly run mcp-scholarly
启动后,Inspector 会显示一个 URL,你可以在浏览器中访问该地址以开始调试。
在 zorp 中使用
zorp 需要一个支持搜索的 MCP 工具,才能运行 validate。本服务满足这一检查,因为 zorp 会匹配工具名称中的搜索动词,而这些工具分别名为 search-arxiv 和 search-google-scholar。
zorp-agent --yes \
--mcp "stdio:scholarly:uv:run:mcp-scholarly" \
validate "<your research question>"
也可以只配置一次,让每次运行都自动使用:
# .zorp/mcp.toml
[[server]]
name = "scholarly"
transport = "stdio"
command = "uv"
args = ["run", "mcp-scholarly"]
trust = "sandbox"
timeout_secs = 60
以下说明基于 zorp 的传输方式实测得出,而非假设:
search-arxiv大约 1 秒即可返回。zorp 默认的 stdio 读取时限为 30 秒,因此默认设置很宽裕。上面的timeout_secs = 60为search-google-scholar留出了余量;它通过scholarly和免费代理池运行,结果远不那么可预测。- 日志会写入 stderr。只有 JSON-RPC 会到达 stdout,这符合 zorp 对以换行符分隔的帧格式的要求。
- 如果关键词为空,工具会返回 MCP 工具错误,而不是空结果集。zorp 很在意这一区别:如果搜索失败却看起来像是“没有先前研究”,就会导致证据记录中的新颖性评分有误。
- arxiv 会尽力为任何查询返回匹配结果,包括毫无意义的查询,因此结果集非空本身并不能证明存在先前研究。工具描述中对此作了说明,因为模型读取的正是这段文字。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
