Token导航 LogoToken导航TokenDH.com
Access Calibre logo
AI代理stdio官方级别未说明来源级核验

Access Calibre

MCP Server

access-calibre

一个JavaScript库,用于连接本地Calibre内容服务器并获取电子书的部分内容,提供MCP服务器以实现LLM与Calibre库的交互。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
JavaScriptClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kybernetikos

提供方

kybernetikos

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx access-calibre --verbose

详细介绍

存取口径

\[!警告\] 这个软件包完全是由Junie在JetBrains IntelliJ中编写的,没有经过人工检查。
\[!注意\] 考虑到使用vibe编码库的风险,我决定更喜欢deno提供的原生沙盒。看看 访问口径deno 相反,图书馆。

一个JavaScript库,用于连接到本地Calibre Content Server并抓取部分电子书。

Calibre Reader MCP Server in LM Studio

您需要在本地运行Calibre Content Server。首先,运行calibre并选择“连接/共享”选项。

MCP服务器

此库包括一个MCP(模型上下文协议)服务器,允许LLM与Calibre库交互。

提供的工具:

  • list_libraries:列出可用库。
  • search_books:使用Calibre的搜索语法搜索书籍(例如,按标题、作者:“作者:阿西莫夫”)。
  • list_books:列出图书馆里的所有书。
  • list_epub_files:列出EPUB中可用的所有文件(例如HTML、CSS、图像、字体)。
  • list_chapters:按阅读顺序列出一本书的章节。
  • get_chapter_content:检索特定章节的HTML内容。
  • get_chapter_content_markdown:检索转换为Markdown的特定章节的内容(通常对LLM更好)。
  • render_chapter_page:将章节的特定页面渲染为PNG图像(对具有视觉功能的LLM很有用)。它还返回章节中的总页数。
  • get_book_cover:将书籍的封面图像检索为PNG图像。
  • search_in_book:在书中搜索特定的文字文本,并获取出现的片段。 注意:仅支持简单的文字字符串匹配,不支持布尔运算符(AND/OR)或引号。
  • get_epub_file:从EPUB检索任何文件(例如CSS、图像)。

LLM identifying a book from a rendered page detail

配置

MCP服务器可以通过环境变量进行配置:

  • CALIBRE_URL:Calibre Content Server的URL(默认值: http://[::1]:8080/).
  • CALIBRE_USERNAME:用于身份验证的可选用户名。
  • CALIBRE_PASSWORD:用于身份验证的可选密码。

运行MCP服务器

日志记录

您可以通过提供以下内容来启用所有请求和响应的详细日志记录 --verbose (或 -v)论点:

npx access-calibre --verbose

日志被写入 stderr 因此它们不会干扰MCP协议。

如果要将日志定向到文件,可以使用 --log-file 论点:

npx access-calibre --log-file=server.log

您可以将两者结合起来查看日志 stderr 并将它们保存到文件中:

npx access-calibre --verbose --log-file=server.log

帮助

您可以通过提供以下内容查看所有可用选项 --help (或 -h)论点:

npx access-calibre --help

克劳德桌面版

您可以直接使用以下命令运行MCP服务器 npx (适用于Claude Desktop或其他MCP客户端):

npx access-calibre

LM工作室

要在LM Studio中使用此MCP服务器,请执行以下操作:

  1. 打开 LM工作室.
  2. 点击 工具 左侧边栏中的图标(拼图块)。
  3. 点击 +添加工具.
  4. 选择 MCP服务器.
  5. 给它起个名字(例如。, access-calibre).
  6. 对于 命令,输入 npx.
  7. 对于 参数,输入 access-calibre.
  8. 添加任何必需的环境变量(如 CALIBRE_URL)在 环境变量 部分。
  9. 点击 添加工具.

或者,您可以将其添加到您的 mcp-config.json (通常在 ~/.lmstudio/mcp-config.json):

{
  "mcpServers": {
    "access-calibre": {
      "command": "npx",
      "args": ["access-calibre"],
      "env": {
        "CALIBRE_URL": "http://localhost:8080/"
      }
    }
  }
}

本地安装

npm run start:mcp

或者直接通过Node:

CALIBRE_URL=http://localhost:8080 node mcp-server.js

图书馆安装

要将其用作项目中的库,请执行以下操作:

npm install access-calibre

用法

您可以将其用作项目中的库:

const CalibreClient = require('access-calibre');

const client = new CalibreClient('http://localhost:8080', 'username', 'password');

async function example() {
    // List libraries
    const libraries = await client.getLibraries();
    const libraryId = Object.keys(libraries)[0];

    // List books
    const books = await client.getBooks(libraryId);
    
    // Get EPUB contents
    const bookId = books.book_ids[0];
    const files = await client.getEpubContents(libraryId, bookId);
    console.log('Files in EPUB:', files);

    // Get a specific file (e.g., a chapter) from the EPUB
    const html = await client.getEpubFile(libraryId, bookId, 'index_split_001.html');
    console.log(html);
}

API

new CalibreClient(baseUrl, username, password)

初始化客户端。

client.getLibraries()

返回一个对象,其中包含有关可用库的信息,包括图书计数。

client.getBooks(libraryId, limit, offset, search)

返回指定库的图书ID及其元数据列表。 search 是Calibre搜索语法中的可选搜索查询字符串。

client.getBookMetadata(libraryId, bookId)

返回特定书籍的详细元数据。

client.downloadBook(libraryId, bookId, format)

下载指定格式的书籍(例如“EPUB”、“PDF”)并返回缓冲区。

client.getEpubContents(libraryId, bookId)

返回EPUB文件内的文件路径列表。

client.getTOC(libraryId, bookId)

返回一个数组 { title, path } 代表书籍目录的对象。

client.getChapters(libraryId, bookId)

返回一个数组 { title, path, size } 以线性阅读顺序(如EPUB书脊中所定义)表示书籍章节的对象。 size 是章节文件的未压缩大小,单位为字节。

client.getChapterContentMarkdown(libraryId, bookId, chapterPath)

返回转换为Markdown的特定章节的内容。

client.searchText(libraryId, bookId, query, snippetWindow)

搜索 query 书中的文字。返回一个数组 { chapterTitle, chapterPath, offset, snippet, markdownOffset, markdownSnippet } 物体。 snippetWindow (默认值100)是片段中匹配前后要包含的字符数。 markdownOffsetmarkdownSnippet 提供用于基于Markdown的工具。

client.getEpubFile(libraryId, bookId, filePath, responseType)

从EPUB中提取特定文件,并将其内容作为字符串(默认)或缓冲区(如果 responseType'buffer').

脚本

get-chapter.js

将章节的XML/HTML内容提取到控制台。

node get-chapter.js  

render-chapter.js

使用Playwright将章节中的特定页面渲染为PNG图像。

node render-chapter.js   [output.png] [--page ]
  • --page :可选。指定要呈现章节的哪一页(默认值为1)。
  • 如果没有提供输出文件名,则默认为 chapter_render.png.

注意:您可能需要运行 npx playwright install chromium 在使用此脚本之前。

运行测试

npm test

目录标签

目录标签

JavaScriptClaudeAI代理电子书管理本地部署JavaScript库MCP服务器LLM集成本地内容访问

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

access-calibre

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP