关于 open-textbook-finder-mcp
面向学生的 MCP 服务,可按书名、ISBN 或课程主题查找合法免费教材,并查询版本信息。它汇集 OpenStax、DOAB 和 Open Library 的结果,无需 API 密钥或账户。
主要功能
- 01按书名、ISBN 或主题搜索教材
- 02查询 ISBN 对应版本及相关版本
- 03查找较早版本
- 04按学科浏览开放教材
- 05标注免费阅读、借阅或无已知副本
适用场景
- 01购买教材前查找免费合法版本
- 02核对指定 ISBN 的书籍版本
- 03为课程寻找较早的教材版本
- 04按课程主题浏览开放教材
MCP 相关
作为 MCP 服务向客户端提供教材搜索、ISBN 查询、学科浏览和旧版查找工具。搜索 Open Library 和 DOAB 时会发送查询文本或 ISBN;OpenStax 匹配在本机完成。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 返回结果数量,范围为 1 到 10。默认值为 5。 |
| query | string | 是 | 教材书名、ISBN(10 位或 13 位数字,可带连字符)或课程主题。 |
详细介绍
Open Textbook Finder MCP
教材太贵了。Open Textbook Finder MCP 可按书名、ISBN 或课程主题,在 OpenStax、Directory of Open Access Books (DOAB) 和 Open Library 上查找免费的合法教材。它会按 ISBN 查询不同版本,并推荐通常更便宜的旧版教材。
npx -y open-textbook-finder-mcp
- “Stewart 编写的微积分教材有免费的合法版本吗?或者有没有类似的教材?”
- “查询 ISBN 978-0-13-468599-1,告诉我还有哪些版本。”
- “我的课程要求使用 Stewart Calculus 第 9 版。有没有可用的旧版?”
可与 Claude Desktop、Claude Code、Cursor、VS Code、Windsurf 以及任何能运行本地 MCP 服务的应用配合使用。无需 API 密钥或账户。
功能
| 工具 | 提示词示例 |
|---|---|
find_free_textbook | “Stewart 编写的微积分教材有免费的合法版本吗?或者有没有类似的教材?” |
lookup_isbn | “查询 ISBN 978-0-13-468599-1,告诉我还有哪些版本。” |
find_older_edition | “我的课程要求使用 Stewart Calculus 第 9 版。有没有可用的旧版?” |
list_open_textbooks_by_subject | “列出免费的入门统计学教材。” |
各工具的参数请参阅工具。
安装
使用 npx 直接从 npm 运行。你需要 Node.js 20 或更高版本,详情请参阅 Node 版本。无需安装其他内容,服务本身也不需要配置文件。
npx -y open-textbook-finder-mcp
将其添加到 AI 应用的 MCP 配置中,以便应用为你启动服务。每个应用都从各自的文件读取配置,因此请选择对应的应用:
它们启动服务的方式都相同,区别仅在于配置文件的位置。
Claude Desktop
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"textbooks": {
"command": "npx",
"args": ["-y", "open-textbook-finder-mcp"]
}
}
}
保存文件后,重启 Claude Desktop。
Claude Code
在终端中运行:
claude mcp add textbooks -- npx -y open-textbook-finder-mcp
Cursor
Cursor 会读取项目文件夹中的 .cursor/mcp.json,或者读取主文件夹中的 ~/.cursor/mcp.json,如果你希望在每个项目中都使用该服务。在 Windows 上,主文件夹中的文件路径为 %USERPROFILE%\.cursor\mcp.json。
{
"mcpServers": {
"textbooks": {
"type": "stdio",
"command": "npx",
"args": ["-y", "open-textbook-finder-mcp"]
}
}
}
保存文件后,重启 Cursor。服务启动后会显示在侧边栏的 Customize 页面中,你可以在那里将其开启或关闭。
VS Code
将以下内容放入项目文件夹中的 .vscode/mcp.json,或用户配置文件中的 mcp.json:
{
"servers": {
"textbooks": {
"type": "stdio",
"command": "npx",
"args": ["-y", "open-textbook-finder-mcp"]
}
}
}
VS Code 也会读取项目根目录中的便携式 .mcp.json 文件。该文件使用 mcpServers 而非 servers 作为名称:
{
"mcpServers": {
"textbooks": {
"command": "npx",
"args": ["-y", "open-textbook-finder-mcp"]
}
}
}
保存文件后,重启 VS Code。
Windsurf
Windsurf 会读取 ~/.codeium/windsurf/mcp_config.json 中的 mcp_config.json。在 Windows 上,路径为 %USERPROFILE%\.codeium\windsurf\mcp_config.json。
{
"mcpServers": {
"textbooks": {
"command": "npx",
"args": ["-y", "open-textbook-finder-mcp"]
}
}
}
保存文件后,刷新 Windsurf 中的服务列表。
完成上述任一配置后,试试下面的提示词。
试试这三个提示词
-
查找免费副本
“有没有 Stewart 的微积分教材的免费合法副本,或者类似的教材?”
模型会使用该书名调用
find_free_textbook。它会先检查随服务提供的 OpenStax 列表,然后查询 DOAB 和 Open Library。首先会找到 OpenStax Calculus Volume 1;只有在存在可在线阅读的公版副本时,Open Library 的结果才会标记为免费。 -
查询 ISBN
“查询 ISBN 978-0-13-468599-1,并告诉我还有哪些版本。”
lookup_isbn会先检查校验位,然后从 Open Library 返回书名、出版商、出版日期和页数。它还会列出同一本书的其他版本,并按出版时间从新到旧排列。 -
查找更便宜的旧版
“我的课程要求使用 Stewart Calculus 第 9 版。有没有适用的旧版?”
find_older_edition会按与当前版本的接近程度从高到低,列出该书的早期版本,包括年份、版本名称,以及 Open Library 有记录时提供的 ISBN。传入edition_year,即可指定课程要求的版本。
你还可以这样提问:
- “列出适合统计学入门的免费教材。”
- “有没有免费的护理药理学教材?”
- “查找《傲慢与偏见》的免费合法副本。”
- “哪些免费教材涵盖微观经济学?”
- “我的 ISBN 是 9780134685991。这本书有免费副本吗?”
- “对于物理学入门课程,第 7 版和第 9 版差别大吗?”
工具
共有四个工具。你的 AI 应用会看到这些名称。
| 工具 | 参数 | 功能 |
|---|---|---|
find_free_textbook | query、limit | 按书名、ISBN 或课程主题搜索 OpenStax、DOAB 和 Open Library,查找免费合法副本。Open Library 的结果中,公版副本会标记为免费,可借阅副本则会标记为可借 |
lookup_isbn | isbn | 返回 ISBN 对应版本的详情,说明是否有已知的免费副本,并列出同一本书的相关版本 |
list_open_textbooks_by_subject | subject、limit | 从 OpenStax 和 DOAB 浏览课程主题对应的免费教材 |
find_older_edition | query、edition_year、limit | 推荐通常更便宜的教材早期版本,并按与当前版本的接近程度从高到低排列 |
发送给 AI 应用的每个工具描述末尾都附有一个提示词示例,以便模型将“这本书有免费副本吗?”这类问题匹配到合适的工具,并填入所有参数。
每个工具还会以结构化数据返回结果。每个工具都有输出架构,因此读取 JSON 的客户端可以直接获取 results 或 suggestions 等字段;对于只读取文字的应用,文本答案也保持不变。每个工具返回的字段列在 llms.txt 和 glama.json 中。
图书来源
| 来源 | 提供内容 | 搜索方式 |
|---|---|---|
| OpenStax | 免费的同行评审大学教材 | 服务会随附 OpenStax 书名列表,并在你的计算机上进行匹配,因为 OpenStax 没有公开搜索服务 |
| DOAB | 开放获取的学术图书,以及 DOAB 列出的许可信息 | DOAB 搜索服务 |
| Open Library | 版本记录,以及 Internet Archive 上的公版或可借阅副本 | Open Library 搜索和版本服务 |
结果包含一个 access 值。free 表示可以在线阅读或保留副本,borrow 表示可以免费借阅但需要归还,none 表示没有已知的免费副本。重新使用图书前,请务必查看目标页面上的许可信息。
常见问题
需要 API 密钥吗?
不需要。无需密钥即可搜索 Open Library 和 DOAB,OpenStax 书目已随服务提供。
它会查找盗版吗?
不会。它只返回 OpenStax、DOAB 和 Open Library 的记录,这些记录属于开放许可、公共领域或合法借阅。
如果我只有 ISBN 呢?
将其传给 find_free_textbook 或 lookup_isbn。连字符和空格都没问题。系统会先检查校验位,因此输入错误会被报告为无效 ISBN,而不是搜索无结果。
它能告诉我旧版的价格吗?
不能。该工具不知道价格,因为没有免费的价格服务。它会告诉你有哪些较早版本,以便你自行查询二手书卖家。
旧版教材适合我的课程吗?
较早一两版通常会保留相同的章节,但出版社可能会重新编排习题或删去部分内容。购买前,请将目录与课程大纲对照,并咨询授课教师。
如果某个来源无法使用,会发生什么?
其他来源仍会返回结果,回复也会指出无法使用的来源。如果所有来源都无法使用,该工具会明确说明,而不是返回空列表。
对比
| 选项 | 是否需要密钥或账号 | 覆盖范围 | 适用场景 |
|---|---|---|---|
| Open Textbook Finder MCP(此服务) | 不需要 | 在一个问题中搜索 OpenStax、DOAB 和 Open Library,还可查询 ISBN 和版本 | 你希望 AI 应用在购书前先查找免费选项。 |
| 自行逐个搜索网站 | 不需要 | 一次搜索一个网站 | 你已经知道教材在哪个网站上。 |
| 课程平台 MCP(Brightspace、Canvas、Moodle、Google Classroom) | 该平台上的账号 | 从一个 LMS 获取截止日期、成绩、未完成的作业和课程文件 | 你希望 AI 应用读取课程平台,而不是查找教材。 |
Open Textbook Finder MCP 是免费的教材 MCP:无需密钥或账号,即可在 OpenStax、DOAB 和 Open Library 上查找合法版本的教材。上面提到的课程平台 MCP 会连接到你的 LMS 账号,显示待完成事项、未完成事项和已获得的成绩。它们不会搜索教材版本。你可以同时运行两者,因为它们读取的信息不同,而且都不需要密钥。
Node 版本
这里有两个最低版本要求,并非同一个数字。
| 你要做什么 | Node.js |
|---|---|
| 运行已发布的服务 | 20 或更高版本 |
| 构建和测试克隆项目 | 22.12 或更高版本,且需使用 22 和 24 发布线,或 26 及更高版本 |
服务本身可在 Node.js 20 上正常运行,package.json 中的 engines 也如此声明。测试运行器需要更新的 Node.js,因此开发环境的最低版本要求写在同一文件的 devEngines 中。npm 会在安装、运行和测试前检查 devEngines,因此使用 Node.js 20 的克隆项目会收到清晰的提示,而不是在测试套件运行到一半时出现奇怪的故障。我们有意排除 23 和 25 发布线,因为测试运行器无法在这些版本上运行。
这两个版本要求都写在 package.json 中,而 tests/node-version.test.ts 中的测试会确保它们与 README 以及测试运行器要求的版本范围保持一致。
开发
npm install
npm run build
npm test
测试会通过真实的 MCP 客户端和模拟网络调用每个工具,因此无需账号、密钥或互联网连接。由于测试运行器的要求,测试需要使用上文「Node 版本」一节中提到的较新 Node.js 版本。
隐私
无需密钥、登录或账号。服务只会将你的搜索文本或 ISBN 发送到两个公共服务,不会发送其他内容:openlibrary.org 和 directory.doabooks.org。OpenStax 匹配在你的计算机上运行,不会发送任何信息。服务不会写入文件、保留历史记录或收集分析数据。每个请求都会附带一个包含软件包名称和代码仓库地址的 User-Agent 标头,这是 Open Library 对每个客户端的要求。这些服务会根据各自的隐私政策处理收到的请求。
更多免费的学生 MCP 服务
所有服务均免费、开源;涉及你的账户时均为只读。请访问 brightspacemcp.com/more-mcps 浏览完整列表。
| 服务 | 功能 |
|---|---|
| Brightspace MCP | 面向 AI 的 D2L Brightspace。包含截止日期、真实提交状态、成绩、目标成绩计算器和课程文件。 |
| Canvas MCP | 面向 AI 的 Canvas LMS,只读。包含截止日期、缺交作业、成绩和公告。 |
| Moodle MCP | 面向 AI 的 Moodle,只读。包含截止日期、逾期作业、成绩和公告。 |
| Google Classroom MCP | 面向 AI 的 Google Classroom,只读。包含待办事项、截止日期、缺交作业和成绩。 |
| GPA Calculator MCP | GPA、CGPA、加权成绩、目标成绩和期末考试计算。可离线使用。 |
| Citations MCP | 根据 DOI、ISBN 或输入的详细信息生成 APA、MLA 和 Chicago 引文。无需账户。 |
| Study Planner MCP | 考试学习计划、间隔重复日期、番茄工作法计划和作业里程碑。可离线使用。 |
| Paper Finder MCP | 通过 OpenAlex 搜索学术论文、查找开放获取版本和相关研究。无需密钥。 |
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。